惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
P
Proofpoint News Feed
D
DataBreaches.Net
C
Check Point Blog
L
LangChain Blog
量子位
美团技术团队
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
N
Netflix TechBlog - Medium
V
Visual Studio Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
腾讯CDC
M
MIT News - Artificial intelligence
Microsoft Azure Blog
Microsoft Azure Blog
Blog — PlanetScale
Blog — PlanetScale

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
MCP-агрегатор: объединяем инструменты для LLM в один сервер
Александр Казанцев · 2026-05-24 · via Все публикации подряд на Хабре

4 мин

13K

При работе с локальными 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"]
    }
  }
}

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

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

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

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

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

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

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

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

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

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

{
  "mcpServers": {
    "aggregator": {
      "command": "mcp-aggregator",
      "args": ["--config", "~/.config/mcp/MCP.json"]
    }
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

DEBUG=1 node src/index.js --config MCP.json

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

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

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

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

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

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

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

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

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

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

Результаты

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

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

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

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

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