ContextForge 网关
将 MCP、A2A 与 REST/gRPC 服务统一为可治理的 AI 工具与代理入口。
按维度查看评分与理由
证据显示有安全验证器、SSRF防护、模板注入防护等,但未发现用户确认机制或数据流透明度的明确文档。依赖安全有扫描和固定版本,但未验证实际执行。外部影响有SSRF防护但未全面。回滚有迁移测试但未全面。来源归属有作者信息但未验证。
自洽性较好,文档与配置一致。依赖可用性有固定版本和锁定,但未验证实际安装。失败消息有部分文档但未全面。
受众明确为开发者,场景覆盖MCP、A2A、REST等。能力边界有说明但未全面。触发精度有配置但未明确。环境适配有Docker、K8s等。
信息架构清晰,有目录和文档。安装说明详细。命名稳定性有版本但未明确。示例和FAQ有。已知限制有Beta说明。许可证明确。版本和变更日志有。维护责任有作者但未验证。
输出可用性有API和UI。边际价值高,提供统一网关。成本效益有性能优化但未验证。
声明有文档支持但未独立验证。交叉来源有限。事实与推断分离不明确。
- 未验证发布者身份,需谨慎对待。
- 静态审查无法确认实际安全性和可靠性。
- Admin UI 仅限开发环境,生产需禁用。
这个 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 客户端使用的进程。
- 平台工程团队需要把多个内部 MCP 服务集中到一个带认证、发现和可观测性的入口时。
- 拥有既有 REST API 的后端团队需要以 MCP 工具形式提供 API,而不重写原服务时。
- 使用 gRPC 服务的团队希望借助服务器反射自动发现服务和方法,并向 MCP 客户端暴露它们时。
- 同时使用 OpenAI、Anthropic 或自定义外部代理的团队需要通过 A2A 和统一网关路由代理调用时。
- 在 Kubernetes 多集群环境部署工具基础设施,并需要 Redis 缓存与联邦能力时。
- 需要让仅支持 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 4444JWT_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。