自动化与运维 mcp-gatewaya2a-routingrest-to-mcpgrpc-translationopentelemetrykubernetesfastapi

ContextForge 网关

将 MCP、A2A 与 REST/gRPC 服务统一为可治理的 AI 工具与代理入口。

FollowAgents 评估 · FARS-2.1
不推荐
49/ 100 五分制 2.5 / 5
1 2 3 4 5 6
按维度查看评分与理由
1信任安全11 / 29 · 1.9/5

证据显示有安全验证器、SSRF防护、模板注入防护等,但未发现用户确认机制或数据流透明度的明确文档。依赖安全有扫描和固定版本,但未验证实际执行。外部影响有SSRF防护但未全面。回滚有迁移测试但未全面。来源归属有作者信息但未验证。

2可靠稳定8 / 14 · 2.9/5

自洽性较好,文档与配置一致。依赖可用性有固定版本和锁定,但未验证实际安装。失败消息有部分文档但未全面。

3适用触发10 / 18 · 2.8/5

受众明确为开发者,场景覆盖MCP、A2A、REST等。能力边界有说明但未全面。触发精度有配置但未明确。环境适配有Docker、K8s等。

4规范维护10 / 18 · 2.8/5

信息架构清晰,有目录和文档。安装说明详细。命名稳定性有版本但未明确。示例和FAQ有。已知限制有Beta说明。许可证明确。版本和变更日志有。维护责任有作者但未验证。

5有效结果7 / 13 · 2.7/5

输出可用性有API和UI。边际价值高,提供统一网关。成本效益有性能优化但未验证。

6证据核验3 / 8 · 1.9/5

声明有文档支持但未独立验证。交叉来源有限。事实与推断分离不明确。

证据充分度: 评估于 2026年8月9日 审查版本 eaf295e64457
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
源码中未见的安全控制:执行前用户确认
使用前请注意
  • 未验证发布者身份,需谨慎对待。
  • 静态审查无法确认实际安全性和可靠性。
  • Admin UI 仅限开发环境,生产需禁用。
评估证据 [1][2][3][4][5][6][7]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

ContextForge 是 IBM 提供的开源注册表与代理网关,用于联合 MCP 服务器、A2A 服务器以及 REST/gRPC API。核心 FastAPI 应用位于 mcpgateway/,提供路由、中间件、服务层,以及 SSE、WebSocket、stdio 和 streamable HTTP 等传输方式。它可将 REST 和经反射发现的 gRPC 服务虚拟化为 MCP 工具,并把已注册工具组合成虚拟 MCP 服务器。网关提供认证、重试、限流、集中发现和 OpenTelemetry 可观测性,支持 Phoenix、Jaeger、Zipkin 及其他 OTLP 后端。它可通过 PyPI、容器、Docker Compose 或 Helm 部署;完整容器栈使用 PostgreSQL、Redis、Nginx 和多个网关副本。

管理员可向 POST /gateways 注册 MCP 服务地址,再从 GET /tools 读取工具目录,并通过 POST /servers 创建包含 associated_tools 的虚拟服务器。客户端随后连接 /servers/UUID_OF_SERVER_1/mcp,以 streamable HTTP 使用该虚拟服务器。mcpgateway.translate 可运行 stdio 命令,例如 uvx mcp-server-git,并同时暴露 /sse 和 /mcp 端点;它还支持通过服务反射发现 gRPC 服务并转换为 MCP。运行时可执行认证、重试、限流和反向代理,并通过 OpenTelemetry 输出网关、工具、提示词和资源操作的追踪数据。mcpgateway.wrapper 则使用 MCP_AUTH 和 MCP_SERVER_URL,将远程网关连接包装成供 stdio MCP 客户端使用的进程。

  1. 平台工程团队需要把多个内部 MCP 服务集中到一个带认证、发现和可观测性的入口时。
  2. 拥有既有 REST API 的后端团队需要以 MCP 工具形式提供 API,而不重写原服务时。
  3. 使用 gRPC 服务的团队希望借助服务器反射自动发现服务和方法,并向 MCP 客户端暴露它们时。
  4. 同时使用 OpenAI、Anthropic 或自定义外部代理的团队需要通过 A2A 和统一网关路由代理调用时。
  5. 在 Kubernetes 多集群环境部署工具基础设施,并需要 Redis 缓存与联邦能力时。
  6. 需要让仅支持 stdio 的 MCP 客户端通过 mcpgateway.wrapper 访问已认证远程网关时。

这个 Agent 有哪些优点和局限?

优点
  • 可在一个网关中联合 MCP、A2A、REST 与 gRPC;gRPC 转换使用服务反射进行发现。
  • 提供 REST-to-MCP 适配、虚拟 MCP 服务器和 stdio 包装器,覆盖 HTTP 与 stdio 客户端接入路径。
  • 具备集中认证、重试、限流、JWT 与用户作用域 OAuth 令牌等网关控制能力。
  • 可通过 OpenTelemetry 接入 Phoenix、Jaeger、Zipkin 及其他 OTLP 后端,并支持分布式追踪。
  • 提供 PyPI、GHCR 容器、Docker Compose 和 Helm 部署路径,完整栈包含 PostgreSQL、Redis 与 Nginx。
局限
  • JWT_SECRET_KEY 和 AUTH_ENCRYPTION_SECRET 是强制配置;缺失或仍为占位符时服务会快速启动失败。
  • 完整 Docker Compose 本地构建依赖 CI 生成的 hermetic wheel closure;遇到 cryptography 或依赖解析错误时需拉取 GHCR 预构建镜像。
  • 生产容器目前不支持 arm64;Apple Silicon 用户需使用 Rosetta 或改用 PyPI 安装。
  • Kubernetes Helm 默认禁止私有网络 SSRF 访问;注册集群内工具地址时需要配置允许网络或调整该设置。
  • 仓库中的 mcp-servers/ 仅为示例和测试服务器,明确不适合生产运行。

如何安装或部署这个 Agent?

需要 Python 3.11 或更高版本。安装 PyPI 包并生成必需密钥:

python3 -m venv .venv && source .venv/bin/activate
pip install --upgrade pip
pip install mcp-contextforge-gateway
curl -O https://raw.githubusercontent.com/IBM/mcp-context-forge/main/.env.example
cp .env.example .env
python3 -m mcpgateway.scripts.init_secrets --patch-env .env
mcpgateway --host 0.0.0.0 --port 4444

JWT_SECRET_KEY 与 AUTH_ENCRYPTION_SECRET 必须设置为真实值,否则服务会在启动时失败。

如何使用这个 Agent?

从 .env 读取 JWT 密钥并创建令牌:

export JWT_SECRET_KEY=$(grep '^JWT_SECRET_KEY=' .env | cut -d= -f2)
export MCPGATEWAY_BEARER_TOKEN=$(python3 -m mcpgateway.utils.create_jwt_token --username [email protected] --exp 10080 --secret "$JWT_SECRET_KEY")

注册一个 SSE MCP 服务:

curl -s -X POST -H "Authorization: Bearer $MCPGATEWAY_BEARER_TOKEN" -H "Content-Type: application/json" -d '{"name":"fast_time","url":"http://localhost:8003/sse"}' http://localhost:4444/gateways

随后使用 GET /tools 获取工具 ID,向 POST /servers 提交 server.name、server.description 和 associated_tools,并让 MCP 客户端连接 http://localhost:4444/servers/UUID_OF_SERVER_1/mcp。运行中的服务也提供 /docs、/redoc、/health 和 /version。

常见问题

启动网关前必须配置什么?
必须配置有效的 JWT_SECRET_KEY 和 AUTH_ENCRYPTION_SECRET;文档提供 python3 -m mcpgateway.scripts.init_secrets 用于生成它们。生产部署还应设置强 PLATFORM_ADMIN_PASSWORD。
它能把非 MCP 服务接入 MCP 客户端吗?
可以。它可将 REST API 适配为 MCP 工具,并通过服务反射发现 gRPC 服务后进行 gRPC-to-MCP 转换。
可以如何部署?
可从 PyPI 运行,使用 GHCR 容器,运行 Docker Compose 完整栈,或使用 Helm 部署到 Kubernetes;开发环境也支持 Uvicorn 和 SQLite。
示例 MCP 服务器是否可直接用于生产?
不应如此使用。仓库说明 mcp-servers/ 下的示例和测试服务器通常缺少会话管理、持久化状态、多租户和认证,也未经过核心代码同等的安全审查。

相关 Agents