MCP Gateway

Integra múltiplos servidores MCP em uma única interface com uma Web UI de gerenciamento e atualizações de status em tempo real.

Documentação

MCP Gateway

Gateway MCP local dedicado. Permite registrar servidores, gerenciar perfis e iniciar/parar pela interface do navegador, e clientes MCP podem se conectar por uma única conexão via WebSocket /mcp (especificando serverId ou profile).

Configuração / Execução

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 に渡せます

Conexão a partir de clientes MCP

  • Especificar por ID do servidor
    ws://127.0.0.1:8787/mcp?serverId=<サーバーID>
    Exemplo: claude mcp add mcp-github --url ws://127.0.0.1:8787/mcp?serverId=github-mcp

  • Especificar por nome do perfil (conecta ao primeiro servidor do perfil)
    ws://127.0.0.1:8787/mcp?profile=<プロファイル名>
    Exemplo: claude mcp add mcp-dev --url ws://127.0.0.1:8787/mcp?profile=dev

Registro de exemplo (opcional)

O estado inicial é vazio. Se quiser exemplos, carregue-os com o comando.

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

Recursos

  • Registro/edição/exclusão de servidores MCP (command/args/env, autoStart)
  • Criação/exclusão/alternância de perfis (vários podem estar ativos ao mesmo tempo). Inicia automaticamente os servidores autoStart dos perfis ativos
  • Start/Stop manual, logs em ~/.mcp-gateway/logs/<id>.log
  • Persistência de estado: ~/.mcp-gateway/state.json
  • Proxy MCP: é possível alternar serverId / profile em /mcp

Endpoints da 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

Testes

pnpm test

Diretórios

  • src/ : núcleo do servidor, CLI, armazenamento, gerenciador de processos, proxy WebSocket
  • ui/ : Vite + React + shadcn UI

Observações

  • Apenas na primeira vez é necessário pnpm install. Depois disso, funciona mesmo offline.
  • Em Claude, registre /mcp?serverId=... ou /mcp?profile=....