MCP Context Forge 是 IBM 开源的一个功能丰富的 FastAPI 驱动的模型上下文协议(MCP)网关,它统一和联合工具、资源、提示、服务器和对等网关,将任何 REST API 包装为符合 MCP 标准的工具或虚拟服务器。该项目支持通过 HTTP/JSON-RPC、WebSocket、服务器发送事件(SSE)和 stdio 传输协议公开所有功能,并提供丰富的交互式管理 UI,以容器形式打包,支持任何 SQLAlchemy 支持的数据库。
该项目采用模块化架构设计:
┌─────────────────┐ ┌──────────────────┐
│ 🖥️ Admin UI │ │ 🔐 认证授权 │
│ 管理界面 │ │ JWT + Basic │
└─────────────────┘ └──────────────────┘
│ │
└────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ 🚪 MCP 网关核心 │
│ 协议初始化 Ping 完成 │
│ 联邦管理器 │
│ 传输协议 HTTP WS SSE Stdio │
└─────────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ 服务层 │
│ 🧰 工具服务 📁 资源服务 │
│ 📝 提示服务 🧩 服务器服务 │
└─────────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ 持久化层 │
│ 💾 数据库 SQLAlchemy │
│ ⚡ 缓存 Redis/Memory │
└───────────────────────────────┘
/health
端点和延迟指标装饰器# 应用基础配置
APP_NAME=MCP Gateway
HOST=0.0.0.0
PORT=4444
DATABASE_URL=sqlite:///./mcp.db
APP_ROOT_PATH=/gateway # 可选的子路径前缀
# Basic 认证(管理界面和 API)
BASIC_AUTH_USER=admin
BASIC_AUTH_PASSWORD=changeme
# JWT 配置
JWT_SECRET_KEY=my-test-key
JWT_ALGORITHM=HS256
TOKEN_EXPIRY=10080 # 分钟
# 认证控制
AUTH_REQUIRED=true
AUTH_ENCRYPTION_SECRET=my-test-salt
# 联邦功能
FEDERATION_ENABLED=true
FEDERATION_DISCOVERY=false
FEDERATION_PEERS=["http://peer1:4444","http://peer2:4444"]
FEDERATION_TIMEOUT=30
FEDERATION_SYNC_INTERVAL=300
docker run -d --name mcpgateway \
-p 4444:4444 \
-e HOST=0.0.0.0 \
-e JWT_SECRET_KEY=my-secret-key \
-e BASIC_AUTH_USER=admin \
-e BASIC_AUTH_PASSWORD=changeme \
-e AUTH_REQUIRED=true \
-e DATABASE_URL=sqlite:///./mcp.db \
ghcr.io/ibm/mcp-context-forge:latest
# 创建虚拟环境并安装依赖
make venv install serve
# 或者手动安装
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
uvicorn mcpgateway.main:app --host 0.0.0.0 --port 4444
export MCPGATEWAY_BEARER_TOKEN=$(python3 -m mcpgateway.utils.create_jwt_token --username admin --exp 10080 --secret my-test-key)
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"protocol_version":"2025-03-26",
"capabilities":{},
"client_info":{"name":"MyClient","version":"1.0.0"}
}' \
http://localhost:4444/protocol/initialize
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"name":"clock_tool",
"url":"http://localhost:9000/rpc",
"description":"Returns current time",
"input_schema":{
"type":"object",
"properties":{"timezone":{"type":"string"}},
"required":[]
}
}' \
http://localhost:4444/tools
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"name":"greet",
"template":"Hello, {{ user }}!",
"argument_schema":{
"type":"object",
"properties":{"user":{"type":"string"}},
"required":["user"]
}
}' \
http://localhost:4444/prompts
项目提供了完整的 IBM Cloud Code Engine 部署支持:
IBMCLOUD_REGION=us-south
IBMCLOUD_RESOURCE_GROUP=default
IBMCLOUD_PROJECT=my-codeengine-project
IBMCLOUD_CODE_ENGINE_APP=mcpgateway
IBMCLOUD_IMAGE_NAME=us.icr.io/myspace/mcpgateway:latest
IBMCLOUD_API_KEY=your_api_key_here
make ibmcloud-check-env # 检查环境变量
make ibmcloud-cli-install # 安装 IBM Cloud CLI
make ibmcloud-login # 登录 IBM Cloud
make ibmcloud-ce-login # 选择 Code Engine 项目
make ibmcloud-tag # 标记容器镜像
make ibmcloud-push # 推送到 IBM Container Registry
make ibmcloud-deploy # 部署到 Code Engine
mcpgateway/
├── admin.py # FastAPI 路由和管理 UI 控制器
├── cache/
│ └── resource_cache.py # 资源的内存 LRU+TTL 缓存
├── config.py # Pydantic 设置加载器
├── db.py # SQLAlchemy ORM 模型和数据库设置
├── federation/
│ ├── discovery.py # 对等网关发现
│ ├── forward.py # RPC 转发逻辑
│ └── manager.py # 联邦协调和健康检查
├── handlers/
│ └── sampling.py # MCP 流式采样请求处理器
├── services/
│ ├── completion_service.py # 提示和资源参数完成逻辑
│ ├── gateway_service.py # 对等网关注册和管理
│ ├── prompt_service.py # 提示模板 CRUD 和渲染
│ ├── resource_service.py # 资源注册、检索、订阅
│ ├── server_service.py # 服务器注册和健康监控
│ └── tool_service.py # 工具注册、调用、指标
├── transports/
│ ├── sse_transport.py # 服务器发送事件传输
│ ├── stdio_transport.py # stdio 传输
│ └── websocket_transport.py # WebSocket 传输
└── utils/
├── create_jwt_token.py # JWT 生成和检查工具
└── verify_credentials.py # FastAPI 认证依赖
# 安装开发依赖
make install-dev
# 运行代码检查
make lint
# 运行测试
make test
# 运行覆盖率测试
make coverage
项目集成了多种代码质量工具:
MCP Context Forge 是一个功能完整、生产就绪的模型上下文协议网关解决方案,特别适合企业级 LLM 应用的工具集成和管理需求。它不仅实现了 MCP 协议的完整功能,还提供了丰富的扩展功能,如联邦发现、协议转换、虚拟化服务等,是构建复杂 AI 应用生态系统的理想基础设施组件。