Skip to main content
Glama

MCP Gateway

Прокси-сервер с отложенной загрузкой, который находится между Claude и вашими MCP-серверами. Вместо загрузки каждого сервера при запуске (что приводит к сбросу сотен схем инструментов в контекст и расходу токенов), шлюз предоставляет всего 4 легковесных инструмента. Серверы запускаются только тогда, когда они вам действительно нужны.

До: 10 MCP-серверов = 200+ схем инструментов, загружаемых в каждый диалог = тысячи потраченных впустую токенов.

После: 10 MCP-серверов за шлюзом = 4 загруженные схемы инструментов. Каждый сервер запускается по требованию.

Проблема

Каждый MCP-сервер, который вы добавляете в Claude Code, регистрирует все свои инструменты заранее. Типичный сервер имеет 10-30 инструментов, каждый с полной JSON-схемой. С 10 серверами это 100-300 определений инструментов, которые съедают ваше окно контекста еще до того, как вы зададите вопрос.

Большинство диалогов используют только 1-2 сервера. Остальные — это мертвый груз.

Как это работает

Шлюз предоставляет Claude 4 инструмента:

Инструмент

Что он делает

gateway_list_servers

Показывает доступные серверы и их статус

gateway_load_server

Подключается к серверу и обнаруживает его инструменты

gateway_call_tool

Вызывает инструмент на подключенном сервере

gateway_reload_server

Переподключает сервер (подхватывает изменения в коде)

Когда 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"
    }
  }
}

Поля конфигурации

Поле

Обязательно

По умолчанию

Описание

type

Нет

stdio

Транспорт: stdio, http, sse или streamable-http

command

Да (stdio)

-

Команда для запуска сервера

args

Нет

[]

Аргументы команды

env

Нет

{}

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

url

Да (http)

-

URL сервера

headers

Нет

{}

HTTP-заголовки (токены авторизации и т.д.)

timeout

Нет

30/60

Тайм-аут запроса в секундах (30 для stdio, 60 для http)

description

Нет

-

Человекочитаемое описание, отображаемое в gateway_list_servers

Миграция существующих 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 автоматически использует шлюз. Типичное взаимодействие:

  1. Claude вызывает gateway_list_servers, чтобы увидеть, что доступно

  2. Claude вызывает gateway_load_server("github"), когда ему нужен GitHub

  3. Claude вызывает gateway_call_tool("github", "search_repositories", '{"query": "mcp"}') для использования инструмента

  4. Сервер 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

-
security - not tested
A
license - permissive license
-
quality - not tested

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