MCP Gateway
MCP Gateway
Прокси-сервер с отложенной загрузкой, который находится между Claude и вашими MCP-серверами. Вместо загрузки каждого сервера при запуске (что приводит к сбросу сотен схем инструментов в контекст и расходу токенов), шлюз предоставляет всего 4 легковесных инструмента. Серверы запускаются только тогда, когда они вам действительно нужны.
До: 10 MCP-серверов = 200+ схем инструментов, загружаемых в каждый диалог = тысячи потраченных впустую токенов.
После: 10 MCP-серверов за шлюзом = 4 загруженные схемы инструментов. Каждый сервер запускается по требованию.
Проблема
Каждый MCP-сервер, который вы добавляете в Claude Code, регистрирует все свои инструменты заранее. Типичный сервер имеет 10-30 инструментов, каждый с полной JSON-схемой. С 10 серверами это 100-300 определений инструментов, которые съедают ваше окно контекста еще до того, как вы зададите вопрос.
Большинство диалогов используют только 1-2 сервера. Остальные — это мертвый груз.
Как это работает
Шлюз предоставляет Claude 4 инструмента:
Инструмент | Что он делает |
| Показывает доступные серверы и их статус |
| Подключается к серверу и обнаруживает его инструменты |
| Вызывает инструмент на подключенном сервере |
| Переподключает сервер (подхватывает изменения в коде) |
Когда Claude нужен сервер, он вызывает gateway_load_server. Шлюз запускает подпроцесс, выполняет рукопожатие MCP и кэширует соединение. Последующие вызовы повторно используют запущенный процесс.
Серверы, которые не используются, никогда не запускаются. Токены не тратятся.
Быстрый старт
git clone https://github.com/raiansar/mcp-gateway.git
cd mcp-gateway
./install.shОтредактируйте config.json, чтобы добавить свои серверы, а затем добавьте шлюз в Claude Code:
claude mcp add gateway -- /path/to/mcp-gateway/run.shВот и все. Все ваши серверы теперь находятся за одним шлюзом.
Конфигурация
config.json — это простая карта имен серверов и деталей их подключения. Шлюз поддерживает транспорты stdio (локальные процессы) и HTTP (удаленные серверы).
Stdio-серверы (локальные)
{
"servers": {
"my-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "some-mcp-server@latest"],
"env": {
"API_KEY": "your-key"
},
"timeout": 30,
"description": "What this server does"
}
}
}HTTP-серверы (удаленные)
{
"servers": {
"remote-server": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "Bearer your-token"
},
"timeout": 60,
"description": "Remote MCP server"
}
}
}Python-серверы (uv)
{
"servers": {
"my-python-server": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/path/to/server", "server-name"],
"env": {},
"timeout": 120,
"description": "Python server managed by uv"
}
}
}Поля конфигурации
Поле | Обязательно | По умолчанию | Описание |
| Нет |
| Транспорт: |
| Да (stdio) | - | Команда для запуска сервера |
| Нет |
| Аргументы команды |
| Нет |
| Переменные окружения |
| Да (http) | - | URL сервера |
| Нет |
| HTTP-заголовки (токены авторизации и т.д.) |
| Нет | 30/60 | Тайм-аут запроса в секундах (30 для stdio, 60 для http) |
| Нет | - | Человекочитаемое описание, отображаемое в |
Миграция существующих MCP-серверов
Если у вас уже настроены MCP-серверы в Claude Code, перенесите их на шлюз:
До (в ~/.claude.json или конфигурации Claude Desktop):
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx" }
},
"tavily": {
"command": "npx",
"args": ["-y", "tavily-mcp@latest"],
"env": { "TAVILY_API_KEY": "tvly-xxx" }
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"],
"env": {}
}
}
}После (в config.json):
{
"servers": {
"github": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx" },
"description": "GitHub - repos, issues, PRs, code search"
},
"tavily": {
"type": "stdio",
"command": "npx",
"args": ["-y", "tavily-mcp@latest"],
"env": { "TAVILY_API_KEY": "tvly-xxx" },
"description": "Tavily AI search"
},
"filesystem": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"],
"env": {},
"description": "File system access"
}
}
}Затем удалите отдельные серверы из Claude и добавьте только шлюз:
claude mcp remove github -s user
claude mcp remove tavily -s user
claude mcp remove filesystem -s user
claude mcp add gateway -- /path/to/mcp-gateway/run.shИспользование
После настройки Claude автоматически использует шлюз. Типичное взаимодействие:
Claude вызывает
gateway_list_servers, чтобы увидеть, что доступноClaude вызывает
gateway_load_server("github"), когда ему нужен GitHubClaude вызывает
gateway_call_tool("github", "search_repositories", '{"query": "mcp"}')для использования инструментаСервер GitHub остается запущенным для последующих вызовов в рамках той же сессии
Поле description в вашей конфигурации помогает Claude решить, какой сервер загрузить для конкретной задачи, поэтому пишите хорошие описания.
Чем это отличается от RTK
RTK — это CLI-прокси, который сжимает вывод команд оболочки (git, ls, тестовые раннеры и т.д.), чтобы сократить потребление токенов на 60-90%.
MCP Gateway решает другую проблему: он предотвращает раздувание схемы MCP-инструментов за счет отложенной загрузки серверов по требованию вместо предварительной регистрации всех инструментов.
MCP Gateway | RTK | |
Проблема | Схемы инструментов от простаивающих MCP-серверов тратят контекст | Многословный вывод CLI тратит контекст |
Как | Отложенно загружает серверы, предоставляет 4 прокси-инструмента | Сжимает вывод команд перед тем, как он попадет в контекст |
Когда | Запуск / регистрация инструментов | Время выполнения / выполнение команды |
Область | Управление MCP-серверами | Команды оболочки (git, npm, cargo и т.д.) |
Они дополняют друг друга. Используйте оба для максимальной экономии токенов.
Требования
Python 3.10+
Пакет
mcp(устанавливается черезinstall.sh)
Лицензия
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/RaiAnsar/mcp-gateway'
If you have feedback or need assistance with the MCP directory API, please join our Discord server