MCP Hub
Менеджер MCP-серверов на Node.js: запускает локальные и подключает удаленные серверы и отдает их клиенту одним адресом с REST API для управления
- 524 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Запускает любые команды из конфигурации, в том числе по подстановке `${cmd: ...}`
- Держит токены и ключи всех серверов и передает им общую среду через `MCP_HUB_ENV`
- Через REST API вызывает инструменты любого подключенного сервера, а проверка доступа к самому хабу не описана
Установка
- Работает в
Ручная установка
npm install -g mcp-hubНужен Node.js 18 или новее. Запуск: `mcp-hub --port 3000 --config path/to/config.json`.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Запускает любые команды из конфигурации, в том числе по подстановке `${cmd: ...}`
- Держит токены и ключи всех серверов и передает им общую среду через `MCP_HUB_ENV`
- Через REST API вызывает инструменты любого подключенного сервера, а проверка доступа к самому хабу не описана
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
MCP Hub — программа на Node.js, которая стоит между клиентом и набором MCP-серверов. В файле конфигурации вы описываете серверы: локальные запускаются командой с аргументами и переменными среды (stdio), удаленные подключаются по адресу (потоковый HTTP или SSE) с заголовками или входом OAuth 2.0 с PKCE. Хаб держит соединения, следит за состоянием и переподключает упавшие серверы с задержкой. Клиенту достаточно одного адреса `/mcp` хаба. Через него доступны инструменты, ресурсы, шаблоны ресурсов и промпты всех серверов, а чтобы имена не пересекались, к ним добавляется префикс сервера, например `filesystem__search`. Когда сервер добавляют, выключают или он меняет список инструментов, хаб сразу сообщает об этом клиентам. Управление идет через REST API по адресам `/api/*`: список серверов, запуск, остановка, обновление возможностей, вызов инструмента, чтение ресурса, получение промпта и перезапуск хаба. События приходят клиентам по SSE. Отдельный раздел API показывает каталог серверов из реестра MCP Registry, из которого можно искать и ставить серверы.
Для кого. Для разработчиков, которые подключили к агентам десятки MCP-серверов и хотят держать конфигурацию в одном месте, а в каждом клиенте указывать один адрес.
Подходит, если
- Одни и те же MCP-серверы нужны сразу в Claude Desktop, Cline и редакторе, и дублировать их настройки в каждом клиенте не хочется
- Серверы надо включать и выключать по ходу работы, не перезапуская клиент
- Общие ключи и токены нужно доставать из менеджера паролей командой в конфигурации, а не хранить в файлах клиентов
- Для проекта нужен свой набор серверов поверх глобального: несколько файлов конфигурации объединяются по порядку
- Локальный сервер в разработке должен перезапускаться при изменении файлов
Не подходит, если
- Нужны корпоративные пользователи, роли и журнал доступа к серверам: для самого хаба такая проверка в документации не описана
- Работаете с одним-двумя серверами, и отдельный процесс только усложнит схему
- Клиенту нужны возможности roots, sampling или completion: хаб их не поддерживает
- Нужно размещаемое решение с интерфейсом и учетными записями: такую роль описывает карточка metamcp
- Node.js старше 18 версии: хаб требует не ниже восемнадцатой
Пример запроса к агенту
Покажи, какие серверы сейчас подключены к хабу, выключи сервер с базой данных и скажи, какие инструменты остались доступнымиMCP
- Транспорт
- http, sse, stdio
- Авторизация
- не нужна
Переменные окружения
MCP_HUB_ENVсекрет- JSON со значениями, которые хаб добавляет в среду каждого управляемого сервера
Ограничения
Хаб запускает любые команды из файла конфигурации, а подстановка `${cmd: команда}` выполняет их при чтении настроек, поэтому конфигурации из чужих источников подключать нельзя. Лицензия MIT.
Переменная `MCP_HUB_ENV` с JSON передает свои значения в среду каждого управляемого сервера, и значения из блока `env` сервера ее перекрывают. Все управляемые серверы получают права, с которыми запущен сам хаб.
Веб-интерфейс только запланирован и не отмечен как готовый: управление идет через REST API. Для хаба в документации не описаны ни ключ доступа, ни привязка к адресу, поэтому порт, заданный флагом `--port`, лучше держать на локальном компьютере. В примерах встречаются порты 3000 и 37373, поэтому порт клиента сверьте с запущенным.
Журнал пишется в `~/.local/state/mcp-hub/logs/mcp-hub.log`. Каталог серверов берется из реестра на GitHub Pages и кэшируется на час. Отсутствующие файлы конфигурации молча пропускаются.
Как отключить. Остановите процесс `mcp-hub` и удалите адрес хаба из настроек клиентов. Пакет удаляется командой `npm uninstall -g mcp-hub`. Файл конфигурации и каталог `~/.local/state/mcp-hub` с журналом и кэшем рабочих каталогов удалите вручную.
Частые вопросы
Как установить и запустить хаб?
Выполните `npm install -g mcp-hub`, затем `mcp-hub --port 3000 --config path/to/config.json`. Флаги `--port` и `--config` обязательны, `--config` можно повторять: файлы объединяются по порядку, а поздние перекрывают ранние.
Что указывать в клиенте?
Один сервер с адресом `/mcp` хаба, например `http://localhost:37373/mcp` в примере из документации. Порт возьмите тот, который передали флагом `--port`.
Как избежать пересечения имен инструментов?
Хаб добавляет к имени префикс сервера, поэтому `search` из файлового сервера и из сервера баз данных остаются разными инструментами, например `filesystem__search` и `database__search`.
Работает ли хаб с конфигурацией из VS Code?
Да. Поддерживаются ключи `mcpServers` и `servers`, переменные `${env:NAME}`, `${workspaceFolder}`, `${userHome}` и `${input:id}`, а значения для последних берутся из `MCP_HUB_ENV`. Файл `.vscode/mcp.json` можно передать флагом `--config`.
Как перезапускать локальный сервер при правке кода?
Добавьте серверу блок `dev` с массивом `watch` из масок файлов и обязательным абсолютным путем `cwd`. Хаб следит за этими файлами и перезапускает сервер при изменении.
Как проверить, что хаб жив?
Запрос `GET /api/health` возвращает состояние хаба, версию, число активных клиентов, список серверов с их возможностями и сведения о рабочих каталогах.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыСамостоятельно размещаемый шлюз, который собирает несколько MCP-серверов в один эндпоинт с авторизацией и выбором инструментов
MCP SSH Manager
mcp-ssh-manager
Управление несколькими SSH-подключениями из Claude Code и Codex: команды, перенос файлов, базы данных и бэкапы. Стабильная ветка в npm, в GitHub бета 4.0
SSH MCP Server (classfang) — команды на сервере по SSH
SSH MCP Server (classfang)
MCP-сервер для SSH: агент выполняет команды, читает и пишет файлы по SFTP, передает файлы и запускает долгие задачи, а пароли остаются у вас
MCPM
mcpm
Менеджер пакетов и реестр MCP для всех платформ и клиентов: ищет, добавляет и настраивает MCP-серверы, запоминает источник и обновляет
Самостоятельно размещаемый MCP-сервер для выполнения команд на удаленных серверах по SSH с токенами и ролями
Прокси между транспортами MCP: подключает stdio-клиентов к удаленным SSE и HTTP серверам и публикует локальные серверы по сети
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
Коротко о README
В репозитории описаны две стороны хаба: управляющий интерфейс на REST и единая точка подключения MCP. Таблица возможностей показывает транспорты, виды входа, уведомления об изменениях и то, что roots, sampling и completion не поддержаны. Дальше идут установка, флаги запуска, формат конфигурации с подстановками и режимом разработки, совместимость с VS Code, установка через Nix, справочник REST API и событий SSE, журнал, схемы жизненного цикла, тесты и пример клиента на Node.js. Отдельно лежат файлы `TROUBLESHOOTING.md` и `CHANGELOG.md`.