/ Diretório / Playground / MetaMCP
● Comunidade metatool-ai ⚡ Instantâneo

MetaMCP

por metatool-ai · metatool-ai/metamcp

Stop juggling 15 MCP entries in every client config — MetaMCP is a self-hosted gateway that aggregates servers behind one namespaced endpoint.

MetaMCP is a Dockerized MCP aggregator, orchestrator, and gateway. You register N upstream MCP servers in its admin UI; it exposes them as a single SSE/Streamable-HTTP endpoint that your clients (Claude Desktop, Cursor, etc.) connect to. Tool names are namespaced so you can safely run two filesystem MCPs pointed at different roots. OAuth 2.1, per-endpoint API keys, per-user rate limits, and a built-in inspector for debugging are all included. Ideal for teams and anyone with 5+ MCPs installed.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

metamcp.replay ▶ pronto
0/0

Instalar

Escolha seu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "metamcp": {
      "command": "uvx",
      "args": [
        "mcp-proxy",
        "http://localhost:12008/metamcp/default/sse"
      ],
      "env": {
        "API_ACCESS_TOKEN": "mm_..."
      }
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "metamcp": {
      "command": "uvx",
      "args": [
        "mcp-proxy",
        "http://localhost:12008/metamcp/default/sse"
      ],
      "env": {
        "API_ACCESS_TOKEN": "mm_..."
      }
    }
  }
}

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "metamcp": {
      "command": "uvx",
      "args": [
        "mcp-proxy",
        "http://localhost:12008/metamcp/default/sse"
      ],
      "env": {
        "API_ACCESS_TOKEN": "mm_..."
      }
    }
  }
}

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "metamcp": {
      "command": "uvx",
      "args": [
        "mcp-proxy",
        "http://localhost:12008/metamcp/default/sse"
      ],
      "env": {
        "API_ACCESS_TOKEN": "mm_..."
      }
    }
  }
}

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "metamcp",
      "command": "uvx",
      "args": [
        "mcp-proxy",
        "http://localhost:12008/metamcp/default/sse"
      ]
    }
  ]
}

O Continue usa um array de objetos de servidor em vez de um map.

~/.config/zed/settings.json
{
  "context_servers": {
    "metamcp": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-proxy",
          "http://localhost:12008/metamcp/default/sse"
        ]
      }
    }
  }
}

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

claude mcp add metamcp -- uvx mcp-proxy http://localhost:12008/metamcp/default/sse

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: MetaMCP

Give a team one MCP URL instead of 15 per-laptop configs

👤 Platform teams rolling out Claude Desktop / Cursor org-wide ⏱ ~45 min intermediate

Quando usar: Your team wants filesystem, github, postgres, sentry, slack, notion all available — but you don't want every engineer maintaining 6 tokens in JSON files that leak.

Pré-requisitos
  • A server that runs Docker — Any Linux box / VM with Docker Compose; ~1 CPU / 1GB RAM is plenty
  • Upstream credentials stored server-side — Put GITHUB_TOKEN, DB_URL, etc. in MetaMCP's .env — they never reach laptops
Fluxo
  1. Bring up MetaMCP
    git clone github.com/metatool-ai/metamcp && cp example.env .env && docker compose up -d✓ Copiado
    → Admin UI reachable at http://host:12008; default login works
  2. Register upstream servers
    In the MetaMCP admin UI, add filesystem, github, postgres, notion as namespaces 'fs', 'gh', 'db', 'notion'.✓ Copiado
    → Each appears in the endpoint's tool list with prefix
  3. Give the team one config
    Publish the Claude Desktop config snippet — one mcp-proxy entry pointing at /metamcp/team-default/sse — to internal docs.✓ Copiado
    → Every engineer paste-and-goes

Resultado: New hires onboard in 90 seconds; token rotation happens once, server-side.

Armadilhas
  • Claude Desktop can't do SSE natively — Use mcp-proxy (uvx mcp-proxy <sse-url>) on the client side — MetaMCP docs include this snippet
  • Namespaces collide or are ugly — Rename tools in MetaMCP's override UI; e.g. 'fs.read_text_file' → 'repo.read'
Combine com: filesystem · github · postgres

Audit which MCP tools your agents actually call — and throttle the noisy ones

👤 Security / platform engineers ⏱ ~20 min intermediate

Quando usar: You need to know what tools are invoked, how often, and which user. Per-server rate limits are not enough — you want aggregate visibility.

Fluxo
  1. Turn on request logs
    In MetaMCP settings, enable per-request logging and endpoint-level rate limits (e.g. 10 req/s per user).✓ Copiado
    → Logs appear in the admin UI
  2. Replay a suspicious trace
    Pull the last hour of tool calls for user 'marketing-bot'. Anything hitting the github write tools?✓ Copiado
    → Tabular audit; write calls highlighted
  3. Throttle abusive tools
    Set 'notion.create_page' to 1 req/min for the 'marketing-bot' endpoint. Apply now.✓ Copiado
    → Rate limit visible in config; takes effect immediately

Resultado: Governance surface without writing custom middleware.

Route dev/staging/prod MCP traffic through one gateway

👤 Teams with environment-specific credentials ⏱ ~30 min advanced

Quando usar: You want the same Claude Desktop config to hit staging-postgres at work and prod-postgres only with an explicit flag — no editing JSON.

Fluxo
  1. Create endpoints
    Create 3 MetaMCP endpoints: /dev, /staging, /prod. Wire each to the right upstream credentials.✓ Copiado
    → Three endpoint URLs
  2. Per-endpoint auth
    Give prod its own API key and enable OIDC SSO for that endpoint only.✓ Copiado
    → dev/staging open with shared key, prod behind SSO
  3. Test via inspector
    Use MetaMCP's inspector UI: call a read-only query through /prod as yourself; confirm auth works.✓ Copiado
    → Successful tool call in the inspector

Resultado: Accident-proof environment switching.

Combine com: postgres

Combinações

Combine com outros MCPs para 10× de alavancagem

metamcp + filesystem + github + postgres

Hide the per-tool sprawl behind one gateway URL

Configure MetaMCP with fs, gh, db namespaces; point Claude Desktop at the gateway; stop pasting tokens into JSON.✓ Copiado
metamcp + claude-desktop

Claude Desktop speaks stdio, MetaMCP speaks SSE — use mcp-proxy as the bridge

In claude_desktop_config.json, wrap MetaMCP's SSE URL with uvx mcp-proxy.✓ Copiado
metamcp + sentry

Send MetaMCP request logs/errors into Sentry for alerting

Wire MetaMCP's OpenTelemetry/logs into Sentry; alert on 5xx rate > 1%.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
(dynamic) Depends on which MCP servers you've registered — tools are forwarded with a namespace prefix Any time — it's a transparent proxy with auth + rate-limit added free (local gateway + upstream's own cost)

Custo e limites

O que custa rodar

Cota de API
None — self-hosted
Tokens por chamada
Same as upstream tools; MetaMCP adds ~1–3ms of proxy latency
Monetário
Free (MIT); you pay for the VM
Dica
One small VPS ($5/mo) runs MetaMCP + a couple upstream servers; no need for Kubernetes until traffic > 100 req/s

Segurança

Permissões, segredos, alcance

Armazenamento de credenciais: MetaMCP .env holds all upstream credentials; clients never see them
Saída de dados: Only to the upstream MCPs you've registered. Nothing phones home.
Nunca conceda: Expose the admin UI to the public internet without SSO or auth proxy

Solução de problemas

Erros comuns e correções

Claude Desktop shows 'server failed to start'

Claude Desktop uses stdio, not SSE. Configure with uvx mcp-proxy http://host:12008/metamcp/<endpoint>/sse, not a direct URL.

Verificar: Try the same URL in MetaMCP's inspector first — if it works there, the issue is stdio-to-SSE bridging
Tools missing or not namespaced

Check the endpoint config — namespaces are per-endpoint, not global. Re-sync tool discovery after adding an upstream.

Verificar: In admin UI, click 'Re-sync tools' on the endpoint
401 at the gateway

API_ACCESS_TOKEN env must match the endpoint's API key; OAuth endpoints need a completed consent flow first.

Verificar: curl -H 'Authorization: Bearer $TOKEN' http://host:12008/metamcp/<ep>/mcp
Upstream MCP server keeps restarting

Check the upstream container's logs via docker logs; MetaMCP will mark it unhealthy and surface errors to clients.

Verificar: docker compose logs <upstream>

Alternativas

MetaMCP vs. outros

AlternativaQuando usarTroca
IBM mcp-context-forgeEnterprise deployment with stronger IAM/governance needsHeavier stack; more config surface
mcp-use/mcp-useYou want a framework to build AI agents + servers, not just a proxyMore code; more surface; more power
Direct per-client configsYou run ≤3 MCPs and don't share configs with anyoneNo governance, no auth, tokens on every laptop

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills