⚠️ 此仓库不再维护!
请查看这个Node.js替代方案:metatool-ai/mcp-server-metamcp。
它具有更好的性能和更少的错误。
(我也是那个项目的作者之一。)
MetaTool MCP Server 是一个代理服务器,它可以连接多个 MCP 服务器并将工具调用转发到适当的服务器。 它应该与 metatool-app 一起使用,后者是 MCP 的图形用户界面工具管理器,也是开源的。
sequenceDiagram
participant MCPClient as MCP 客户端(例如 Claude Desktop)
participant MetaToolMCP as MetaTool MCP 服务器
participant MetaToolApp as MetaTool 应用程序
participant MCPServers as 在 MetaTool 应用程序中安装的 MCP 服务器
MCPClient ->> MetaToolMCP: 请求列出工具
MetaToolMCP ->> MetaToolApp: 获取工具配置及状态
MetaToolApp ->> MetaToolMCP: 返回工具配置及状态
loop 对于每个列出的 MCP 服务器
MetaToolMCP ->> MCPServers: 请求列出工具
MCPServers ->> MetaToolMCP: 返回工具列表
end
MetaToolMCP ->> MetaToolMCP: 聚合工具列表
MetaToolMCP ->> MCPClient: 返回聚合的工具列表
MCPClient ->> MetaToolMCP: 调用工具
MetaToolMCP ->> MCPServers: 转发调用到目标 MCP 服务器
MCPServers ->> MetaToolMCP: 返回工具响应
MetaToolMCP ->> MCPClient: 返回工具响应
list_tools 调用中,它将来自所有 MCP 服务器的所有工具合并,并保持命名空间隔离。call_tool 调用中,它将调用转发到适当的服务器。最佳使用方式是通过 uv 必须设置一个 METATOOL_API_KEY 环境变量
export METATOOL_API_KEY="my_api_key" # 从 metatool-ai/metatool-app 获取,该应用可自托管且免费
uvx mcp-server-metatool
您需要一个 MCP 客户端来连接此服务器并使用它。
可以设置一个 METATOOL_API_BASE_URL 环境变量指向另一个 metatool 实例
export METATOOL_API_BASE_URL="http://localhost:12005"
Apache 许可证 2.0