MCP Gateway
MCP Gateway — MCP 智能体网关
统一接入并管理多个 MCP Server 的企业级工具网关:上层 LLM Agent 只对接网关一个入口,即可调用背后任意多个 MCP Server 提供的工具,全程覆盖鉴权、限流、日志、指标。
架构
┌─────────────────────────────┐
│ LLM Agent / 应用 │
│ (LangChain / OpenAI 等) │
└──────────────┬──────────────┘
│ 统一 REST API
┌──────────────▼──────────────┐
│ MCP Gateway (FastAPI) │
│ ┌────────────────────────┐ │
│ │ 鉴权 (API Key) │ │
│ │ 限流 (令牌桶) │ │
│ │ 日志 / 指标 (横切层) │ │
│ └───────────┬────────────┘ │
│ ┌───────────▼────────────┐ │
│ │ 工具注册中心 registry │ │
│ │ (聚合所有 server 工具) │ │
│ └───────────┬────────────┘ │
│ ┌───────────▼────────────┐ │
│ │ MCP 客户端 (多传输) │ │
│ └────────────────────────┘ │
└───────┬───────────┬───────────┘
stdio ──┤ ├── Streamable HTTP / SSE
┌──────────────▼──┐ ┌────▼───────────────┐
│ MCP Server #1 │ │ MCP Server #2 ... │
│ (demo_sql_server)│ │ (数据库/内部API等) │
└─────────────────┘ └─────────────────────┘Related MCP server: Peta Core
技术栈
Python 3.12 · FastAPI · MCP 官方 SDK(stdio / SSE / Streamable HTTP)· pydantic-settings + YAML · structlog · Prometheus · SQLite(接口层抽象,可换 PostgreSQL)· pytest · Docker · GitHub Actions · uv
快速开始
uv sync # 安装依赖(自动准备 Python 3.12)
uv run uvicorn app.main:app --reload # 启动开发服务器
uv run pytest # 运行测试
uv run ruff check . # lint
docker compose up --build # 一键启动启动后访问:
GET /health— 健康检查GET /metrics— Prometheus 指标(含工具调用次数/耗时:mcp_gateway_tool_calls_total、mcp_gateway_tool_call_duration_seconds)GET /docs— OpenAPI 交互文档
调用示例(演示 Key 见 config/gateway.yaml 的 auth 节):
curl -H "X-API-Key: dev-key-please-change" http://localhost:8000/tools
curl -X POST http://localhost:8000/tools/demo_sql__ask/call \
-H "X-API-Key: dev-key-please-change" -H "Content-Type: application/json" \
-d '{"arguments": {"question": "有多少客户?"}}'demo_sql_server 内置迷你电商库(customers / products / orders),提供 4 个工具:
ask(中文提问 → 自动生成并执行只读 SQL)、run_sql(直接执行只读 SQL)、
list_tables(表结构)、echo(链路调试)。NL2SQL 为规则模板引擎,
离线零依赖,接口与 LLM 实现解耦,可平滑替换。
配置
config/gateway.yaml(优先级:代码默认值 < YAML < 环境变量 GATEWAY_*):
gateway:
port: 8000
log_level: INFO
auth: # API Key 鉴权(SQLite 存储,启动种子写入)
db_path: data/gateway.db
api_keys:
- { key: dev-key-please-change, name: demo, rate_limit_per_minute: 60 }
servers: # MCP Server 声明式接入,无需改代码
- name: demo_sql
transport: stdio # stdio / sse / http
command: python
args: ["servers/demo_sql_server/server.py"]Docker Compose 使用 config/gateway.docker.yaml:demo_sql 以独立容器跑
Streamable HTTP,网关经 http://demo_sql:9001/mcp 连接。
项目结构
app/
├── main.py # FastAPI 入口
├── config.py # 配置中心(pydantic-settings + YAML)
├── core/ # 横切层:security / rate_limit / logging / metrics
├── mcp/ # 协议层:registry / client / transports / schemas
├── api/ # 接口层:deps.py + routes/
└── schemas/ # Pydantic 模型
servers/demo_sql_server/ # 示例 MCP Server(自然语言→SQL,阶段 2/4)
examples/ # LLM Agent 调用示例(阶段 5)
tests/ # 单元测试开发路线图
阶段 1:工程骨架 + CI(/health、/metrics、配置中心、结构化日志)
阶段 2:协议层打通(stdio/SSE/HTTP 三传输客户端 + 工具注册中心 + demo server)
阶段 3:统一 API(GET /tools、POST /tools/{name}/call)+ API Key 鉴权 + 令牌桶限流
阶段 4:工具调用指标 + demo_sql_server 升级 NL2SQL + docker-compose 双容器(公网部署与演示录屏待补)
阶段 5:Agent 调用示例 + 开源推广
企业级拓展路径
多租户 + RBAC · 模型路由(类比 One-API)· 审计合规 · K8s 自动扩缩容 · OpenTelemetry 链路追踪 · 熔断降级 / 缓存
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA production-ready unified entry point for AI agents that implements the Model Context Protocol (MCP). It provides a secure gateway with rate limiting, authentication, and observability for managing and proxying requests to multiple downstream APIs.MIT
- Flicense-qualityBmaintenanceSingle gateway that aggregates dozens of upstream MCP servers, enabling AI clients to connect once and access all tools.
- Alicense-qualityDmaintenanceA unified MCP gateway that aggregates multiple MCP servers and API plugins behind a single endpoint with authentication, rate limiting, audit logging, REST API bridge, and web dashboard.8MIT
Related MCP Connectors
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NightR71/mcp_gateway_demo_nightr71'
If you have feedback or need assistance with the MCP directory API, please join our Discord server