mcp-gateway
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
Скриншоты
Панель управления — запущенные серверы, группы, активные сессии и живая лента событий:

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

Детальный вид сервера — сведения о рантайме и конечной точке, а также обозреватель инструментов для вызова инструментов прямо из 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-сервер с инструментами/промптами в пространстве имён и объединёнными ресурсами. Конечная точка |
API-ключ | Bearer-токен для |
Сессия | Один подключённый клиент (Streamable HTTP или SSE). Видна и может быть закрыта в GUI. |
Административный токен | Защищает GUI и |
Конфигурация — это один 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 > значения по умолчанию.
Эндпоинты
Маршрут | Назначение |
| Конечные точки Streamable HTTP MCP |
| устаревшие HTTP+SSE |
| проверка доступности (без аутентификации) |
| административный REST API (JSON; |
| лента 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.
Однопроцессный режим, сессии и логи в памяти (при перезапуске сессии теряются; клиенты повторно инициализируются).
Лицензия
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
- AlicenseNot gradedqualityDmaintenanceA 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.45202MIT
- FlicenseNot gradedqualityNot gradedmaintenanceAggregates 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
- FlicenseNot gradedqualityDmaintenanceA 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.
- AlicenseNot gradedqualityBmaintenanceAggregates multiple backend MCP servers into a single unified interface with optional web management UI for tool control and configuration.45192MIT
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.
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/shamalawy/mcp-gateway'
If you have feedback or need assistance with the MCP directory API, please join our Discord server