BLAH编排平台
# 正文 BLAH - 几乎本地代理主机 一个新的公共注册表,用于协助MCP服务器及其工具的编排。
服务介绍
项目处于极端 POC 模式 - 一切都不稳定 - 文档和愿景纯粹是笔记
BLAH - 几乎合逻辑的代理主机 - 更新 #1
(想象成工具的 npmjs)
一旦这个列表全部完成,BLAH JSON 模式将被最终确定。
- 工具
- 本地函数
- 托管函数
- 注册表
- 发布
- 浏览
- Mcp 支持
- 本地 Stdio
- 本地 SSE
- 托管 SSE
- Slop 支持
- 本地 Slop
- 托管 Slop
- 工具组合性
- 分组
- 流程
- 触发器/标签
- 扩展
- 本地 blah.json
- 托管 blah.json
- 调试
- 游乐场
- 日志记录
备注:
- 流程将使用 agnt.gg 的流程模式的一个子集
- 扩展意味着你可以以任何你喜欢的方式组合 blah.json。(想象一下,如果你只想包含你关注的设计者的工具)
- 注册表意味着我们将有一个方便的方式来推送和拉取函数(工具)
BLAH - 几乎合逻辑的代理主机
BLAH 是一个开源生态系统,用于使用 Model Context Protocol (MCP) 管理、分发和执行 AI 代理工具。它为 MCP 服务器提供了一个去中心化的注册表,促进了透明度、安全性和社区驱动的开发。
项目结构
此项目使用 Turborepo 组织为单仓库:
packages/cli- 主要的 BLAH CLI 工具,用于处理 MCPapps/web- BLAH 的 Web 界面apps/docs- 文档站点
开始
前提条件
- Node.js >= 18.18.0(推荐 Node 20+)
- pnpm
安装
# Clone the repository
git clone https://github.com/thomasdavis/blah.git
cd blah
# Install dependencies
pnpm install
# Build the project
pnpm run build
使用 CLI 快速开始
请参阅 CLI README 获取有关使用 BLAH CLI 的详细说明。
# Navigate to the CLI package
cd packages/cli
# Set up your environment variables (.env file)
echo "OPENAI_API_KEY=your_openai_api_key_here" > .env
echo "BLAH_HOST=https://ajax-blah.web.val.run" >> .env
# Run a simulation
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: `Says hello to the name`,
inputSchema: {
type: "object",
properties: {
name: {
type: "string",
description: `Name to say hello to`,
},
},
},
},
];
return new Response(JSON.stringify(tools), {
headers: {
"Content-Type": "application/json",
},
status: 200,
});
}
添加到您的客户端
- Claude
- 桌面
- 代码(CLI)
- Cursor
- Cline
- Windsurf
- BLAH 客户端
- 是否已有不错的 Web 客户端
开发
我仍在开发工具,以使开发不那么糟糕。
日志记录
在开发过程中,我希望从每个人的客户端发送日志,只是为了找出由于不同配置导致的所有该死的错误。
游乐场
到目前为止只是一个基本的客户端,列出提示、资源和工具。以后可以是交互式的,并且应该也运行测试。
npm run playground
需要改进
- Valtown 是当前的封装,可能需要使用 Vercel 函数或其他方法来替代。
- 需要一个好的组合策略
致谢
- Lisa Watts
- Travis
- Wombat
由 AI 生成的废话(以上是真实的)
- mcp 服务器版本徽章
- 注册表运行时间状态
BLAH 是什么?
BLAH 是一个开源生态系统,用于管理、分发和执行使用模型上下文协议 (MCP) 的 AI 代理工具。它提供了一个去中心化的 MCP 服务器注册表,避免了激励不一致的问题,促进了透明度、安全性和社区驱动的开发。
主要特性:
- 开源基础设施,任何系统(IDE、AI 平台等)都可以连接
- 支持无限工具选择的语言无关工具注册表
- 通过可选的签名和验证 MCP 服务器实现强大的安全性
- 用于发布、发现和管理工具的全面 CLI
- 支持各种工具类型:函数、REST 端点、本地文件或标准清单
🔍 愿景
BLAH 旨在成为新一代易于共享、发现和组合的 AI 工具的基础。我们设想的未来是:
- 任何人都可以创建和分享扩展 AI 能力的工具
- 每个人无论技术背景如何,都能访问丰富的工具生态系统
- 每个系统都可以通过标准协议与这个生态系统集成
🚀 快速开始
安装
npm install -g blah-mcp
基本用法
# Search for tools
blah search "image generation"
# Install a tool
blah install awesome-image-generator
# List installed tools
blah list
# Get info about a tool
blah info awesome-image-generator
📖 核心概念
注册表
BLAH 的注册表借鉴了像 npm 这样的包管理器的经验,重点关注:
- 透明性:所有基础设施代码都是开源的
- 去中心化:存储选项包括本地、云、IPFS 或 gists
- 安全性:MCP 服务器的可选签名和验证
- 治理:社区驱动,没有单一实体控制生态系统
代理行为
BLAH 支持多种代理交互模式:
- 并行执行
- 递归工具调用
- 分支工作流
- 顺序处理
- 复杂的基于图的工作流
工具定义
BLAH 中的工具本质上是一个函数,但可以表示为:
- 代码片段
- RESTful 端点
- 本地可执行文件
- 标准清单(SLOP、agents.json)
每个工具都应明确记录其调用方式,尽管这不是强制性的。
🛠️ CLI 命令
BLAH 提供了一个全面的 CLI:
blah publish - Publish a tool to the registry
blah search - Search for tools by name, tag, or description
blah install - Install a tool
blah remove - Remove an installed tool
blah update - Update tools to latest versions
blah list - List installed tools
blah info - Display information about a tool
blah config - Configure BLAH settings
blah login - Authenticate with registry
blah logout - End authentication session
blah whoami - Show current authenticated user
blah version - Display version information
blah help - Show help information
📋 清单
BLAH 使用清单文件 (blah.json) 来定义工具及其依赖项。该清单可以存在于:
希望这符合您的需求!如果还有其他需要翻译的内容,请随时告诉我。
- 在项目工作空间中
- 在主目录中
- 托管在云端
- 作为代码片段或在 IPFS 上
示例 blah.json:
{
"name": "awesome-image-generator",
"version": "1.0.0",
"description": "Tool for generating awesome images",
"entry": "./dist/index.js",
"tools": [
{
"name": "generate_image",
"description": "Generates an image from a text prompt",
"parameters": {
"prompt": {
"type": "string",
"description": "Text description of the desired image"
},
"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 服务器签名
- 在沙箱环境中执行代码
- 全面的日志记录以确保问责
- 遵守当地法律和法规
🚧 路线图
- 在云平台上托管 MCP 服务器(例如,Cloudflare Workers)
- 创建一个基于 Web 的工具浏览器和文档网站
- 改进调试和开发者体验
- 开发一个工具创建向导/生成器
- 实施工具推荐系统
🧠 未来的想法
- 用户行为共享以实现个性化工具推荐
- 通过类似于 cron 的机制定期执行代理
- 分散式治理模型以管理注册表
- 扩展生态系统以实现自定义注册表实现
🤝 贡献
欢迎贡献!请稍后查看详细的贡献指南。
👏 致谢
特别感谢 Lisa 和 Wombat 对此项目的宝贵贡献。
📄 许可证
BLAH 根据 MIT 许可证发布。详情请参阅 LICENSE 文件。