mcp-context-forge

统一网关聚合 MCP/A2A/REST,让 Agent 调用更安全可控。

mcp-context-forge 是一个面向 AI Agent 与工具调用的统一网关、注册中心和代理服务。它位于 MCP、A2A 以及 REST/gRPC API 之前,把分散的模型上下文协议服务、智能体接口和传统 API 聚合到一个统一端点,解决多协议、多服务接入时发现难、鉴权乱、调用链路不透明的问题。核心能力包括集中式服务发现与注册、JWT 等认证中间件、访问护栏与策略控制、请求路由与代理、对 Agent 和工具调用的优化,以及插件扩展机制。项目基于 Python、FastAPI 和 asyncio 构建,适合需要把 MCP 工具、A2A 智能体和既有 API 统一治理的团队,作为 AI 基础设施层降低集成与运维成本。

开源 free 基础设施
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 4492
维护状态 活跃
是否开源
定价模式 free

项目数据

分类基础设施
开发团队IBM
所属国家
定价模式free
价格说明开源免费,基于Apache许可证
访问状态
是否开源
开源协议Apache-2.0
主要语言Python
技术栈/模型agents,ai,api-gateway,asyncio,authentication-middleware,devops,docker,fastapi,federation,gateway,generative-ai,jwt,kubernetes,llm-agents,mcp,model-context-protocol,observability,prompt-engineering,python,tools
GitHub 星标★ 4492
30天Star增速
HF 下载量
上线时间2025-05-08 00:00:00
最近更新2026-09-18 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-16
浏览次数0

使用教程

难度:进阶 约 15 分钟 部署方式:Docker 7 步

环境要求

  • Python 3.11 环境(官方 Dev Container 内置 Python 3.11)
  • 必须提供 JWT_SECRET_KEY 与 AUTH_ENCRYPTION_SECRET,缺失则网关无法启动
  • Docker 或 Podman,用于容器化部署(可选用 PostgreSQL + Redis 完整栈)
  • 注意:arm64 目前不支持生产环境,Apple Silicon 需用 Rosetta 跑容器或改用 PyPI 安装
  • 源码方式需要 make 与项目依赖(make venv install-dev)

安装与启动步骤

  1. 1创建虚拟环境

    新建目录并创建隔离的 Python 虚拟环境,避免污染系统环境;Windows 用 ..venvScriptsActivate.ps1 激活。

    mkdir mcpgateway && cd mcpgateway
    python3 -m venv .venv && source .venv/bin/activate
  2. 2安装网关包

    从 PyPI 安装 mcp-contextforge-gateway;README 也给出 uv 方式,可先 uv venv 再 uv pip install。

    pip install --upgrade pip
    pip install mcp-contextforge-gateway
  3. 3生成必要密钥

    网关在任何环境(含本地开发)都要求这两个密钥,用官方脚本生成真实密钥后再启动。

    python3 -m mcpgateway.scripts.init_secrets
  4. 4准备 .env 文件

    复制示例配置并用脚本把生成的真实密钥回填到 .env,占位值会导致启动失败。

    cp .env.example .env
    python3 -m mcpgateway.scripts.init_secrets --patch-env .env
  5. 5容器启动全栈

    在仓库根目录用 Make 目标启动 PostgreSQL、Redis、3 个网关副本与 Nginx;需已存在含真实密钥的 .env。

    make compose-up
  6. 6源码方式运行

    从源码安装开发依赖并构建 Admin UI,然后由 gunicorn 在 4444 端口提供网关服务。

    make venv install-dev
    make serve
  7. 7代理示例服务

    用 mcpgateway.translate 把标准输入输出的 MCP 时间服务器暴露为 SSE 服务,端口 8003,可换成 podman。

    python3 -m mcpgateway.translate --stdio "docker run --rm -i ghcr.io/ibm/fast-time-server:latest -transport=stdio" --expose-sse --port 8003

关键配置

配置项必填说明示例
JWT_SECRET_KEYJWT 签名密钥,所有环境都必须配置,否则网关拒绝启动生成脚本产出的随机长字符串
AUTH_ENCRYPTION_SECRET认证信息加密密钥,与 JWT 密钥同为启动必填项生成脚本产出的随机长字符串
DATABASE_URLSQLAlchemy 连接串,默认使用本地 SQLite 文件postgresql+psycopg://user:password@localhost:5432/mcp
HOST服务绑定地址,默认 0.0.0.00.0.0.0
MCPGATEWAY_UI_ENABLED是否启用 Admin UI 管理面板,默认开启true
SECURE_COOKIESHTTP(非 HTTPS)本地开发时需设为 falsefalse

如何确认成功

compose 启动后 Nginx 监听 :8080;执行 make serve 时 gunicorn 监听 :4444 即表示网关已启动成功。

常见问题

Q:.env 缺失或用占位密钥会怎样?

A:网关会在启动时快速失败,通过 Pydantic 抛出校验错误。请先复制 .env.example 并用 init_secrets --patch-env 写入真实密钥。

Q:docker compose up -d 报 cryptography 或依赖解析错误?

A:这是本地构建缺少 CI 产出的封闭 wheel 集合所致,改用 GHCR 预构建镜像即可,compose 默认就会拉取预构建镜像。

Q:Apple Silicon 上容器跑不起来?

A:README 说明当前 arm64 不支持生产环境,可用 Rosetta 运行容器,或改用 PyPI 安装方式部署。

Q:跨网关 UAID 路由提示 UAID_ALLOWED_DOMAINS not configured?

A:在 .env 中把可信域名加入 UAID_ALLOWED_DOMAINS 白名单,并确保两端信任同一 JWT 签发方(共享密钥或联邦 SSO)。

注意事项

  • JWT_SECRET_KEY 与 AUTH_ENCRYPTION_SECRET 在包括本地开发在内的所有环境都是必填项,网关不会以占位值启动。
  • docker compose up -d 默认不本地构建镜像,而是使用 GHCR 预构建镜像,本地构建需要 CI 才能产出的 wheel 闭包。
  • 当前 arm64 不支持生产环境,M1/M2 等 Apple Silicon 机器建议用 Rosetta 或 PyPI 安装。
  • 完整配置包含 300+ 环境变量,按认证、缓存、SSO、可观测性等分类,详见官方 Configuration Reference。

核心亮点

  • 统一 MCP、A2A、REST/gRPC 多协议入口,减少 Agent 对接多种服务的重复适配
  • 内置注册中心与集中发现,服务上线后可被 Agent 动态感知,无需硬编码地址
  • 提供 JWT 认证、护栏和插件机制,便于在网关层做权限、审计和策略扩展

不足之处

  • 项目处于成长阶段,生产环境大规模验证案例和长期稳定性数据仍待积累
  • 多协议聚合与插件体系带来一定部署和配置复杂度,小团队上手成本不低

适用场景

  • 企业把内部多个 MCP 工具服务统一注册,供不同 Agent 按权限发现和调用
  • AI 平台将 A2A 智能体与既有 REST API 通过一个网关暴露,统一鉴权和限流
  • 需要审计和护栏的团队在网关层记录 Agent 工具调用链路并施加访问策略

替代项目

Kong、APISIX、Envoy

项目介绍

mcp-context-forge 是一个基础设施领域的开源项目,官方简介:An AI Gateway, registry, and proxy that sits in front of any MCP, A2A, or REST/gRPC APIs, exposing a unified endpoint with centralized discovery, guardrails and management. Optimizes Agent & Tool calling, and supports plugins.。项目使用 Python 开发,在 GitHub 上获得 4476 星标。

上一篇:Sentinel_Guard

下一篇:tiny-vllm

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

OpenAI-compatible gateway for FreeBuff coding models. Token pool, session lifecycle,···

★ 202 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8576 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 435 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181269 2026-08-09