MCP Hub
MCP Hub — Ecosistema de servidor MCP y conectores todo en uno
Hub autoalojado que agrega conectores MCP (Model Context Protocol) en un único endpoint para tus clientes de IA, con una interfaz web estilo App Store, instalaciones con un clic, registros en vivo y monitoreo de salud.
Claude Desktop / Cursor ──Bearer key──▶ ┌─────────────────────┐
│ MCP Hub (:3000) │──▶ github (npx)
│ /mcp /api Web UI │──▶ postgres (npx)
Web browser ──session cookie──▶ └─────────┬───────────┘──▶ slack (npx) …
▼
PostgreSQL 16Inicio rápido
A. Local / Docker simple
cp .env.example .env
# edit .env — set POSTGRES_PASSWORD (and optionally MASTER_ENCRYPTION_KEY / SESSION_SECRET)
docker compose up -d --buildB. Portainer (editor web)
Stacks → Añadir stack → Editor web y pega
portainer-stack.yml.Añade una variable de entorno
POSTGRES_PASSWORD(en Variables de entorno) antes de desplegar.Despliega: la imagen se extrae de Docker Hub (
xeniak10/mcp-hub:latest), no se necesita compilar.
Abre http://:3000 — en la primera visita se te pedirá crear la cuenta de administrador (bootstrap). Luego:
Ve a Marketplace, instala por ejemplo GitHub, pega un token → el proceso hijo del conector se inicia en segundo plano.
Ve a Ajustes → crea una clave de API.
Apunta tu cliente de IA al hub:
{
"mcpServers": {
"hub": {
"url": "http://localhost:3000/mcp",
"headers": { "Authorization": "Bearer mcp_YOUR_KEY" }
}
}
}Todas las herramientas de los conectores aparecen con espacio de nombres como github__create_issue, postgres__query, …
Related MCP server: CbetaMCP
Qué obtienes
Marketplace — 71 conectores integrados para desarrolladores (GitHub, GitLab, Postgres, Kubernetes, Sentry…) y equipos de negocio: CRM (Salesforce, HubSpot, Pipedrive), ERP/contabilidad (Odoo, QuickBooks, Xero), helpdesk (Zendesk, Freshdesk, ServiceNow), comunicación (Microsoft 365, Email IMAP/SMTP, Twilio, Slack, archivos de Teams), productividad (Google Sheets, Notion, Airtable) y observabilidad (Dynatrace). Instalación con un clic, formulario de configuración basado en esquema, inicio de dependencias en segundo plano mediante
npx/uvxdentro del contenedor del hub. Búsqueda, filtros por categoría y ordenación (oficiales primero / más instalados / nombre).Repos de conectores comunitarios — pega una URL de un repositorio público de GitHub en el Marketplace (sección "Repos comunitarios") y se obtienen, validan y fusionan en tu catálogo todos los manifiestos de conectores válidos que contenga (con espacio de nombres
community:owner/repo/<id>, almacenados en caché sin conexión en el volumen de datos). Unindex.jsonen la raíz del repositorio lista los archivos explícitamente; de lo contrario, se prueban los*.jsonde nivel raíz. Las nuevas entradas aparecen tras reiniciar el hub.Conectores personalizados — coloca un manifiesto JSON en
./connectors/(o en el volumenconnectors) y aparecerá en el marketplace tras un reinicio. Consultaconnectors/example.json.example.Panel de control — insignias de estado en vivo (en ejecución / iniciando / error / detenido), mosaicos de estadísticas, búsqueda de instancias, Reiniciar todo / Detener todo en bloque con confirmación.
Detalle del conector — renombra instancias en línea, editor visual de configuración, vista previa de herramientas en vivo (
tools/lista través del proceso en ejecución) con nombres de herramientas copiables con un clic, visor de registros en tiempo real (cola WebSocket) con filtros por nivel/texto, modo de seguimiento y descarga de registros.Tema claro y oscuro — alternar en la barra lateral; se guarda por navegador.
Atajos de teclado —
/enfoca la búsqueda ·g dpanel ·g mmarketplace ·g sajustes ·Esccierra diálogos/desenfoca la búsqueda.Listo para PWA — manifiesto instalable + favicon SVG.
Copia de seguridad y restauración — exportación con un clic de todos los conectores instalados + configuraciones a un archivo JSON; la importación los restaura en una instancia nueva (página de Ajustes).
Gestión de cuentas — cambiar contraseña (cierra sesión en todos los demás dispositivos), listar sesiones activas con IP/user-agent, revocar cualquier sesión.
Alertas de fallos — configura
ERROR_WEBHOOK_URLy el hub envía una alerta JSON cada vez que un conector entra en estado de error (funciona con Slack, Discord, Teams, receptores genéricos; 5 minutos de enfriamiento por conector).Watchdog — los procesos bloqueados se reinician con retroceso exponencial; ping de salud cada 30 s; la recuperación al arranque restaura todo lo que estaba habilitado antes del reinicio.
Actualizaciones — Ajustes muestra tu versión actual y comprueba las versiones de GitHub / etiquetas de Docker Hub cada 6 h (o con Comprobar ahora). Cuando se publica una nueva versión, obtienes una copia con un clic del comando de actualización exacto para tu tipo de despliegue.
Actualización automática opcional — habilita el sidecar de Watchtower con
docker compose --profile autoupdate up -d: extrae imágenes más recientes dexeniak10/mcp-hubcada hora y recrea solo el contenedor de la aplicación (está limitado por etiquetas, por lo que nunca toca tu base de datos).Monitoreo y operaciones —
GET /healthzsin autenticación para sondas de disponibilidad;GET /api/metainforma versión + commit de git (se muestra en el pie de página de Ajustes); el tráfico con clave de API en/mcpestá limitado a 120 solicitudes/min por clave.Seguridad — configuraciones cifradas en reposo con AES-256-GCM, contraseñas argon2id, sesiones con cookies, claves de API con hash, limitación de velocidad de inicio de sesión, registro de auditoría.
Configuración
Variable | Requerido | Descripción |
| ✅ | Contraseña para el PostgreSQL incluido |
| – |
|
| – | Vacío = aleatorio por arranque (los usuarios se desconectan al reiniciar) |
| – | Puerto del host (por defecto |
| – | Tamaño del búfer circular por conector (por defecto 5000) |
| – | Límite de antigüedad de los registros (por defecto 7) |
| – | URL para enviar alertas JSON cuando un conector entra en estado de error |
Volúmenes: pgdata (base de datos), app-data (clave maestra + estado), npx-cache (caché de dependencias de conectores — mantiene los reinicios rápidos).
Actualización
El hub no puede reemplazar su propio contenedor, por lo que las actualizaciones son una línea en el host:
docker compose pull app && docker compose up -d --no-deps --force-recreate app(Ajustes → Actualizaciones te lo copia cuando hay una nueva versión disponible. En Portainer usa Stack → Pull y redesplegar.) ¿Lo quieres totalmente automático?
docker compose --profile autoupdate up -dEso inicia Watchtower junto al hub; cada hora comprueba Docker Hub y recrea el contenedor de la aplicación cuando existe una imagen más reciente (--cleanup elimina imágenes antiguas). Tus datos viven en volúmenes, por lo que las actualizaciones no pierden nada.
Desarrollo
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 → webStack: npm workspaces · Fastify 5 · @modelcontextprotocol/sdk · PostgreSQL 16 · Vite + React 18 + Tailwind CSS v4 + TanStack Query.
Estructura
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 productionAñadir un conector
Sin recompilar (recomendado): copia connectors/example.json.example a connectors/<your-id>.json, completa el manifiesto (argv de comando con marcadores {env.NAME} + formulario de configuración JSON-schema) y reinicia el hub. Los archivos no válidos se omiten con una advertencia en los registros; los ids personalizados que colisionan con los integrados se ignoran.
Desde un repositorio de GitHub: Marketplace → Repos comunitarios → pega owner/repo (o una URL completa de github.com). El hub obtiene un index.json de la raíz del repositorio (array de rutas de archivo) o recurre a los archivos *.json de nivel raíz, valida cada uno contra el mismo esquema que los manifiestos de volumen y los almacena en caché bajo ids community:owner/repo/<id> — de modo que nunca pueden eclipsar a los integrados y siguen funcionando sin conexión después de la primera obtención. Gestiona/elimina repos en la misma sección; los cambios se aplican en el próximo reinicio.
Integrado: crea packages/server/src/registry/connectors/<id>.ts exportando un ConnectorManifest y regístralo en src/registry/index.ts. Aparece en el marketplace inmediatamente después de recompilar.
Resumen de la API REST
Endpoint | Autenticación | Descripción |
| – | Sonda de actividad (solo ping a la BD, sin detalles) |
| –/sesión | Cuenta de primera ejecución, iniciar/cerrar sesión |
| sesión |
|
| sesión | Cambiar contraseña; revoca todas las demás sesiones |
| sesión | Listar/revocar sesiones activas |
| sesión | Entradas del catálogo con contadores de instalación |
| sesión | Gestionar repos de conectores comunitarios |
| sesión | Instalar / renombrar / desinstalar |
| sesión | Guardar configuración cifrada |
| sesión | Ciclo de vida |
| sesión | Operaciones en bloque |
| sesión | Lista de herramientas en vivo desde el proceso en ejecución |
| sesión | Cola de registros |
| sesión | Gestión de claves de API |
| sesión | Exportar/importar configuración |
| Clave Bearer o sesión | Endpoint MCP unificado (120 solicitudes/min por clave) |
Todos los endpoints que mutan escriben en el registro de auditoría.
Notas
Los conectores se ejecutan como procesos hijos dentro del contenedor del hub (
npx -y pkg@versionouvx). No se monta ningún socket de Docker. Los conectores basados en Python necesitanuvx— está instalado en la imagen de ejecución.El endpoint MCP es HTTP Streamable sin estado (
/mcp) — cualquier cliente MCP HTTP funciona.Los recursos se exponen bajo
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