Закажи экспресс-аудит своего дела онлайн всего за 199 ₽
и получи рекомендации по улучшению - Жми сюда !

MCP-агрегатор: объединяем инструменты для LLM в один сервер

При работе с локальными LLM через Claude Desktop, Kilo Code, Cursor или другие MCP-клиенты часто возникает одна и та же ситуация: Нужен filesystem для работы с файлами,web-search для поиска в интернете,memory для хранения контекста между сессиями, sequential-thinking для сложных рассуждений. И ещё десяток серверов…

Каждый MCP-сервер — это отдельный процесс, отдельная конфигурация, отдельная точка отказа. Файл конфигурации MCP обрастает десятками записей, а управление этим стадом серверов превращается в еще одну проблему. Где лежит файл конфигурации MCP для конкретного агентского приложения — лучше было бы выбирать самому, например, держать его прямо в папке проекта. Кроме того, имя mcp-сервера, в принципе не так важно для LLM как имена и описание инструментов в нем, так что одного, но полного списка инструментов (функций) было бы достаточно.

Что если бы можно было запустить один сервер, который автоматически подтягивал бы все остальные?

Решение: MCP Aggregator🔌

который:

✅ Читает единый MCP.json с конфигурацией всех серверов
✅ Автоматически запускает их как дочерние процессы
✅ Проксирует все инструменты через единый интерфейс
✅ Управляет жизненным циклом (автоперезапуск при падении)
✅ Работает с любым MCP-клиентом

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

Агрегатор работает как MCP-клиент для дочерних серверов и как MCP-сервер для приложения. Он:

  1. Парсит MCP.json и находит все сконфигурированные серверы

  2. Запускает каждый через StdioClientTransport

  3. Запрашивает capabilities (tools/list, resources/list, prompts/list)

  4. Регистрирует их под своими именами с префиксами

  5. Проксирует вызовы инструментов к нужному серверу

Пространство имён инструментов

Чтобы избежать конфликтов имён, все инструменты получают префикс сервера:

Сервер

Оригинал

Через агрегатор

filesystem

read_file

filesystem-read_file

web-search

search

web-search-search

memory

create_entities

memory-create_entities

sequential-thinking

sequentialthinking

sequential-thinking-sequentialthinking

Это позволяет LLM явно понимать, какой инструмент какого сервера вызывается.

Конфигурация

Всё управление — через один файл MCP.json:

{ «mcpServers»: { «filesystem»: { «command»: «npx», «args»: [«-y», «@modelcontextprotocol/server-filesystem», «~/projects/data/»] }, «web-search»: { «command»: «node», «args»: [«~/mcp/web-search/dist/index.js»] }, «memory»: { «command»: «npx», «args»: [«-y», «@modelcontextprotocol/server-memory»], «env»: { «MEMORY_FILE_PATH»: «~/.mcp/memory.jsonl» } }, «sequential-thinking»: { «command»: «npx», «args»: [«-y», «@modelcontextprotocol/server-sequential-thinking»] }, «context7»: { «command»: «npx», «args»: [«-y», «@upstash/context7-mcp»] } } } e3b60a47239944c01a0cba012c761955

Формат полностью совместим с конфигурацией популярных MCP-клиентов — можно скопировать секцию mcpServers из файла конфигурации вашего клиента.

Установка и использование

Вариант 1: Через npx (быстрый старт)

# Создайте MCP.json с вашими серверами npx @vugu/mcp-aggregator —config MCP.json 37a04580b8269b3c6594fce280fee91f

Вариант 2: Глобальная установка

npm install -g @vugu/mcp-aggregator mcp-aggregator —config MCP.json 2392fa372fe65227fffb4c8452136e38

Вариант 3: Из исходников

git clone https://github.com/vuguzum/mcp-aggregator.git cd mcp-aggregator npm install node src/index.js —config MCP.json b49f49f508d97f84e73c4f9072f6c819

Подключение к MCP-клиенту (на примере Claude Desktop)

Добавьте в конфигурационный файл вашего клиента (например, claude_desktop_config.json для Claude Desktop):

{ «mcpServers»: { «aggregator»: { «command»: «mcp-aggregator», «args»: [«—config», «~/.config/mcp/MCP.json»] } } } f616288d36891b923477463c477d35be

Теперь вместо 10 отдельных записей остаётся одна — aggregator. Все инструменты из всех дочерних серверов автоматически становятся доступны в Claude Desktop.

Ключевые фичи

🔄 Автоперезапуск

Если дочерний сервер падает, агрегатор автоматически перезапускает его с экспоненциальным backoff (до 5 попыток). Это критично для долгоживущих сессий.

🛡️ Устойчивость к ошибкам

Если один сервер не запустился (например, не установлен Python для file-search-mcp), остальные продолжают работать. Агрегатор просто пропускает проблемный сервер и логирует ошибку.

📊 Полный проксинг

Проксируются не только инструменты, но и:

  • Resources — чтение ресурсов из дочерних серверов

  • Prompts — шаблоны промптов

  • Capabilities — автоматическое обнаружение возможностей

🔍 Отладочный режим

Запуск с DEBUG=1 даёт подробные логи:

DEBUG=1 node src/index.js —config MCP.json 99a42f4c5411e8ccc08e047663ae415b

Все логи идут в stderr (stdout зарезервирован для MCP-протокола).

Производительность

Агрегатор добавляет минимальный overhead:

  • Задержка проксирования: <1ms (прямая передача JSON-RPC сообщений)

  • Потребление памяти: несколько мегабайт на сам агрегатор

  • Запуск дочерних серверов: параллельный

Когда это полезно?

Много MCP-серверов — упрощает конфигурацию
Частые эксперименты — легко добавлять/убирать серверы
Production-окружение — автоперезапуск и устойчивость
Командная работа — единый MCP.json в репозитории
CI/CD — один сервер вместо десяти

Когда НЕ нужно?

❌ Всего 1-2 MCP-сервера — проще настроить напрямую
❌ Если максимальная производительность, то прямой вызов всегда быстрее
❌ Специфичная логика обработки ошибок для каждого сервера

Результаты

MCP-агрегатор решает проблему управления множеством MCP-серверов. Вместо ручного запуска десятка процессов и сложной конфигурации — один сервер, один конфиг, одна точка входа.

Попробовать:

  • 📦 npm: npm install @vugu/mcp-aggregator

  • 💻 GitHub: github.com/vuguzum/mcp-aggregator

  • 📖 Документация: README на двух языках

Источник: habr.com

✅ Найденные теги: LLM, MCP, MCP-агрегатор:, Агрегатор, Инструменты, новости, Объединяем

Добавить комментарий

Новости других рубрик

Архив рубрики ~Лента новостей~: Я попробовала носимое устройство в виде пчелы от Amazon, и оно меня одновременно заинтриговало и немного напугало. Архив рубрики ~Лента новостей~: Инструмент Paper Assistant, разработанный при поддержке Gemini, обеспечивает автоматизированную обратную связь для специалистов в области теоретической информатики на конференции STOC 2026. Архив рубрики ~Лента новостей~: Следуйте за деньгами: методы лечения аутоиммунных и воспалительных заболеваний, конъюгаты антител с лекарственными препаратами, программы создания селективных ингибиторов AKT1. Архив рубрики ~Лента новостей~: Сделка Nvidia по H200 с Китаем: что случилось после саммита Трампа и Си Цзиньпина? Архив рубрики ~Лента новостей~: Рост цен на смартфоны: как дефицит чипов привел к развитию искусственного интеллекта Архив рубрики ~Лента новостей~: API управляемых агентов Google обещает развертывание одним вызовом за счет потери контроля на уровне выполнения. Архив рубрики ~Лента новостей~: Реакционная лженаука. Как СССР осудил кибернетику — и чем это аукнулось для ИИ Архив рубрики ~Лента новостей~: ИИ, похоже, загоняет некоторых соискателей в ловушку в подвешенном состоянии, где они никогда не проходят собеседование по «совершенно несправедливым причинам»