MCP Hub
MCP Hub — универсальная экосистема MCP-сервера и коннекторов
Самостоятельно размещаемый хаб, который объединяет коннекторы MCP (Model Context Protocol) в единую конечную точку для ваших ИИ-клиентов — с веб-интерфейсом в стиле App Store, установкой в один клик, живыми журналами и мониторингом состояния.
Claude Desktop / Cursor ──Bearer key──▶ ┌─────────────────────┐
│ MCP Hub (:3000) │──▶ github (npx)
│ /mcp /api Web UI │──▶ postgres (npx)
Web browser ──session cookie──▶ └─────────┬───────────┘──▶ slack (npx) …
▼
PostgreSQL 16Быстрый старт
A. Локально / обычный Docker
cp .env.example .env
# edit .env — set POSTGRES_PASSWORD (and optionally MASTER_ENCRYPTION_KEY / SESSION_SECRET)
docker compose up -d --buildB. Portainer (веб-редактор)
Stacks → Add stack → Web editor и вставьте
portainer-stack.yml.Добавьте переменную окружения
POSTGRES_PASSWORD(в разделе Environment variables) перед развёртыванием.Разверните — образ загружается с Docker Hub (
xeniak10/mcp-hub:latest), сборка не требуется.
Откройте http://:3000 — при первом посещении вам будет предложено создать учётную запись администратора (bootstrap). Затем:
Перейдите в Marketplace, установите, например, GitHub, вставьте токен → дочерний процесс коннектора запускается в фоне.
Перейдите в Settings → создайте API-ключ.
Укажите вашему ИИ-клиенту на хаб:
{
"mcpServers": {
"hub": {
"url": "http://localhost:3000/mcp",
"headers": { "Authorization": "Bearer mcp_YOUR_KEY" }
}
}
}Все инструменты коннекторов отображаются с пространством имён: github__create_issue, postgres__query, …
Related MCP server: CbetaMCP
Что вы получаете
Marketplace — 71 встроенный коннектор для разработчиков (GitHub, GitLab, Postgres, Kubernetes, Sentry…) и для бизнес-команд — CRM (Salesforce, HubSpot, Pipedrive), ERP/бухгалтерия (Odoo, QuickBooks, Xero), служба поддержки (Zendesk, Freshdesk, ServiceNow), коммуникации (Microsoft 365, Email IMAP/SMTP, Twilio, Slack, Teams files), продуктивность (Google Sheets, Notion, Airtable) и наблюдаемость (Dynatrace). Установка в один клик, форма конфигурации на основе схемы, фоновый запуск зависимостей через
npx/uvxвнутри контейнера хаба. Поиск, фильтры по категориям и сортировка (сначала официальные / самые устанавливаемые / по имени).Репозитории сообщества коннекторов — вставьте URL публичного GitHub-репозитория в Marketplace (раздел "Community repos"), и каждый допустимый манифест коннектора в нём будет получен, проверен и объединён в ваш каталог (с пространством имён
community:owner/repo/<id>, кэшируется офлайн в томе данных).index.jsonв корне репозитория явно перечисляет файлы; в противном случае проверяются корневые*.json. Новые записи появляются после перезапуска хаба.Пользовательские коннекторы — поместите JSON-манифест в
./connectors/(или в томconnectors), и он появится в маркетплейсе после перезапуска. См.connectors/example.json.example.Панель управления — живые статусные бейджи (работает / запускается / ошибка / остановлен), плитки статистики, поиск по экземплярам, массовые Restart all / Stop all с подтверждением.
Детали коннектора — переименование экземпляров на месте, визуальный редактор конфигурации, живой предпросмотр инструментов (
tools/listчерез запущенный процесс) с копированием имён инструментов по клику, просмотр журналов в реальном времени (WebSocket tail) с фильтрами по уровню/тексту, режимом следования и загрузкой журнала.Светлая и тёмная темы — переключатель в боковой панели; сохраняется для каждого браузера.
Горячие клавиши —
/фокусирует поиск ·g dпанель управления ·g mмаркетплейс ·g sнастройки ·Escзакрывает диалоги/снимает фокус с поиска.Готовность к PWA — устанавливаемый манифест + SVG-фавиконка.
Резервное копирование и восстановление — экспорт всех установленных коннекторов и конфигураций в один JSON-файл; импорт восстанавливает их на новом экземпляре (страница Settings).
Управление учётной записью — смена пароля (выход на всех других устройствах), список активных сессий с IP/user-agent, отзыв любой сессии.
Оповещения об ошибках — задайте
ERROR_WEBHOOK_URL, и хаб отправляет JSON-оповещение всякий раз, когда коннектор переходит в состояние ошибки (работает со Slack, Discord, Teams, универсальными приёмниками; период охлаждения 5 минут на коннектор).Watchdog — упавшие процессы перезапускаются с экспоненциальной задержкой; проверка работоспособности каждые 30 секунд; восстановление при загрузке возвращает всё, что было включено до перезапуска.
Обновления — в Settings отображается текущая версия и проверяются релизы GitHub / теги Docker Hub каждые 6 часов (или по кнопке Check now). Когда выходит новая версия, вы получаете в один клик точную команду обновления для вашего типа развёртывания.
Необязательное автообновление — включите сайдкар Watchtower с помощью
docker compose --profile autoupdate up -d: он ежечасно загружает новые образыxeniak10/mcp-hubи пересоздаёт только контейнер приложения (он ограничен метками, поэтому никогда не затрагивает вашу базу данных).Мониторинг и эксплуатация — неаутентифицированный
GET /healthzдля проверок доступности;GET /api/metaсообщает версию + git-коммит (показывается в нижнем колонтитуле Settings); трафик по API-ключам на/mcpограничен 120 запросами в минуту на ключ.Безопасность — конфигурации зашифрованы AES-256-GCM в состоянии покоя, пароли argon2id, cookie-сессии, хешированные API-ключи, ограничение скорости входа, журнал аудита.
Конфигурация
Переменная | Обязательная | Описание |
| ✅ | Пароль для встроенного PostgreSQL |
| – |
|
| – | Пусто = случайный при каждой загрузке (пользователи выходят при перезапуске) |
| – | Порт хоста (по умолчанию |
| – | Размер кольцевого буфера на коннектор (по умолчанию 5000) |
| – | Лимит возраста журнала (по умолчанию 7) |
| – | URL для POST JSON-оповещений, когда коннектор переходит в состояние ошибки |
Тома: pgdata (база данных), app-data (мастер-ключ + состояние), npx-cache
(кэш зависимостей коннекторов — ускоряет перезапуски).
Обновление
Хаб не может заменить собственный контейнер, поэтому обновление — это одна команда на хосте:
docker compose pull app && docker compose up -d --no-deps --force-recreate app(Settings → Updates копирует её для вас, когда доступна новая версия. В Portainer используйте Stack → Pull and redeploy.) Хотите полностью автоматически?
docker compose --profile autoupdate up -dЭто запускает Watchtower рядом с хабом; каждый час он проверяет Docker Hub и
пересоздаёт контейнер приложения, когда существует более новый образ (--cleanup удаляет старые
образы). Ваши данные хранятся в томах, поэтому обновления проходят без потерь.
Разработка
npm install
npm run dev # server (watch) + web (vite dev server on :5173, proxied /api + /mcp)
npm run typecheck # all workspaces
npm run build # shared → server → webСтек: npm workspaces · Fastify 5 · @modelcontextprotocol/sdk · PostgreSQL 16 ·
Vite + React 18 + Tailwind CSS v4 + TanStack Query.
Структура
packages/
shared/ types shared by server & web (manifests, API DTOs, WS events)
server/ Fastify app: auth, registry (connector manifests), ConnectorManager,
unified /mcp proxy, log pipeline, SQL migrations
web/ React SPA served statically by the server in productionДобавление коннектора
Без пересборки (рекомендуется): скопируйте
connectors/example.json.example в
connectors/<your-id>.json, заполните манифест (argv команды с плейсхолдерами {env.NAME}
форма конфигурации JSON-schema) и перезапустите хаб. Недопустимые файлы пропускаются с предупреждением в журналах; пользовательские идентификаторы, конфликтующие со встроенными, игнорируются.
Из GitHub-репозитория: Marketplace → Community repos → вставьте owner/repo (или полный
URL github.com). Хаб получает index.json из корня репозитория (массив путей к файлам)
или возвращается к корневым *.json-файлам, проверяет каждый по той же схеме,
что и манифесты в томах, и кэширует их под идентификаторами community:owner/repo/<id> —
так они никогда не могут перекрыть встроенные и продолжают работать офлайн после первой загрузки.
Управление/удаление репозиториев в том же разделе; изменения применяются при следующем перезапуске.
Встроенный: создайте packages/server/src/registry/connectors/<id>.ts, экспортирующий
ConnectorManifest, и зарегистрируйте его в src/registry/index.ts. Он появится в
маркетплейсе сразу после пересборки.
Сводка REST API
Endpoint | Auth | Описание |
| – | Проверка работоспособности (только ping БД, без деталей) |
| –/session | Учётная запись при первом запуске, вход/выход |
| session |
|
| session | Смена пароля; отзывает все другие сессии |
| session | Список/отзыв активных сессий |
| session | Записи каталога с количеством установок |
| session | Управление репозиториями коннекторов сообщества |
| session | Установка / переименование / удаление |
| session | Сохранение зашифрованной конфигурации |
| session | Жизненный цикл |
| session | Массовые операции |
| session | Живой список инструментов из запущенного процесса |
| session | Хвост журнала |
| session | Управление API-ключами |
| session | Экспорт/импорт конфигурации |
| Bearer key or session | Единая конечная точка MCP (120 запросов/мин на ключ) |
Все изменяющие конечные точки записывают в журнал аудита.
Примечания
Коннекторы работают как дочерние процессы внутри контейнера хаба (
npx -y pkg@versionилиuvx). Docker-сокет не монтируется. Коннекторы на Python требуютuvx— он установлен в образ времени выполнения.Конечная точка MCP — это stateless Streamable HTTP (
/mcp) — подходит любой HTTP MCP-клиент.Ресурсы доступны по адресу
connector://<slug>/<original-uri>.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityCmaintenanceThis server facilitates the invocation of AI models from providers like Anthropic, OpenAI, and Groq, enabling users to manage and configure large language model interactions seamlessly.213MIT
- AlicenseNot gradedqualityDmaintenanceA modular, extensible FastAPI-based platform that aggregates multiple AI tools and microservices into a unified interface with standardized I/O formats, perfect for frontend integration or LLM system orchestration.4MIT
- -licenseNot gradedqualityNot gradedmaintenanceIntelligent routing service that selects optimal AI models based on capability requirements and normalizes input/output formats across multiple providers like OpenAI, Anthropic, Google, and others.
- FlicenseNot gradedqualityDmaintenanceA unified local API gateway providing caching, rate limiting, and full Model Context Protocol compatibility for AI agent integration. It enables users to aggregate multiple API endpoints into a single gateway with built-in observability and customizable eviction strategies.
Related MCP Connectors
Universal AI API Orchestrator — 1,554 tools, 96 services. One install.
Connect MCP clients to 2,000+ AI models without managing provider API keys.
Enterprise AI Control Plane: governance, guardrails, spend tracking, compliance & smart routing.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/xeniak123/mcp-hub'
If you have feedback or need assistance with the MCP directory API, please join our Discord server