MCP Gateway

Integra múltiples servidores MCP en una única interfaz con una interfaz web de gestión y actualizaciones de estado en tiempo real.

Documentación

MCP Gateway

Un gateway MCP exclusivamente local. Desde la interfaz de navegador puedes registrar servidores, gestionar perfiles y arrancar/detenerlos. Los clientes MCP pueden conectarse mediante una única conexión WebSocket a través de /mcp (especificando serverId o profile).

Configuración / Ejecución

pnpm install
pnpm --filter mcp-gateway-ui run build
pnpm start   # http://127.0.0.1:8787
# オプション: --port=8787 --host=127.0.0.1 --data-dir=/path/to/data を cli.js に渡せます

Conexión desde clientes MCP

  • Especificando el ID del servidor
    ws://127.0.0.1:8787/mcp?serverId=<サーバーID>
    Ejemplo: claude mcp add mcp-github --url ws://127.0.0.1:8787/mcp?serverId=github-mcp

  • Especificando el nombre del perfil (se conecta al primer servidor de ese perfil)
    ws://127.0.0.1:8787/mcp?profile=<プロファイル名>
    Ejemplo: claude mcp add mcp-dev --url ws://127.0.0.1:8787/mcp?profile=dev

Registro de ejemplo (opcional)

El estado inicial está vacío. Si deseas ejemplos, puedes cargarlos mediante el comando.

pnpm init:samples            # github-mcp (port 9000), fs-mcp (port 9001), default/dev プロファイルを追加
pnpm init:samples -- --force # 既存を上書きしたい場合

Funciones

  • Registro/edición/eliminación de servidores MCP (command/args/env, autoStart)
  • Creación/eliminación/cambio de perfiles (varios pueden estar activos a la vez). Los servidores con autoStart de los perfiles activos se inician automáticamente
  • Inicio/Detención manual, los registros están en ~/.mcp-gateway/logs/<id>.log
  • Guardado de estado: ~/.mcp-gateway/state.json
  • Proxy MCP: se puede cambiar entre serverId / profile mediante /mcp

Endpoints de la API

  • GET /api/health
  • GET /api/state
  • GET /api/servers
  • POST /api/servers
  • PUT /api/servers/:id
  • DELETE /api/servers/:id
  • POST /api/servers/:id/start
  • POST /api/servers/:id/stop
  • GET /api/profiles
  • POST /api/profiles
  • PUT /api/profiles/:name
  • DELETE /api/profiles/:name
  • POST /api/profiles/:name/activate
  • POST /api/profiles/active (names: string[])
  • POST /api/reload
  • GET /api/status
  • GET /api/logs/:id?lines=200

Pruebas

pnpm test

Directorios

  • src/ : núcleo del servidor, CLI, almacenamiento, gestor de procesos, proxy WebSocket
  • ui/ : Vite + React + shadcn UI

Notas

  • Solo la primera vez se requiere pnpm install. A partir de entonces funciona sin conexión.
  • Desde Claude y otros, registra /mcp?serverId=... o /mcp?profile=....