Skip to main content
Glama
NightR71

MCP Gateway

by NightR71

MCP Gateway — MCP Agent Gateway

Unified enterprise tool gateway for integrating and managing multiple MCP Servers: The upper-layer LLM Agent only needs to connect to a single gateway entry point to invoke tools provided by any number of MCP Servers behind it, with full coverage of authentication, rate limiting, logging, and metrics.

Architecture

                        ┌─────────────────────────────┐
                        │        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

Tech Stack

Python 3.12 · FastAPI · MCP Official SDK(stdio / SSE / Streamable HTTP)· pydantic-settings + YAML · structlog · Prometheus · SQLite(interface layer abstracted, replaceable with PostgreSQL)· pytest · Docker · GitHub Actions · uv

Quick Start

uv sync                                   # 安装依赖(自动准备 Python 3.12)
uv run uvicorn app.main:app --reload      # 启动开发服务器

uv run pytest                             # 运行测试
uv run ruff check .                       # lint

docker compose up --build                 # 一键启动

After startup, access:

  • GET /health — Health check

  • GET /metrics — Prometheus metrics (includes tool call count/duration: mcp_gateway_tool_calls_total, mcp_gateway_tool_call_duration_seconds)

  • GET /docs — OpenAPI interactive documentation

Call example (demo key can be found in the auth section of config/gateway.yaml):

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 comes with a built-in mini e-commerce database (customers / products / orders), providing 4 tools: ask (Chinese question → automatically generate and execute read-only SQL), run_sql (directly execute read-only SQL), list_tables (table structure), echo (link debugging). NL2SQL is a rule-based template engine, offline with zero dependencies, interfaces decoupled from LLM implementation, smoothly replaceable.

Configuration

config/gateway.yaml (priority: code defaults < YAML < environment variable 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 uses config/gateway.docker.yaml: demo_sql runs as a standalone container with Streamable HTTP, the gateway connects via http://demo_sql:9001/mcp.

Project Structure

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/                    # 单元测试

Development Roadmap

  • Phase 1: Engineering skeleton + CI(/health, /metrics, configuration center, structured logging)

  • Phase 2: Protocol layer integration(stdio/SSE/HTTP three transport clients + tool registry + demo server)

  • Phase 3: Unified API(GET /tools, POST /tools/{{name}}/call)+ API Key authentication + Token bucket rate limiting

  • Phase 4: Tool call metrics + demo_sql_server upgrade NL2SQL + docker-compose dual containers(public deployment and demo video pending)

  • Phase 5: Agent call examples + open source promotion

Enterprise Extension Path

Multi-tenant + RBAC · Model routing (similar to One-API) · Audit compliance · K8s auto-scaling · OpenTelemetry tracing · Circuit breaking / caching

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    D
    maintenance
    A 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
  • F
    license
    -
    quality
    A
    maintenance
    A production-ready MCP gateway and control plane that provides credential vault, policy engine, audit logging, and managed runtime for routing tool calls between AI agents and downstream MCP servers.
    57

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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