项目简介

Metatool MCP Server 是一个代理服务器,它本身既是 MCP 客户端,又是 MCP 服务器。它的主要作用是将多个由 Metatool App 管理的 MCP 服务器的工具整合起来,对外提供一个统一的 MCP 服务接口。当 MCP 客户端(如 Claude Desktop)连接到 Metatool MCP Server 时,可以访问到所有被代理的 MCP 服务器上的工具。

注意: 该项目已被标记为 'deprecated',官方推荐使用性能更好、bug 更少的 metatool-ai/mcp-server-metamcp 替代。尽管如此,该项目依然是一个有效的 MCP 服务器实现,可以用于理解 MCP 代理服务器的工作原理。

主要功能点

  • MCP 代理服务: 作为 MCP 服务器,接收 MCP 客户端的请求。
  • 工具聚合: 连接到 Metatool App 获取已配置的 MCP 服务器列表,并汇总这些服务器提供的工具。
  • 工具路由: 根据工具名称前缀(server_name__tool_name)将工具调用请求转发到相应的后端 MCP 服务器。
  • 动态配置: 通过 Metatool App 的 API 动态获取和更新后端 MCP 服务器的配置信息。
  • 自定义 MCP 服务器支持: 支持通过 Metatool App 管理和代理自定义的 MCP 服务器,包括动态安装 Python 依赖。

安装步骤

  1. 安装 uvx: 推荐使用 uvx 运行 Metatool MCP Server。如果尚未安装 uvx,请参考 uv 安装文档 进行安装。
  2. 设置环境变量 'METATOOL_API_KEY': Metatool MCP Server 需要连接到 Metatool App 的 API 获取配置信息。您需要从 Metatool App 获取 API Key 并设置为环境变量 'METATOOL_API_KEY'。
    export METATOOL_API_KEY="your_metatool_api_key"
    如果您使用了非默认的 Metatool App 地址,还需要设置 'METATOOL_API_BASE_URL' 环境变量:
    export METATOOL_API_BASE_URL="http://your_metatool_app_address:port"
    默认 Metatool App 地址为 'http://localhost:12005'。
  3. 运行 Metatool MCP Server: 使用 uvx 命令运行 Metatool MCP Server。
    uvx mcp-server-metatool

服务器配置

MCP 客户端需要配置连接到 Metatool MCP Server 的信息。以下是 MCP 客户端所需的服务器配置信息(JSON 格式):

{
  "serverName": "metatool",
  "command": "mcp-server-metatool"
  // "args": []  // 启动参数,本例中不需要额外参数
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义,例如 "metatool-proxy"。
  • 'command': 启动 MCP 服务器的命令。由于我们使用 'uvx mcp-server-metatool' 运行,这里直接填写 'mcp-server-metatool' 即可。 MCP 客户端会在后台执行 'uvx mcp-server-metatool' 命令来启动 Metatool MCP Server。
  • 'args': 启动命令的参数列表。Metatool MCP Server 默认通过标准输入/输出 (stdio) 与 MCP 客户端通信,无需额外参数。

将以上 JSON 配置信息填入您的 MCP 客户端的服务器配置中即可。 具体的配置位置和方法请参考您的 MCP 客户端的使用说明。

基本使用方法

  1. 启动 Metatool App: 确保 Metatool App 已经启动并运行,并且您已经配置了需要代理的 MCP 服务器。
  2. 启动 Metatool MCP Server: 在终端中运行 'uvx mcp-server-metatool' 命令启动代理服务器。
  3. 配置 MCP 客户端: 将上面提供的服务器配置 JSON 信息填入您的 MCP 客户端的服务器配置中,并连接到 Metatool MCP Server。
  4. 使用工具: 在 MCP 客户端中,您应该能够看到来自所有被代理的 MCP 服务器的工具列表。工具名称会带有服务器名称前缀,例如 'server1__tool_name',用于区分工具来源。您可以像使用普通 MCP 服务器一样调用这些工具。

注意: 由于 Metatool MCP Server 是一个代理服务器,实际的工具执行仍然在后端的 MCP 服务器上进行。Metatool MCP Server 负责请求转发和结果返回。

信息

分类

网页与API