Skip to main content
Glama

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 16

Inicio 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 --build

B. Portainer (editor web)

  1. Stacks → Añadir stack → Editor web y pega portainer-stack.yml.

  2. Añade una variable de entorno POSTGRES_PASSWORD (en Variables de entorno) antes de desplegar.

  3. 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:

  1. Ve a Marketplace, instala por ejemplo GitHub, pega un token → el proceso hijo del conector se inicia en segundo plano.

  2. Ve a Ajustes → crea una clave de API.

  3. 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/uvx dentro 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). Un index.json en la raíz del repositorio lista los archivos explícitamente; de lo contrario, se prueban los *.json de nivel raíz. Las nuevas entradas aparecen tras reiniciar el hub.

  • Conectores personalizados — coloca un manifiesto JSON en ./connectors/ (o en el volumen connectors) y aparecerá en el marketplace tras un reinicio. Consulta connectors/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/list a 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 d panel · g m marketplace · g s ajustes · Esc cierra 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_URL y 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 de xeniak10/mcp-hub cada 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 operacionesGET /healthz sin autenticación para sondas de disponibilidad; GET /api/meta informa versión + commit de git (se muestra en el pie de página de Ajustes); el tráfico con clave de API en /mcp está 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

POSTGRES_PASSWORD

Contraseña para el PostgreSQL incluido

MASTER_ENCRYPTION_KEY

openssl rand -hex 32. Se genera automáticamente en /app/data/master.key si está vacío

SESSION_SECRET

Vacío = aleatorio por arranque (los usuarios se desconectan al reiniciar)

APP_PORT

Puerto del host (por defecto 3000)

LOG_RETENTION_LINES

Tamaño del búfer circular por conector (por defecto 5000)

LOG_RETENTION_DAYS

Límite de antigüedad de los registros (por defecto 7)

ERROR_WEBHOOK_URL

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 -d

Eso 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 → web

Stack: 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 production

Añ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

GET /healthz

Sonda de actividad (solo ping a la BD, sin detalles)

POST /api/auth/bootstrap · login · logout

–/sesión

Cuenta de primera ejecución, iniciar/cerrar sesión

GET /api/meta

sesión

{version, commit} de la compilación en ejecución

POST /api/auth/change-password

sesión

Cambiar contraseña; revoca todas las demás sesiones

GET /api/auth/sessions · DELETE /:id

sesión

Listar/revocar sesiones activas

GET /api/marketplace

sesión

Entradas del catálogo con contadores de instalación

GET/POST /api/community/repos · DELETE /:repo

sesión

Gestionar repos de conectores comunitarios

POST /api/connectors · PUT/DELETE /:id

sesión

Instalar / renombrar / desinstalar

PUT /api/connectors/:id/config

sesión

Guardar configuración cifrada

POST /api/connectors/:id/enable·disable·restart

sesión

Ciclo de vida

POST /api/connectors/restart-all · stop-all

sesión

Operaciones en bloque

GET /api/connectors/:id/tools

sesión

Lista de herramientas en vivo desde el proceso en ejecución

GET /api/logs/:id?after= + flujo WS

sesión

Cola de registros

GET/POST /api/keys · DELETE /:id

sesión

Gestión de claves de API

GET /api/backup · POST /api/backup/restore

sesión

Exportar/importar configuración

POST /mcp

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@version o uvx). No se monta ningún socket de Docker. Los conectores basados en Python necesitan uvx — 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>.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    4
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Intelligent 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.
  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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.

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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