MCPGate
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/mcpDocker
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/mcpgateRailway
Добавьте плагин 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Переменные окружения
Переменная | Обязательно | По умолчанию | Описание |
| Нет |
| HTTP-порт (Railway устанавливает автоматически) |
| Нет | — | YAML-конфиг в формате Base64 (для Railway/Docker) |
| Нет | — | Строка подключения к PostgreSQL (включает постоянный журнал аудита) |
| Нет |
|
|
| Нет | — | Токен Bearer для HTTP-аутентификации (ссылка в YAML через |
Разработка
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
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
- FlicenseCqualityDmaintenanceA 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
- AlicenseNot gradedqualityNot gradedmaintenanceA 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.
- FlicenseNot gradedqualityDmaintenanceA 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
- AlicenseNot gradedqualityCmaintenanceA 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.5MIT
Related MCP Connectors
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
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/martin-santiago/mcpgate'
If you have feedback or need assistance with the MCP directory API, please join our Discord server