MCP Gateway: как GraphQL-шлюз убирает раздувание промпта при десятках MCP-серверов
Anthropic
OpenAI
С ростом числа MCP-серверов описания инструментов съедают десятки тысяч токенов до первого запроса пользователя. Предлагается решение: поставить GraphQL-шлюз, который агрегирует серверы и выдаёт клиенту один виртуальный MCP, экономя токены на stage discovery и уменьшая число сетевых раундов.
Разработчик Илья Гуляев исследует проблему масштабирования при использовании Model Context Protocol (MCP). Когда в инфраструктуре появляется несколько MCP-серверов, каждый инструмент со своим описанием и JSON-схемой аргументов попадает в системный промпт LLM. На тестовом стенде с несколькими серверами и примерно шестьюдесятью инструментами описания занимают около 30 тысяч токенов ещё до того, как пользователь задал вопрос. Чтобы решить эту проблему, он реализовал открытый проект vmcp — GraphQL-шлюз, который стоит перед парком MCP-серверов и выглядит как один виртуальный MCP. Шлюз реализует два паттерна: Discovery (подгрузка каталога по запросу) и Execute (пакетный вызов нескольких инструментов за один раунд). GraphQL выбран из-за встроенной агрегации, валидации, композиции и кэширования. Инструменты с readOnlyHint попадают под Query (параллельный fan-out), остальные — под Mutation (последовательное исполнение). Клиенту не нужно подгружать весь каталог — только необходимый срез схемы, что экономит десятки тысяч токенов на каждом запросе. Эксперимент показал, что при добавлении правила «BATCH EVERYTHING» в системный промпт доля single-shot вызовов достигает 85%, а среднее количество вызовов снижается до 1,23.
- Сокращения
- MCP = Model Context Protocol — протокол контекста модели
- JSON-RPC = JSON Remote Procedure Call — удалённый вызов процедур в формате JSON
- LLM = Large Language Model — большая языковая модель
- API = Application Programming Interface — интерфейс прикладного программирования
- SDK = Software Development Kit — комплект разработчика программного обеспечения
- JWT = JSON Web Token — JSON-веб-токен
- GraphQL = Graph Query Language — язык запросов к графам
Источник: Habr — хаб ИИ —
оригинал
