Skip to main content
Glama

MCPGate

Легковесный MCP-шлюз — объединяйте, фильтруйте и наблюдайте за своими MCP-инструментами.

MCPGate располагается между вашим MCP-клиентом (Claude Desktop, Claude Code, Cursor, VS Code) и несколькими MCP-серверами. Он предоставляет единую унифицированную точку доступа MCP, давая вам гранулярный контроль над тем, какие инструменты будут доступны.

Возможности

  • Агрегация инструментов — подключайте несколько MCP-серверов, предоставляя доступ ко всем инструментам через одну точку.

  • Фильтрация инструментов — разрешайте или блокируйте конкретные инструменты для каждого сервера через простой YAML-конфиг.

  • Префиксы инструментов — автоматическое создание пространств имен (github.create_issue) для предотвращения конфликтов.

  • Веб-панель — страница состояния в реальном времени с отображением серверов, инструментов и журналов запросов.

  • Двойной транспорт — Stdio (Claude Desktop) или HTTP/SSE (удаленные клиенты).

  • Журнал аудита — каждый вызов инструмента записывается с указанием времени; опциональное сохранение в PostgreSQL.

  • Self-hosted — развертывание на Railway, Docker или локальный запуск.

Related MCP server: MCPHub

Быстрый старт

Локально (stdio — для Claude Desktop)

npx mcp-gate start --config mcpgate.yaml

Добавьте в ваш claude_desktop_config.json:

{
  "mcpServers": {
    "mcpgate": {
      "command": "npx",
      "args": ["-y", "mcp-gate", "start", "--config", "/path/to/mcpgate.yaml"]
    }
  }
}

Локально (HTTP — с панелью мониторинга)

npx mcp-gate start --config mcpgate.yaml
# Dashboard at http://localhost:3000
# MCP endpoint at http://localhost:3000/mcp

Docker

docker compose up
# Dashboard at http://localhost:3000
# Includes PostgreSQL for persistent audit trail

Или автономно:

docker run -p 3000:3000 \
  -e MCPGATE_CONFIG=$(cat mcpgate.yaml | base64 -w 0) \
  -e GITHUB_TOKEN=$GITHUB_TOKEN \
  ghcr.io/mprezz/mcpgate

Railway

Deploy on Railway

Добавьте плагин PostgreSQL для постоянного журнала аудита — MCPGate автоматически обнаружит DATABASE_URL.

Конфигурация

Создайте файл mcpgate.yaml:

gateway:
  name: "my-gateway"
  transport: "stdio" # stdio | http | both
  port: 3000
  toolPrefix: true # prefix tools with server name

servers:
  - name: "github"
    transport: "stdio"
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_TOKEN: "${GITHUB_TOKEN}"
    tools:
      allow:
        - "create_issue"
        - "search_repos"

  - name: "filesystem"
    transport: "stdio"
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
    tools:
      block:
        - "write_file"
        - "delete_file"

logging:
  level: "info"

Полное описание см. в mcpgate.example.yaml.

Поддерживаемые вышестоящие (upstream) транспорты

  • stdio — MCPGate запускает вышестоящий процесс локально.

  • http — MCPGate подключается к удаленному MCP-серверу через Streamable HTTP.

Пример вышестоящего HTTP-сервера:

servers:
  - name: "remote-api"
    transport: "http"
    url: "https://remote-mcp.example.com/mcp"
    headers:
      Authorization: "Bearer ${REMOTE_MCP_TOKEN}"

Фильтрация инструментов

Каждый сервер поддерживает allow (разрешить) или block (заблокировать) (взаимоисключающие параметры):

  • allow — доступны только эти инструменты (белый список).

  • block — доступны все инструменты, КРОМЕ этих (черный список).

  • Ничего не указано — доступны все инструменты.

Аутентификация

Добавьте токен bearer для защиты HTTP-транспорта:

gateway:
  auth:
    token: "${MCPGATE_AUTH_TOKEN}"

Когда настроена аутентификация:

  • Все эндпоинты требуют заголовок Authorization: Bearer <token>.

  • /health остается публичным (для проверок работоспособности Railway/Docker).

  • MCP-клиенты передают токен через пользовательские заголовки в конфигурации транспорта.

Если аутентификация не настроена, все эндпоинты открыты (для локального/частного использования).

Интерполяция переменных окружения

Используйте ${VAR} или ${VAR:-default} в YAML для обращения к переменным окружения:

env:
  GITHUB_TOKEN: "${GITHUB_TOKEN}"
  API_URL: "${API_URL:-https://api.example.com}"

Панель мониторинга

При работе в режиме HTTP, MCPGate предоставляет веб-панель по корневому URL:

  • / — страница состояния с вышестоящими серверами, инструментами и журналами запросов.

  • /api/status — JSON API для программного доступа.

  • /health — эндпоинт проверки работоспособности (для Railway/Docker).

  • /mcp — эндпоинт протокола MCP (Streamable HTTP).

Хранилище

MCPGate записывает каждый вызов инструмента с указанием времени и информацией об ошибках.

  • По умолчанию — в оперативной памяти (настройка не требуется, данные теряются при перезапуске).

  • PostgreSQL — установите переменную окружения DATABASE_URL (таблицы создаются автоматически).

# Local development with Docker Compose
docker compose up postgres -d
export DATABASE_URL=postgresql://mcpgate:mcpgate@localhost:5432/mcpgate
npx mcp-gate start --config mcpgate.yaml

Переменные окружения

Переменная

Обязательно

По умолчанию

Описание

PORT

Нет

3000

HTTP-порт (Railway устанавливает автоматически)

MCPGATE_CONFIG

Нет

—

YAML-конфиг в формате Base64 (для Railway/Docker)

DATABASE_URL

Нет

—

Строка подключения к PostgreSQL (включает постоянный журнал аудита)

LOG_LEVEL

Нет

info

debug / info / warn / error

MCPGATE_AUTH_TOKEN

Нет

—

Токен Bearer для HTTP-аутентификации (ссылка в YAML через ${MCPGATE_AUTH_TOKEN})

Разработка

git clone https://github.com/mprezz/mcpgate.git
cd mcpgate
npm install

npm run dev          # development with hot reload
npm run build        # compile TypeScript
npm run test         # run tests (vitest)
npm run lint         # eslint
npm run typecheck    # tsc --noEmit

Архитектура

Client (Claude, Cursor)
    │
    ▼ stdio or HTTP/SSE
┌──────────────────────────────┐
│         MCPGate              │
│                              │
│  ┌─────────────────────┐     │
│  │   Tool Registry     │     │  ← filters + namespaces tools
│  └─────────────────────┘     │
│  ┌─────────────────────┐     │
│  │   Tool Router       │     │  ← routes calls to correct server
│  └─────────────────────┘     │
│  ┌─────────────────────┐     │
│  │  Upstream Manager   │     │  ← manages server connections
│  └─────────────────────┘     │
│  ┌─────────────────────┐     │
│  │   Storage           │     │  ← memory or PostgreSQL
│  └─────────────────────┘     │
└──────────────────────────────┘
    │           │           │
    ▼           ▼           ▼
 Server A    Server B    Server C
 (GitHub)  (Filesystem)  (Custom)

Лицензия

Apache 2.0 — см. LICENSE

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    A powerful gateway for the Model Context Protocol (MCP) that unifies AI toolchains by federating multiple MCP servers, wrapping REST APIs as MCP tools, and supporting multiple transport methods with an admin dashboard.
    1
    -
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    A unified gateway and dashboard that aggregates multiple MCP servers into a single endpoint for streamlined management by AI clients. It features a centralized YAML configuration, a web-based monitoring dashboard, and hot-reload support for managing filesystem, GitHub, and database tools.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A centralized management platform that aggregates multiple Model Context Protocol (MCP) servers into a single unified endpoint for AI agents. It provides a web interface for hot-swappable tool management, proxying of existing servers, and AI-powered generation of custom MCP plugins.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A unified gateway and web dashboard that aggregates multiple MCP servers into a single Streamable HTTP endpoint. It supports stdio, SSE, and HTTP protocols, featuring optimized tool exposure modes to reduce token consumption for AI clients.
    5
    MIT