Skip to main content
Glama
thargy
by thargy

Universal MCP Gateway (mcp-gateway)

Высокопроизводительный мультитенантный сервис — обратный прокси и шлюз для Model Context Protocol (MCP), построенный на базе @thargy/mcp-server-core.


Зачем нужен mcp-gateway?

Большинство сторонних MCP-серверов (например, github-mcp-server, Brave Search, SQLite, PostgreSQL) созданы в первую очередь для локального запуска на рабочем столе через stdio. Когда такие серверы публикуются через HTTP или туннели Cloudflare Zero Trust, им часто не хватает следующих возможностей:

  1. Прогрев SSE-потока Cloudflare: немедленная отправка комментариев : heartbeat\n\n для обхода буферизации обратного прокси.

  2. Совместимость с современным рукопожатием MCP: поддержка subscriptions/listen, server/discover и диспетчеризации JSON-RPC без состояния.

  3. Управление жизненным циклом сессии: корректное отслеживание заголовка Mcp-Session-Id и аутентификация по токенам.

mcp-gateway выступает в роли единого мультитенантного адаптера между удалёнными MCP-клиентами (например, Antigravity IDE, Cloudflare Zero Trust, Cursor) и одним или несколькими вышестоящими сторонними MCP-бэкендами (контейнеры, HTTP API или stdio CLI-инструменты).


Related MCP server: Shared MCP Gateway

Архитектура

graph TD
    subgraph Clients ["MCP Clients"]
        AG["Antigravity IDE / Agents"]
        CFPortal["Cloudflare Zero Trust MCP Portal"]
    end

    subgraph Ingress ["Cloudflare Tunnel (mcp.thargy.com)"]
        Tunnel["cloudflared (HA Server)"]
    end

    subgraph Gateway ["mcp-gateway Container (:3007 -> :3008)"]
        App["@thargy/mcp-server-core Router"]
        GHRoute["/gh/mcp -> HttpProxyAdapter"]
        BraveRoute["/brave/mcp -> StdioProxyAdapter"]
    end

    subgraph Backends ["3rd-Party Backends"]
        GHContainer["github-mcp-backend (:8082)"]
        BraveCLI["@modelcontextprotocol/server-brave-search"]
    end

    Clients --> Ingress
    Ingress --> Gateway
    App --> GHRoute --> GHContainer
    App --> BraveRoute --> BraveCLI

Конфигурация (config.yaml)

port: 3008

routes:
  gh:
    type: http
    name: "github-mcp-server"
    description: "GitHub Model Context Protocol Server (repositories, commits, issues, PRs)"
    targetUrl: "http://github-mcp-backend:8082"
    authHeaderEnv: "GITHUB_PERSONAL_ACCESS_TOKEN"

  # brave:
  #   type: stdio
  #   name: "brave-search"
  #   description: "Brave Search MCP Server"
  #   command: "npx"
  #   args: ["-y", "@modelcontextprotocol/server-brave-search"]
  #   env:
  #     BRAVE_API_KEY: "${BRAVE_API_KEY}"

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Aggregates multiple shared MCP servers into a single HTTP gateway, providing a unified, observable, and reusable MCP access layer for multiple AI clients like Codex, OpenCode, and OpenClaw. It centralizes configuration management, logging, health checks, and circuit breaking to simplify multi-client MCP deployments.
    5
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A universal MCP server that acts as a unified gateway for dynamically connecting and managing multiple MCP servers via a single HTTP endpoint.
    5 npm
    6
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A universal MCP gateway that aggregates multiple MCP servers into a single endpoint, providing features like hot-reload, auto-healing, and a hook system for request/response mutation.
    1
    MIT