Skip to main content
Glama

MCP Gateway

Самостоятельно размещаемая плоскость управления для серверов Model Context Protocol. Определяйте все используемые MCP-серверы в одном месте, управляйте ими через веб-GUI и дайте вашим агентам единую конечную точку — для каждого сервера или для целой группы серверов с инструментами в пространстве имён.

 Claude Code · Claude Desktop · Cursor · VS Code · your agent
        │  Streamable HTTP  /mcp/servers/<id>   /mcp/groups/<id>      (+ API key)
        ▼
 ┌────────────────────── MCP Gateway ──────────────────────┐
 │  web GUI  ·  admin REST API  ·  sessions  ·  logs        │
 │  groups: namespaced tools  pg-analytics__execute_sql …   │
 │  upstream manager: start/stop, restart w/ backoff,       │
 │  health checks, idle stop, tool filters & renames        │
 └───────┬──────────────────┬──────────────────┬───────────┘
   stdio (npx/uvx/docker)   Streamable HTTP     legacy SSE
   Postgres, filesystem…    remote MCP servers  older servers

Сценарий. Агенту нужны две базы данных Postgres. Вы добавляете pg-analytics и pg-orders в GUI (из шаблона PostgreSQL (DBHub)), помещаете их в группу databases и указываете агенту на http://gateway:8808/mcp/groups/databases. Агент видит pg-analytics__execute_sql и pg-orders__execute_sql; шлюз берёт на себя процессы, учётные данные, перезапуски и логи. Полная рабочая версия находится в examples/postgres-scenario.

Возможности

  • Любой вышестоящий транспорт — stdio-процессы (npx, uvx, docker run и любые другие), Streamable HTTP и устаревшие SSE-удалённые серверы с аутентификацией bearer/basic/header.

  • Управление жизненным циклом — автоматический/ленивый запуск, остановка при простое, перезапуск с экспоненциальной задержкой и пределом, пинги проверки работоспособности, таймауты запуска/запроса/вызова инструментов, перехват stderr.

  • Группы — несколько серверов за одной конечной точкой; инструменты и промпты с пространствами имён (prefix__tool, . или -) либо сквозная передача с обработкой конфликтов; фильтры для каждого участника; объединённые инструкции; неявная группа all.

  • Политика инструментов — include/exclude glob-шаблоны, скрытие, переименование и изменение описаний инструментов для каждого сервера.

  • Полное проксирование MCP — инструменты, ресурсы (+шаблоны, подписки), промпты, автодополнения, логирование, прогресс, отмена, распространение list_changed, а также server→client семплирование / элиситацию / корни, направляемые обратно в исходную сессию.

  • Нижестоящие транспорты — Streamable HTTP (с сохранением состояния и возобновляемыми потоками или без состояния), устаревший SSE, а также mcp-gateway-connect — stdio-мост для таких клиентов, как Claude Desktop.

  • Безопасность — API-ключи (хешированные, ограниченные серверами/группами, с истечением срока действия), административный токен для GUI/API, скрытие секретов, интерполяция ${ENV}, чтобы секреты никогда не приходилось записывать в конфиг, защита от DNS-rebinding, разрешённый список CORS.

  • GUI — панель управления, каталог серверов с 16 шаблонами (Postgres ×3, MySQL, SQLite, filesystem, GitHub, Playwright, Context7, fetch, memory, …), редактор с вкладками и функцией Проверить подключение, обозреватель инструментов с Попробовать, обозреватели ресурсов/промптов, живые логи, метрики, сниппеты подключения для каждого клиента, сессии, настройки, импорт/экспорт (файлы mcpServers для Claude Desktop / Cursor / VS Code).

Related MCP server: Master MCP Server

Скриншоты

Панель управления — запущенные серверы, группы, активные сессии и живая лента событий:

Панель управления MCP Gateway

Каталог серверов: транспорт, статус, количество инструментов и перезапусков с первого взгляда:

Список серверов

Детальный вид сервера — сведения о рантайме и конечной точке, а также обозреватель инструментов для вызова инструментов прямо из GUI:

Детальный вид сервера и обозреватель инструментов

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

Требования: Node.js ≥ 20 (плюс npx/uvx/docker для тех вышестоящих серверов, которые вы запускаете).

git clone <this repo> mcp-gateway && cd mcp-gateway
npm install
npm run build
npm start                     # → http://127.0.0.1:8808

Затем в GUI: Серверы → Добавить сервер → PostgreSQL (DBHub) → вставьте DSN → Проверить подключениеСоздать сервер. Откройте вкладку Подключение и скопируйте сниппет для вашего клиента, например:

claude mcp add --transport http pg-analytics http://127.0.0.1:8808/mcp/servers/pg-analytics

Режим разработки (Vite с горячей перезагрузкой на :5173, шлюз на :8808): npm run dev.

Docker

docker compose up -d --build              # GUI on http://localhost:8808, data in ./data

Образ содержит node/npx, uvx и git, поэтому npm- и Python-based MCP-серверы можно запускать внутри контейнера. Если порт доступен другим, задайте GATEWAY_ADMIN_TOKEN в переменных окружения. Чтобы предварительно загрузить конфигурацию, смонтируйте файл и задайте GATEWAY_SEED_CONFIG=/path/to/config.json — при первом запуске он копируется в том данных.

Как это устроено

Концепция

Что это такое

Сервер

Определение одного вышестоящего MCP-сервера: транспорт, жизненный цикл, политика инструментов, параметры пересылки. Конечная точка /mcp/servers/<id>.

Группа

Упорядоченный набор серверов, представленный как один виртуальный MCP-сервер с инструментами/промптами в пространстве имён и объединёнными ресурсами. Конечная точка /mcp/groups/<id>. Неявная группа all содержит все включённые серверы.

API-ключ

Bearer-токен для /mcp/* (хранится в виде хеша, ограничен серверами/группами, опциональный срок действия). Обязателен, когда включён Требовать API-ключ.

Сессия

Один подключённый клиент (Streamable HTTP или SSE). Видна и может быть закрыта в GUI.

Административный токен

Защищает GUI и /api/*. Задаётся через GATEWAY_ADMIN_TOKEN или в настройках.

Конфигурация — это один JSON-файл (data/config.json, режим 0600, атомарная запись, сохраняется .bak) — описание всех полей см. в docs/CONFIG.md. Настройка клиентов для каждого инструмента описана в docs/CLIENTS.md; полное описание архитектуры — в docs/SPEC.md. В GUI также есть встроенная страница Документация (/docs, рядом с настройками), которая рассказывает, как работает шлюз и как добавлять, настраивать и подключать серверы.

CLI

mcp-gateway serve [--host 127.0.0.1] [--port 8808] [--data-dir ./data] [--config <file>] [--public-url <url>] [--log-level info]
mcp-gateway import <file> [--format gateway|mcpServers] [--mode merge|replace]    # into the config file (restart to apply)
mcp-gateway export [--format gateway|mcpServers] [--secrets] [--out <file>]
mcp-gateway hash-token <token>                                                     # sha256 for settings.auth.adminTokenHash
mcp-gateway connect <url> [--api-key K] [--header 'Name: v'] [--sse]              # stdio ⇄ HTTP bridge
mcp-gateway-connect <url> …                                                        # same bridge as a standalone package (@mcp-gateway/connect)

Переменные окружения: GATEWAY_HOST, GATEWAY_PORT, GATEWAY_DATA_DIR, GATEWAY_CONFIG, GATEWAY_ADMIN_TOKEN, GATEWAY_PUBLIC_URL, GATEWAY_LOG_LEVEL, GATEWAY_REQUIRE_API_KEY, GATEWAY_WEB_DIR, GATEWAY_SEED_CONFIG (Docker). Приоритет: флаги CLI > переменные окружения > config.json > значения по умолчанию.

Эндпоинты

Маршрут

Назначение

POST/GET/DELETE /mcp/servers/:id · /mcp/groups/:id

Конечные точки Streamable HTTP MCP

GET /mcp/servers/:id/sse + POST …/messages?sessionId= (так же для групп)

устаревшие HTTP+SSE

GET /api/health

проверка доступности (без аутентификации)

/api/servers, /api/groups, /api/keys, /api/sessions, /api/logs, /api/settings, /api/templates, /api/config/{export,import}, /api/connect/:kind/:id

административный REST API (JSON; Authorization: Bearer <admin token>, если задан)

GET /api/events

лента Server-Sent Events (статусы, логи, сессии, метрики), используемая GUI

/

веб-GUI

Полный список маршрутов с форматами запросов и ответов приведён в docs/SPEC.md §7.

Замечания по безопасности

  • Без административного токена GUI/API открыты: оставьте привязку к loopback по умолчанию или задайте GATEWAY_ADMIN_TOKEN.

  • Включите Требовать API-ключ перед тем, как открывать /mcp за пределами localhost; ограничьте ключи серверами/группами, которые нужны каждому агенту.

  • Секреты: предпочитайте ссылки ${VAR} литеральным значениям; значения под ключами, похожими на секреты, скрываются в ответах API и при экспорте (экспорт с ?secrets=1 / с секретами включает их).

  • Для всего, что доступно из интернета, ставьте перед шлюзом reverse proxy с терминацией TLS (это необходимо для MCP-коннектора Anthropic API).

  • Шлюз выполняет команды, которые вы настраиваете, — любой, у кого есть административный доступ, может запускать произвольные процессы на хосте.

Разработка

npm run dev          # gateway (tsx watch) + Vite dev server
npm run typecheck    # all workspaces
npm test             # vitest: shared unit tests, server integration tests (real stdio/HTTP fixtures), bridge tests
npm run build        # server bundle (esbuild), connect bundle, web (vite)

Структура: packages/shared (схема конфигурации на zod, DTO, шаблоны, вспомогательные функции именования — безопасно для браузера), packages/server (Express 5 + @modelcontextprotocol/sdk: менеджер вышестоящих серверов, прокси-сервер, сессии, REST/MCP-маршруты, CLI), packages/web (React 19 + Vite), packages/connect (stdio-мост), examples/postgres-scenario (демо на docker-compose).

Ограничения / планы развития

  • OAuth для вышестоящих серверов не реализован (используйте аутентификацию bearer/basic/header); OAuth для нижестоящих клиентов также не реализован (вместо него — API-ключи).

  • Ресурсы не имеют пространств имён в группах — URI направляются на сервер-владелец; одинаковые URI у разных участников разрешаются в пользу первого участника.

  • Нет ограничения частоты запросов; если оно нужно, ставьте перед шлюзом reverse proxy.

  • Однопроцессный режим, сессии и логи в памяти (при перезапуске сессии теряются; клиенты повторно инициализируются).

Лицензия

Apache License 2.0 — см. LICENSE и NOTICE.

A
license - permissive license
Not graded
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
    Not graded
    quality
    D
    maintenance
    A central hub that aggregates multiple MCP resource servers into a single unified interface, enabling users to access tools and capabilities from multiple backend servers through one connection point.
    45
    202
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Aggregates multiple MCP servers behind a single, secure endpoint with unified tool/resource discovery, OAuth authentication, and resilient request routing. Enables users to manage and interact with multiple MCP backends through one centralized interface with load balancing and circuit breakers.
    2
  • F
    license
    Not graded
    quality
    D
    maintenance
    A centralized gateway and router that integrates multiple MCP servers into a single endpoint with built-in policy enforcement and secret management. It features a Web GUI for managing tool access, audit logs, and multi-environment configurations across various sub-servers.

View all related MCP servers

Related MCP Connectors

  • 34 production API tools over one hosted MCP endpoint.

  • MCP Server for agents to onboard, pay, and provision services autonomously with InFlow

  • MCP server for AI access to Swagger by SmartBear.

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/shamalawy/mcp-gateway'

If you have feedback or need assistance with the MCP directory API, please join our Discord server