MCP 网关与代理对比
同时运行的 MCP 服务器一多,就会遇到同样的问题:有些只支持 stdio,而客户端想要 HTTP;每个服务器各有一套凭据;也没人能看到智能体在调用什么。网关和代理从不同角度解决这些问题。
传输代理负责协议转换,比如 stdio 转 Streamable HTTP;聚合器把多个服务器放在同一个端点后面;网关则在此之上增加认证、访问控制和日志。下面的清单把三类都放进来,方便按要做的事选择。
AgentIndex · 更新于 2026-10-14
快速选择
- mcp-proxy — 在 Streamable HTTP 与 stdio 两种 MCP 传输之间做桥接,用来把 stdio 服务器转成 SSE 或 HTTP,或者反过来。
- mcpo — 把任意 MCP 服务器暴露为带 API 密钥认证的 OpenAPI HTTP 服务,适合只支持 OpenAPI 的客户端,如 Open WebUI。
- metamcp — 基于 Docker 的聚合器,把服务器按命名空间分组,并通过 SSE、Streamable HTTP 或 OpenAPI 提供。
- mcphub — 自托管的中心,把多个 MCP 服务器放在统一端点之后。
- MCPJungle — 带工具分组和访问控制的自托管网关;注意其 README 说明暂不支持对上游服务器做 OAuth。
- mcp-context-forge — IBM 的网关与注册中心,联合 MCP、A2A、REST 和 gRPC 服务,面向较大的组织。
- toolhive — 在受限容器中运行并管控 MCP 服务器,本地或 Kubernetes 均可,隔离最重要时选它。
并排对比
| 工具 | 简介 | Star | 许可证 | 最近推送 | 安装 |
|---|---|---|---|---|---|
| mcp-proxy | 在 MCP 传输方式之间做桥接:stdio 与 SSE/HTTP 互转 | 2.8k | 未知 | 2026-10-10 | uv tool install mcp-proxy |
| mcpo | MIT 许可的代理,把任意 MCP 服务器暴露为 OpenAPI HTTP 服务,支持 API 密钥、自动文档和 OAuth 2.1 | 4.4k | MIT | 2026-05-17 | pip install mcpo |
| metamcp | MIT 许可、基于 Docker 的 MCP 聚合器,把多个服务器按命名空间分组,并通过一个 SSE、Streamable HTTP 或 OpenAPI 端点提供 | 2.7k | MIT | 2026-06-22 | docker compose up -d |
| mcphub | 可自托管的 MCP 服务聚合中枢,用统一端点对外提供 | 2.5k | Apache-2.0 | 2026-10-13 | docker run -p 3000:3000 -v ./mcp_settings.json:/app/mcp_settings.json -v ./da… |
| MCPJungle | 自托管的 MCP 网关:一次注册多个服务器,再通过一个端点向 Claude 或 Cursor 提供工具、分组和提示词,并带访问控制 | 1.3k | 未知 | 2026-08-02 | curl -O https://raw.githubusercontent.com/mcpjungle/MCPJungle/refs/heads/main… |
| mcp-context-forge | IBM 的网关与注册中心,统一联合 MCP、A2A、REST 和 gRPC 服务 | 4.6k | Apache-2.0 | 2026-10-13 | pip install mcp-contextforge-gateway |
| agentgateway | 面向 LLM、MCP 和 A2A 流量的开源代理,带护栏和可观测性 | 5.3k | Apache-2.0 | 2026-10-13 | curl -sL https://agentgateway.dev/install.sh | bash -s -- --install-path /usr… |
| toolhive | 在隔离容器里运行和管控 MCP 服务,本地或 Kubernetes 均可 | 2.3k | Apache-2.0 | 2026-10-13 | git clone https://github.com/stacklok/toolhive.git |
| archestra | 开源企业 AI 平台,带 LLM 网关和 MCP 网关 | 4.4k | AGPL-3.0 (enterprise parts under a commercial license) | 2026-10-13 | docker pull archestra/platform:latest; docker run -p 9000:9000 -p 3000:3000 -… |
| open-connector | 可自托管的连接器网关,让智能体使用 1000 多个应用集成而不暴露凭据 | 6.0k | Apache-2.0 | 2026-10-13 | docker compose up |
| klavis | Klavis 的 Apache-2.0 仓库:用于工具路由的 Strata、100+ 带 OAuth 的 MCP 集成,以及面向强化学习训练的 MCP 沙箱 | 5.8k | Apache-2.0 | 2026-06-01 | pipx install strata-mcp |
| aci | Apache-2.0 的工具调用平台,含 600+ 集成、多租户认证和动态工具发现,可通过 MCP 或 SDK 使用 | 4.9k | Apache-2.0 | 2026-05-28 | git clone https://github.com/aipotheosis-labs/aci.git |
本清单中已有 AgentIndex 深度评测的工具: 12/12
如何选择
- 先想清楚要做的事:转换传输协议、把多个服务器合并成一个端点,还是管控访问。这是不同的工具。
- 检查传输协议:stdio、SSE 和 Streamable HTTP 并非每个项目都支持,有的还说 SSE 支持不成熟。
- 看认证:一旦多人使用网关,OAuth 2.1、OIDC、API 密钥和按用户的权限就很重要。
- 看需要运行什么:其中不少需要 Docker 加 PostgreSQL,简单的桥接可能只是一个进程。
- 注意许可证:这里有一个平台是 AGPL-3.0,企业版部分采用商业许可。
常见问题
怎么把 stdio 的 MCP 服务器转成 SSE 或 Streamable HTTP?
用 mcp-proxy 这类传输桥接工具,它位于两种传输协议之间;或者用 MetaMCP、MCPJungle 这类聚合器,由它们替你启动 stdio 服务器并通过 HTTP 暴露。反方向(让只支持 stdio 的客户端连接远程服务器)通常用 mcp-remote 包。
MCP 网关和代理有什么区别?
代理主要负责转发流量或转换传输协议。网关通常在此之上增加管理层:注册多个服务器、认证、访问控制、日志,有时还有指标。有些项目(如 MetaMCP 和 MCPJungle)两者都做。
只有一个 MCP 服务器也需要网关吗?
通常不需要。当多人或多个智能体共享许多服务器、需要集中管理凭据和审计日志,或者客户端无法使用服务器的传输协议时,网关才值得引入。
这份清单怎么来的
工具由我们从收录的项目中人工挑选,优先选择我们深度评测过的。Star、许可证、最近推送日期和安装命令来自各项目仓库,并随站点数据刷新。我们阅读了每个项目的 README 和文档,但没有逐个实际运行,依赖前请自行测试。