/ Directorio / Playground / mcphub
● Comunidad samanhappy ⚡ Instantáneo

mcphub

por samanhappy · samanhappy/mcphub

Ejecuta todos tus servidores MCP detrás de un único endpoint — agrúpalos, enruta inteligentemente por búsqueda vectorial, intercambia configuraciones sin tiempo de inactividad.

MCPHub es un hub TypeScript que monta múltiples servidores MCP bajo un único endpoint HTTP con enrutamiento por grupo, por servidor, o mediante un enrutador inteligente ($smart) basado en búsqueda vectorial. OAuth, inicio de sesión social, modo PostgreSQL para producción. Docker es el despliegue recomendado.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

mcphub.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcphub": {
      "command": "npx",
      "args": [
        "-y",
        "mcphub"
      ],
      "_inferred": true
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcphub": {
      "command": "npx",
      "args": [
        "-y",
        "mcphub"
      ],
      "_inferred": true
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcphub": {
      "command": "npx",
      "args": [
        "-y",
        "mcphub"
      ],
      "_inferred": true
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcphub": {
      "command": "npx",
      "args": [
        "-y",
        "mcphub"
      ],
      "_inferred": true
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcphub",
      "command": "npx",
      "args": [
        "-y",
        "mcphub"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "mcphub": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "mcphub"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add mcphub -- npx -y mcphub

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: mcphub

Cómo exponer 20 servidores MCP a través de una única URL para tu equipo

👤 Ingenieros de plataforma, líderes de equipo ⏱ ~30 min intermediate

Cuándo usarlo: Los ingenieros siguen copiando y pegando configuraciones locales y rompiendo las configuraciones del equipo.

Requisitos previos
  • Docker y un servidor con nombre DNS — Cualquier VPS económico funciona; usa Caddy o nginx para TLS
  • mcp_settings.json listando tus servidores — Comienza desde la muestra de MCPHub y añade una entrada por cada MCP
Flujo
  1. Despliega el hub
    Ejecuta: docker run -p 3000:3000 -v $PWD/mcp_settings.json:/app/mcp_settings.json samanhappy/mcphub✓ Copiado
    → URL de inicio de sesión de administrador + contraseña generada en los logs
  2. Crea grupos
    En la UI de administración, crea grupos 'dev' (github, filesystem, postgres) y 'data' (postgres, bigquery).✓ Copiado
    → Grupos visibles en /mcp/dev y /mcp/data
  3. Distribuye la URL
    Comparte https://mcp.yourco.internal/mcp/dev con el equipo; ellos lo añaden como un único MCP HTTP en su cliente.✓ Copiado
    → Los miembros del equipo se conectan con una línea de configuración

Resultado: Un único endpoint operativo reemplaza 20 configuraciones por máquina.

Errores comunes
  • Filtración de la contraseña de administrador desde los logs de Docker — Establece la variable de entorno ADMIN_PASSWORD explícitamente; rótala en el primer inicio de sesión
  • Exponer el hub a internet pública — Colócalo detrás de una VPN o requiere bearer tokens por usuario

Cómo dejar que $smart elija el MCP correcto para un prompt automáticamente

👤 Equipos ejecutando demasiadas herramientas para caber en un único contexto ⏱ ~15 min advanced

Cuándo usarlo: Tienes 200+ herramientas en MCPs y excedes el presupuesto de herramientas de tu modelo.

Flujo
  1. Habilita el endpoint $smart
    Apunta tu cliente a https://hub.example.com/mcp/$smart en lugar de a un servidor específico.✓ Copiado
    → Meta-herramienta única expuesta que enruta por intención
  2. Prompt naturalmente
    Encuentra PRs en github.com/org/repo que están esperando por mí y colócalas en mi calendario como un slot de revisión de 30 minutos.✓ Copiado
    → El hub elige las herramientas github + google-calendar detrás de escenas

Resultado: Menos herramientas en contexto, misma capacidad.

Errores comunes
  • El enrutador inteligente elige el MCP incorrecto en prompts ambiguos — Mantén los endpoints por grupo disponibles como alternativa

Cómo agregar un nuevo servidor MCP al hub sin tiempo de inactividad

👤 Operadores ⏱ ~5 min beginner

Cuándo usarlo: Un nuevo MCP acaba de salir y quieres que esté en vivo hoy sin desconectar a nadie.

Flujo
  1. Edita mcp_settings.json a través de la UI
    En el panel de control de MCPHub, añade una nueva entrada de servidor y guarda.✓ Copiado
    → Notificación de recarga en caliente, aparecen nuevas herramientas
  2. Asigna a un grupo
    Añade el nuevo servidor al grupo 'data'.✓ Copiado
    → /mcp/data ahora incluye las nuevas herramientas

Resultado: Nuevo MCP en línea en menos de un minuto, sin necesidad de reconexión de clientes.

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

mcphub + toolhive

Usa ToolHive para containerizar los MCPs individuales, MCPHub para enrutarlos

Registra mi MCP github ejecutado con ToolHive en MCPHub bajo el grupo 'dev'.✓ Copiado
mcphub + proxy

Expone MCPs solo stdio sobre HTTP para el hub

Usa mcp-proxy para conectar mi MCP stdio local a HTTP para que MCPHub pueda montarlo.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
(meta) route-by-group HTTP path /mcp/{group} Uso regular — reduce tu radio de impacto free
(meta) route-by-server /mcp/{server} Cuando quieres exactamente la superficie de un servidor free
(meta) $smart semantic router /mcp/$smart Cuando tienes demasiadas herramientas para el contexto 1 vector search per call

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Ninguno impuesto por el hub; los MCPs descendentes mantienen sus propias cuotas
Tokens por llamada
Añade ~50 tokens de sobrecarga de metadatos de herramientas
Monetario
Gratuito (código abierto, Apache 2.0)
Consejo
Usa rutas de grupo, no $smart, para comportamiento determinista y cero costo de búsqueda vectorial adicional.

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: Bearer token por usuario Restricción a nivel de red para clientes confiables
Almacenamiento de credenciales: Variable de entorno ADMIN_PASSWORD; secretos MCP descendentes vía mcp_settings.json o gestor de secretos
Salida de datos: El hub solo actúa como proxy — tus datos van a donde cada MCP descendente los envía
No conceder nunca: Exposición pública sin autenticación UI de administrador en internet abierto

Resolución de problemas

Errores comunes y soluciones

No se puede iniciar sesión / contraseña desconocida

Comprueba los logs del contenedor en el primer arranque para la contraseña generada o establece ADMIN_PASSWORD.

Verificar: docker logs mcphub | grep -i password
Aparece nuevo MCP pero sin herramientas

El MCP descendente probablemente no se inició. Haz clic en 'Logs' en la tarjeta del servidor.

El enrutador inteligente devuelve 'ninguna herramienta coincidente'

Reindexar el almacén vectorial desde Configuración > Indexar herramientas.

Desajuste de redirección OAuth

Registra la URL de devolución exacta en tu proveedor OAuth (debe coincidir con la URL pública del hub).

Alternativas

mcphub vs otros

AlternativaCuándo usarlaContrapartida
Unla (MCP Gateway)Quieres conversión REST-a-MCP impulsada por YAML más multi-inquilinoBasado en Go, modelo de operador diferente
ToolHiveQuieres aislamiento a nivel de contenedor por MCPSe enfoca en ejecutar MCPs, menos en enrutamiento/agregación
mcp-proxySolo necesitas puentes de transporte, no agregación multi-servidorServidor único; sin UI

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills