/ Verzeichnis / Playground / MetaMCP
● Community metatool-ai ⚡ Sofort

MetaMCP

von 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.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

metamcp.replay ▶ bereit
0/0

Installieren

Wählen Sie Ihren Client

~/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_..."
      }
    }
  }
}

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

~/.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 nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

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

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "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_..."
      }
    }
  }
}

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

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

Continue nutzt ein Array von Serverobjekten statt einer Map.

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

In context_servers hinzufügen. Zed lädt beim Speichern neu.

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

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: 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

Wann einsetzen: 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.

Voraussetzungen
  • 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
Ablauf
  1. Bring up MetaMCP
    git clone github.com/metatool-ai/metamcp && cp example.env .env && docker compose up -d✓ Kopiert
    → 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'.✓ Kopiert
    → 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.✓ Kopiert
    → Every engineer paste-and-goes

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

Fallstricke
  • 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'
Kombinieren mit: filesystem · github · postgres

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

👤 Security / platform engineers ⏱ ~20 min intermediate

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

Ablauf
  1. Turn on request logs
    In MetaMCP settings, enable per-request logging and endpoint-level rate limits (e.g. 10 req/s per user).✓ Kopiert
    → 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?✓ Kopiert
    → Tabular audit; write calls highlighted
  3. Throttle abusive tools
    Set 'notion.create_page' to 1 req/min for the 'marketing-bot' endpoint. Apply now.✓ Kopiert
    → Rate limit visible in config; takes effect immediately

Ergebnis: Governance surface without writing custom middleware.

Route dev/staging/prod MCP traffic through one gateway

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

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

Ablauf
  1. Create endpoints
    Create 3 MetaMCP endpoints: /dev, /staging, /prod. Wire each to the right upstream credentials.✓ Kopiert
    → Three endpoint URLs
  2. Per-endpoint auth
    Give prod its own API key and enable OIDC SSO for that endpoint only.✓ Kopiert
    → 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.✓ Kopiert
    → Successful tool call in the inspector

Ergebnis: Accident-proof environment switching.

Kombinieren mit: postgres

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

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.✓ Kopiert
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.✓ Kopiert
metamcp + sentry

Send MetaMCP request logs/errors into Sentry for alerting

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

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
(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)

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
None — self-hosted
Tokens pro Aufruf
Same as upstream tools; MetaMCP adds ~1–3ms of proxy latency
Kosten in €
Free (MIT); you pay for the VM
Tipp
One small VPS ($5/mo) runs MetaMCP + a couple upstream servers; no need for Kubernetes until traffic > 100 req/s

Sicherheit

Rechte, Secrets, Reichweite

Credential-Speicherung: MetaMCP .env holds all upstream credentials; clients never see them
Datenabfluss: Only to the upstream MCPs you've registered. Nothing phones home.
Niemals gewähren: Expose the admin UI to the public internet without SSO or auth proxy

Fehlerbehebung

Häufige Fehler und Lösungen

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.

Prüfen: 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.

Prüfen: 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.

Prüfen: 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.

Prüfen: docker compose logs <upstream>

Alternativen

MetaMCP vs. andere

AlternativeWann stattdessenKompromiss
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

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen