blah-mcp
BLAH - 勉强本地代理主机 一个新的公共注册表,旨在协助 MCP 服务器及其工具的编排。
README
极端 POC 模式项目 - 完全不稳定 - 文档和愿景纯粹是笔记
BLAH - 勉强逻辑代理主机 - 更新 #1
(可以理解为工具的 npmjs)
一旦此列表完全完成,BLAH JSON 模式将最终确定。
- [ ] 工具
- [x] 本地函数
- [x] 托管函数
- [ ] 注册表
- [ ] 发布
- [ ] 浏览
- [x] Mcp 支持
- [x] 本地 Stdio
- [x] 本地 SSE
- [ ] 托管 SSE
- [x] Slop 支持
- [x] 本地 Slop
- [x] 托管 Slop
- [ ] 工具可组合性
- [ ] 分组
- [ ] 流程
- [ ] 触发器/标签
- [ ] 扩展
- [x] 本地 blah.json
- [ ] 托管 blah.json
- [ ] 调试
- [ ] 游乐场
- [ ] 日志记录
笔记:
- 流程将使用 agnt.gg 流程模式的子集
- 扩展意味着您可以以任何您喜欢的方式组合 blah.json。(想想如果您只想包含您关注的设计师的工具会怎么样)
- 注册表意味着我们将有一种方便的方式来推送和拉取函数(工具)
BLAH - 勉强逻辑代理主机
BLAH 是一个开源生态系统,用于使用模型上下文协议 (MCP) 管理、分发和执行 AI 代理工具。 它为 MCP 服务器提供了一个去中心化的注册表,从而促进了透明度、安全性以及社区驱动的开发。
项目结构
该项目使用 Turborepo 组织为 monorepo:
packages/cli- 用于使用 MCP 的主要 BLAH CLI 工具apps/web- BLAH 的 Web 界面apps/docs- 文档站点
开始使用
前提条件
- Node.js >= 18.18.0(推荐 Node 20+)
- pnpm
安装
# 克隆存储库
git clone https://github.com/thomasdavis/blah.git
cd blah
# 安装依赖
pnpm install
# 构建项目
pnpm run build
使用 CLI 快速入门
有关使用 BLAH CLI 的详细说明,请参阅 CLI README。
# 导航到 CLI 包
cd packages/cli
# 设置您的环境变量(.env 文件)
echo "OPENAI_API_KEY=your_openai_api_key_here" > .env
echo "BLAH_HOST=https://ajax-blah.web.val.run" >> .env
# 运行模拟
pnpm run simulate
目前正在进行的工作
- [ ] 需要一种使用任何模型/IDE 调试 mcp 服务器的方法
- [ ] 考虑门户
- [ ] lisa watts 提出了“auton”,这可能是我要建议的
无关的想法
- [ ] 需要在想法中保存状态,这样你就不会丢失东西(如果你没有提交)
- [ ] 社交工具的投票
- [ ] 自动错误率
- [ ] 分享您的工具组合结果
使用本地 blah.json
托管 blah.json (Valtown)
开始使用(托管)
- 设置一个 Valtown 帐户
- 创建一个名为
blah的新 HTTP 函数
export default async function server(request: Request): Promise<Response> {
const tools = [
{
name: "hello_name",
description: `向名字打招呼`,
inputSchema: {
type: "object",
properties: {
name: {
type: "string",
description: `要打招呼的名字`,
},
},
},
},
];
return new Response(JSON.stringify(tools), {
headers: {
"Content-Type": "application/json",
},
status: 200,
});
}
添加到您的客户端
- 克劳德
- 桌面
- 代码 (CLI)
- 光标
- Cline
- 帆板运动
- BLAH 客户端
- 现在有任何好的 Web 客户端吗
开发
我仍在努力开发工具,以使开发不再糟糕。
日志记录
在开发此功能时,我想从每个人的客户端发送日志,只是为了找出由于不同配置导致客户端抛出的所有错误。
游乐场
到目前为止,只是一个列出提示、资源和工具的基本客户端。 稍后可以进行交互,并且还应该针对测试运行。
npm run playground
需要改进
- [ ] Valtown 是当前的包装器,需要一个替代方案,也许使用 Vercel 函数或其他东西。
- [ ] 需要一个很好的可组合性策略
鸣谢
- 丽莎·沃茨
- 特拉维斯
- 袋熊
AI 生成的胡说八道(以上是真实的)
- mcp 服务器版本徽章
- 注册表正常运行时间状态
什么是 BLAH?
BLAH 是一个开源生态系统,用于使用模型上下文协议 (MCP) 管理、分发和执行 AI 代理工具。 它为 MCP 服务器提供了一个去中心化的注册表,该注册表不会受到错位的激励的影响,从而促进了透明度、安全性以及社区驱动的开发。
主要特点:
- 任何系统(IDE、AI 平台等)都可以连接的开源基础设施
- 支持无限工具选择的语言无关工具注册表
- 通过 MCP 服务器的可选签名和验证实现强大的安全性
- 用于发布、发现和管理工具的综合 CLI
- 支持各种工具类型:函数、REST 端点、本地文件或标准清单
🔍 愿景
BLAH 旨在成为新一代 AI 工具的基础,这些工具可以轻松共享、发现和组合。 我们设想的未来是:
- 任何人都可以创建和共享扩展 AI 功能的工具
- 每个人都可以访问丰富的工具生态系统,无论其技术背景如何
- 每个系统都可以通过标准协议与该生态系统集成
🚀 开始使用
安装
npm install -g blah-mcp
基本用法
# 搜索工具
blah search "图像生成"
# 安装工具
blah install awesome-image-generator
# 列出已安装的工具
blah list
# 获取有关工具的信息
blah info awesome-image-generator
📖 核心概念
注册表
BLAH 的注册表的设计借鉴了 npm 等包管理器的经验教训,重点关注:
- 透明度:所有基础设施代码都是开源的
- 去中心化:存储选项包括本地、云、IPFS 或 gists
- 安全性:MCP 服务器的可选签名和验证
- 治理:社区驱动,没有单一实体控制生态系统
代理行为
BLAH 支持各种代理交互模式:
- 并行执行
- 递归工具调用
- 分支工作流程
- 顺序处理
- 复杂的基于图的工作流程
工具定义
BLAH 中的工具本质上是一个函数,但可以表示为:
- 代码片段
- RESTful 端点
- 本地可执行文件
- 标准清单(SLOP、agents.json)
每个工具都应明确记录其调用方式,但这并非强制性的。
🛠️ CLI 命令
BLAH 配备了全面的 CLI:
blah publish - 将工具发布到注册表
blah search - 按名称、标签或描述搜索工具
blah install - 安装工具
blah remove - 删除已安装的工具
blah update - 将工具更新到最新版本
blah list - 列出已安装的工具
blah info - 显示有关工具的信息
blah config - 配置 BLAH 设置
blah login - 使用注册表进行身份验证
blah logout - 结束身份验证会话
blah whoami - 显示当前经过身份验证的用户
blah version - 显示版本信息
blah help - 显示帮助信息
📋 清单
BLAH 使用清单文件 (blah.json) 来定义工具及其依赖项。 此清单可以存在:
- 在项目工作区中
- 在主目录中
- 托管在云中
- 作为 gist 或在 IPFS 上
blah.json 示例:
{
"name": "awesome-image-generator",
"version": "1.0.0",
"description": "用于生成精美图像的工具",
"entry": "./dist/index.js",
"tools": [
{
"name": "generate_image",
"description": "从文本提示生成图像",
"parameters": {
"prompt": {
"type": "string",
"description": "所需图像的文本描述"
},
"style": {
"type": "string",
"enum": ["realistic", "cartoon", "abstract"],
"default": "realistic"
}
}
}
],
"dependencies": {
"image-gen-lib": "^2.0.0"
},
"tags": ["image", "generation", "creative"]
}
🔄 标准支持
BLAH 支持并旨在与以下标准兼容:
- 模型上下文协议 (MCP)
- SLOP(语言运算符协议结构)
- agents.json
- [您自己的通过转换器实现的自定义协议]
🌟 发现和元数据
BLAH 中的工具使用以下方式组织:
- 标签(例如,#TOOLBELT)
- 用于直观导航的语义元数据
- 用于基于受欢迎程度的推荐的使用分析
- 基于用户的推荐(类似用户使用的工具)
🏗️ 架构
BLAH 由三个主要组件组成:
- 注册表:用于工具存储和发现
- CLI:用于与注册表交互和管理工具
- MCP 服务器:用于在代理工作流程中执行工具
目前,ValTown 是注册表存储和计算的主要后端,但欢迎其他实现。
🔒 安全性和问责制
BLAH 非常重视安全性:
- MCP 服务器的可选签名
- 在沙盒环境中执行代码
- 用于问责制的全面日志记录
- 遵守当地法律法规
🚧 路线图
- [ ] 在云平台(例如,Cloudflare Workers)上托管 MCP 服务器
- [ ] 创建一个基于 Web 的工具资源管理器和文档站点
- [ ] 改善调试和开发者体验
- [ ] 开发工具创建向导/生成器
- [ ] 实施工具推荐系统
🧠 未来的想法
- 用于个性化工具推荐的用户行为共享
- 通过类似 cron 的机制安排代理执行
- 用于注册表管理的去中心化治理模型
- 用于自定义注册表实现的扩展生态系统
🤝 贡献
欢迎贡献! 请稍后回来查看详细的贡献指南。
👏 鸣谢
特别感谢 Lisa 和 Wombat 为该项目做出的宝贵贡献。
📄 许可证
BLAH 在 MIT 许可证下发布。 有关详细信息,请参阅 LICENSE 文件。
<div align="center"> <em>以人道的方式构建逻辑代理</em> </div>
推荐服务器
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
AIO-MCP Server
🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。
https://github.com/Streen9/react-mcp
react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。
any-chat-completions-mcp
将 Claude 与任何 OpenAI SDK 兼容的聊天完成 API 集成 - OpenAI、Perplexity、Groq、xAI、PyroPrompts 等。
Exa MCP Server
一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。
MySQL MCP Server
允许人工智能助手通过受控界面列出表格、读取数据和执行 SQL 查询,从而使数据库探索和分析更安全、更有条理。
browser-use MCP server
一个由人工智能驱动的浏览器自动化服务器,它实现了模型上下文协议,从而能够使用自然语言控制网页浏览器,以执行诸如导航、表单填写和视觉交互等任务。
mcp-codex-keeper
作为开发知识的守护者,为 AI 助手提供精心策划的最新文档和最佳实践访问权限。
OpenRouter MCP Server
提供与 OpenRouter.ai 的集成,允许通过统一的界面访问各种 AI 模型。
Supabase MCP Server
通过提供数据库管理、SQL查询执行和Supabase管理API访问工具,并内置安全控制,使Cursor和Windsurf能够安全地与Supabase数据库交互。