README
🚀 MCP 服务器 MetaTool
MetaTool MCP 服务器是一个代理服务器,可连接多个 MCP 服务器,并将工具调用转发到对应服务器。它需与开源 GUI 工具管理器 metatool-app 配合使用,为 MCP 相关操作提供便利。
🚀 快速开始
本仓库已不再维护,建议查看 Node.js 替代方案:metatool-ai/mcp-server-metamcp,该替代方案具有 性能更好 和 更少的错误。
✨ 主要特性
- 作为代理服务器,可连接多个 MCP 服务器。
- 能将工具调用请求转发到相应的 MCP 服务器。
- 在
list_tools调用时,可合并所有 MCP 服务器的工具并进行命名空间隔离。
📦 安装指南
使用 uv 是最佳安装方式,需要设置 METATOOL_API_KEY 环境变量。你需要一个 MCP 客户端来连接到此服务器才能使用它。
export METATOOL_API_KEY="my_api_key" # 从 metatool-ai/metatool-app 获取,它是可自行托管的免费版本
uvx mcp-server-metatool
📚 详细文档
工作原理
mcp-server-metatool本身既是 MCP 客户端又是 MCP 服务器。- 在启动时,它连接到
metatool-appAPI 以获取要连接的 MCP 服务器列表。 - 在
list_tools的 MCP 调用中,它将所有 MCP 服务器的工具合并在一起,并具有命名空间隔离。 - 在
call_tool的 MCP 调用中,它将调用转发到相应的服务器。
序列图说明
sequenceDiagram
参与者 MCPClient 作为 MCP 客户端(例如 Claude Desktop)
参与者 MetaToolMCP 作为 MetaTool MCP 服务器
参与者 MetaToolApp 作为 MetaTool 应用程序
参与者 MCPServers 作为 MetaTool 应用程序中安装的 MCP 服务器
MCPClient ->> MetaToolMCP: 请求工具列表
MetaToolMCP ->> MetaToolApp: 获取工具配置和状态
MetaToolApp ->> MetaToolMCP: 返回工具配置和状态
循环 对于每个列出的 MCP 服务器
MetaToolMCP ->> MCPServers: 请求 list_tools
MCPServers ->> MetaToolMCP: 返回工具列表
结束循环
MetaToolMCP ->> MetaToolMCP: 汇总工具列表
MetaToolMCP ->> MCPClient: 返回汇总的工具列表
MCPClient ->> MetaToolMCP: 调用工具
MetaToolMCP ->> MCPServers: 将 call_tool 请求转发到目标 MCP 服务器
MCPServers ->> MetaToolMCP: 返回工具响应
MetaToolMCP ->> MCPClient: 返回工具响应
额外配置
可以设置 METATOOL_API_BASE_URL 环境变量以指向另一个 MetaTool 实例。
export METATOOL_API_BASE_URL="http://localhost:12005"
📄 许可证
本项目采用 Apache License 2.0 许可证。
Scan to join WeChat group