/ Directory / Playground / MCP Gateway & Registry
● Community agentic-community 🔑 Needs your key

MCP Gateway & Registry

by agentic-community · agentic-community/mcp-gateway-registry

One HTTP endpoint that fronts every internal MCP server — central auth, per-team namespaces, audit log, and a web UI for discovery.

Instead of giving every developer a list of stdio configs, run this gateway once: it registers child MCP servers, brokers connections, enforces auth, and exposes a discovery UI. Developers point Claude at one URL.

Why use it

Key features

Live Demo

What it looks like in practice

ready

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-gateway-registry": {
      "command": "docker",
      "args": [
        "run",
        "-p",
        "8080:8080",
        "-e",
        "GATEWAY_TOKEN",
        "ghcr.io/agentic-community/mcp-gateway-registry:latest"
      ],
      "env": {
        "GATEWAY_TOKEN": "${GATEWAY_TOKEN}"
      }
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-gateway-registry": {
      "command": "docker",
      "args": [
        "run",
        "-p",
        "8080:8080",
        "-e",
        "GATEWAY_TOKEN",
        "ghcr.io/agentic-community/mcp-gateway-registry:latest"
      ],
      "env": {
        "GATEWAY_TOKEN": "${GATEWAY_TOKEN}"
      }
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-gateway-registry": {
      "command": "docker",
      "args": [
        "run",
        "-p",
        "8080:8080",
        "-e",
        "GATEWAY_TOKEN",
        "ghcr.io/agentic-community/mcp-gateway-registry:latest"
      ],
      "env": {
        "GATEWAY_TOKEN": "${GATEWAY_TOKEN}"
      }
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-gateway-registry": {
      "command": "docker",
      "args": [
        "run",
        "-p",
        "8080:8080",
        "-e",
        "GATEWAY_TOKEN",
        "ghcr.io/agentic-community/mcp-gateway-registry:latest"
      ],
      "env": {
        "GATEWAY_TOKEN": "${GATEWAY_TOKEN}"
      }
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-gateway-registry",
      "command": "docker",
      "args": [
        "run",
        "-p",
        "8080:8080",
        "-e",
        "GATEWAY_TOKEN",
        "ghcr.io/agentic-community/mcp-gateway-registry:latest"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-gateway-registry": {
      "command": {
        "path": "docker",
        "args": [
          "run",
          "-p",
          "8080:8080",
          "-e",
          "GATEWAY_TOKEN",
          "ghcr.io/agentic-community/mcp-gateway-registry:latest"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add mcp-gateway-registry -- docker run -p 8080:8080 -e GATEWAY_TOKEN ghcr.io/agentic-community/mcp-gateway-registry:latest

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use MCP Gateway & Registry

Roll out MCP to a 200-person eng org

👤 Developers ⏱ ~15 min intermediate

When to use: Different teams want different MCPs; you want central control without manual configs per dev.

Flow
  1. Deploy
    Stand up the gateway; wire it to your IdP.✓ Copied
    → Login works
  2. Register MCPs
    In the registry UI, add github, linear, sentry, internal-api MCPs with per-team scopes.✓ Copied
    → Servers visible
  3. Onboard
    Devs point Claude at https://mcp.corp/sse; gateway authorizes.✓ Copied
    → Devs use only what their team is allowed

Outcome: Centralized rollout with per-team scopes and one config to ship to clients.

Audit every MCP tool call across the org

👤 Developers ⏱ ~15 min intermediate

When to use: Security needs an answer to "who called what tool when".

Flow
  1. Enable audit sink
    Configure gateway to ship logs to your SIEM.✓ Copied
    → Logs flowing
  2. Query
    Search for tool calls touching production resources in last 24h.✓ Copied
    → Per-user trail returned

Outcome: Complete audit trail of MCP usage org-wide.

Combinations

Pair with other MCPs for X10 leverage

mcp-gateway-registry + github-mcp

Register the official GitHub MCP behind the gateway with read-only org scope

Combine mcp-gateway-registry with github-mcp: Register the official GitHub MCP behind the gateway with read-only org scope✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
gateway-passthrough (see docs) Tools are whatever the registered child servers expose 1 call

Cost & Limits

What this costs to run

API quota
Bound by gateway host
Tokens per call
Same as underlying tools
Monetary
Free OSS; your hosting
Tip
Set per-principal quotas to prevent runaway agents

Security

Permissions, secrets, blast radius

Minimum scopes: gateway-admin gateway-user
Credential storage: OIDC tokens; child-server credentials in vault
Data egress: Where each child MCP egresses
Never grant: expose gateway publicly without OIDC

Troubleshooting

Common errors and fixes

Tool list empty

Check the principal has scope for at least one registered server

Slow first call

Gateway lazy-starts child servers; pre-warm hot ones

Alternatives

MCP Gateway & Registry vs others

AlternativeWhen to use it insteadTradeoff
mcp-context-forgeYou want IBM's alternative gatewayDifferent ops model
Direct stdio configsSmall team, no central auth neededNo audit trail, no central scope

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills