🚨 已弃用包警告 🚨
在MetaMCP的2.0全功能架构中,此本地代理包已被弃用。
MetaMCP MCP Server 是一个代理服务器,它将多个MCP服务器合并成一个。该服务器从MetaMCP应用获取工具/提示/资源配置,并将工具/提示/资源请求路由到正确的底层服务器。
<a href="https://glama.ai/mcp/servers/0po36lc7i6"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=3675630332,9272737&fm=3081&app=3_081&f=PNG?w=760&h=400" alt="MetaServer MCP 服务器" /> </a>MetaMCP 应用仓库:https://github.com/metatool-ai/metatool-app
有时 Smithery 可以正常工作(在本地确认过 Windsurf),但有时由于 MetaMCP 的特殊性(在其上运行其他 MCP)而变得不稳定。如果 Smithery 不起作用,请考虑使用手动安装。
要通过 Smithery 自动安装 MetaMCP MCP Server 到 Claude Desktop:
npx -y @smithery/cli install @metatool-ai/mcp-server-metamcp --client claude
export METAMCP_API_KEY=<环境变量>
npx -y @metamcp/mcp-server-metamcp@latest
{
"mcpServers": {
"MetaMCP": {
"command": "npx",
"args": ["-y", "@metamcp/mcp-server-metamcp@latest"],
"env": {
"METAMCP_API_KEY": "<你的 API 密钥>"
}
}
}
}
mcp-server-metamcp --metamcp-api-key <你的 API 密钥>
mcp-server-metamcp --metamcp-api-key <你的 API 密钥> --transport sse --port 12006
启用 SSE 传输选项后,服务器会启动一个 Express.js 网络服务器,监听 /sse 端点上的 SSE 连接,并接受 /messages 端点的消息。
mcp-server-metamcp --metamcp-api-key <你的 API 密钥> --transport streamable-http --port 12006
启用可流式传输的 HTTP 传输选项后,服务器会启动一个 Express.js 网络服务器来处理 HTTP 请求。你可以选择使用 --stateless 模式进行无状态操作。
当在 Docker 容器内运行服务器并连接到主机上的服务时,使用 --use-docker-host 选项自动转换 localhost URL:
mcp-server-metamcp --metamcp-api-key <你的 API 密钥> --transport sse --port 12006 --use-docker-host
这将把任何 localhost 或 127.0.0.1 URL 转换为 host.docker.internal,使容器能够正确连接到主机上运行的服务。
对于 STDIO 传输,你可以控制子 MCP 进程的 stderr 输出处理方式:
# 使用 inherit 查看子进程的 stderr 输出
mcp-server-metamcp --metamcp-api-key <你的 API 密钥> --stderr inherit
# 使用 pipe 捕获 stderr 输出(默认是忽略)
mcp-server-metamcp --metamcp-api-key <你的 API 密钥> --stderr pipe
# 或者通过环境变量设置
METAMCP_STDERR=inherit mcp-server-metamcp --metamcp-api-key <你的 API 密钥>
可用的 stderr 选项:
ignore(默认):忽略子进程的 stderr 输出inherit:将子进程的 stderr 输出传递给父进程pipe:捕获 stderr 输出进行处理overlapped:使用重叠 I/O(Windows 特定)选项:
--metamcp-api-key <密钥> MetaMCP 的 API 密钥(也可以通过 METAMCP_API_KEY 环境变量设置)
--metamcp-api-base-url <URL> MetaMCP API 的基础 URL(也可以通过 METAMCP_API_BASE_URL 环境变量设置)
--report 获取所有 MCP,初始化客户端,并向 MetaMCP API 报告工具
--transport <类型> 使用的传输类型(stdio、sse 或 streamable-http)(默认:"stdio")
--port <端口> SSE 或 Streamable HTTP 传输使用的端口,默认为 12006(默认:"12006")
--require-api-auth 在 SSE 或 Streamable HTTP URL 路径中需要 API 密钥
--stateless 对于 Streamable HTTP 传输使用无状态模式
--use-docker-host 将 localhost URL 转换为 host.docker.internal 以支持 Docker 兼容性(也可以通过 USE_DOCKER_HOST 环境变量设置)
--stderr <类型> STDIO 传输的 stderr 处理方式(overlapped、pipe、ignore、inherit)(默认:"ignore")
-h, --help 显示命令帮助
METAMCP_API_KEY:MetaMCP 的 API 密钥METAMCP_API_BASE_URL:MetaMCP API 的基础 URLUSE_DOCKER_HOST:当设置为 "true" 时,将 localhost URL 转换为 host.docker.internal 以支持 Docker 兼容性METAMCP_STDERR:STDIO 传输的 stderr 处理方式(overlapped、pipe、ignore、inherit)。默认为 "ignore"# 安装依赖
npm install
# 构建应用
npm run build
# 监视更改
npm run watch
sequenceDiagram
participant MCPClient as MCP 客户端(例如 Claude Desktop)
participant MetaMCP-mcp-server as MetaMCP MCP 服务器
participant MetaMCPApp as MetaMCP 应用
participant MCPServers as 在 Metatool 应用中安装的 MCP 服务器
MCPClient ->> MetaMCP-mcp-server: 请求列出工具
MetaMCP-mcp-server ->> MetaMCPApp: 获取工具配置及状态
MetaMCPApp ->> MetaMCP-mcp-server: 返回工具配置及状态
loop 对每个列出的 MCP 服务器
MetaMCP-mcp-server ->> MCPServers: 请求列出工具
MCPServers ->> MetaMCP-mcp-server: 返回工具列表
end
MetaMCP-mcp-server ->> MetaMCP-mcp-server: 聚合工具列表
MetaMCP-mcp-server ->> MCPClient: 返回聚合的工具列表
MCPClient ->> MetaMCP-mcp-server: 调用工具
MetaMCP-mcp-server ->> MCPServers: 调用目标 MCP 服务器的工具
MCPServers ->> MetaMCP-mcp-server: 返回工具响应
MetaMCP-mcp-server ->> MCPClient: 返回工具响应