项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-09-16 · 当前星标 ★ 4749
技术标签
使用教程
环境要求
- 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创建虚拟环境
新建目录并创建隔离的 Python 虚拟环境,避免污染系统环境;Windows 用 .\.venv\Scripts\Activate.ps1 激活。
mkdir mcpgateway && cd mcpgateway python3 -m venv .venv && source .venv/bin/activate -
2安装网关包
从 PyPI 安装 mcp-contextforge-gateway;README 也给出 uv 方式,可先 uv venv 再 uv pip install。
pip install --upgrade pip pip install mcp-contextforge-gateway -
3生成必要密钥
网关在任何环境(含本地开发)都要求这两个密钥,用官方脚本生成真实密钥后再启动。
python3 -m mcpgateway.scripts.init_secrets -
4准备 .env 文件
复制示例配置并用脚本把生成的真实密钥回填到 .env,占位值会导致启动失败。
cp .env.example .env python3 -m mcpgateway.scripts.init_secrets --patch-env .env -
5容器启动全栈
在仓库根目录用 Make 目标启动 PostgreSQL、Redis、3 个网关副本与 Nginx;需已存在含真实密钥的 .env。
make compose-up -
6源码方式运行
从源码安装开发依赖并构建 Admin UI,然后由 gunicorn 在 4444 端口提供网关服务。
make venv install-dev make serve -
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_KEY | 是 | JWT 签名密钥,所有环境都必须配置,否则网关拒绝启动 | 生成脚本产出的随机长字符串 |
AUTH_ENCRYPTION_SECRET | 是 | 认证信息加密密钥,与 JWT 密钥同为启动必填项 | 生成脚本产出的随机长字符串 |
DATABASE_URL | 否 | SQLAlchemy 连接串,默认使用本地 SQLite 文件 | postgresql+psycopg://user:password@localhost:5432/mcp |
HOST | 否 | 服务绑定地址,默认 0.0.0.0 | 0.0.0.0 |
MCPGATEWAY_UI_ENABLED | 否 | 是否启用 Admin UI 管理面板,默认开启 | true |
SECURE_COOKIES | 否 | HTTP(非 HTTPS)本地开发时需设为 false | false |
如何确认成功
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
上一篇:Sentinel_Guard
下一篇:tiny-vllm
同类项目推荐
bacalhau
开源
把计算搬到数据身边,省时省钱跑批处理
Community-driven, simple, yet powerful framework for fast, cost-effective distribute···
M365-Copilot2API
开源
把 M365 Copilot 变成 OpenAI 接口,客户端零改动直接调
Microsoft 365 Copilot → OpenAI / Anthropic 兼容 API 网关。
muninndb
开源
会遗忘、会强化、带置信度的 AI 原生记忆库
The cognitive database. A new class of data storage. Not a vector store, not a graph···
clearml-serving
开源
一键编排多模型推理服务,自动伸缩省运维
ClearML - Model-Serving Orchestration and Repository Solution
paddler
开源
自托管 LLM 负载均衡,简单部署,CPU/GPU 通吃
Open-source LLM/VLM load balancer and serving platform for self-hosting LLMs (and VL···
像用数据库一样管理多模态 AI 数据,省去管道工程
The backend agents build with - Multimodal database, orchestration, and serving in o···
metabase
开源
让不懂 SQL 的同事也能轻松做数据分析,五分钟搭建团队 BI 看板
The easy-to-use open source Business Intelligence and Embedded Analytics tool that l···
Free-GPT-Grok-Gemini-Claude-API
开源
一个API直连GPT/Claude/Gemini,国内可用,支付宝付款
Access GPT-5, o4, Claude 4.5 & Gemini 3 via one API. The best OpenRouter alternative···
ChannelMonitor
开源
定时自动测试渠道模型,故障秒级标记,减少 API 报错
Channel Monitor 是一个用于监控OneAPI/NewAPI/OneHub渠道的工具,它直接读取channels和ab···
