← Back to directory
M

MetaMCP

Community
A self-hosted gateway that aggregates MCP servers into unified endpoints.
GitHub source repository ↗
★ 2.5k Stars Category · Dev Tools Very popular
60FMRS · C
Reliability
10/20
Security and permissions
12/20
Maintenance
10/20
Documentation
15/20
Setup experience
13/20

The source describes MetaMCP as an MIT-licensed, self-hosted MCP aggregation and gateway project with support for tools, resources, and prompts. It provides namespaces, endpoints, authentication, OIDC, rate limiting, tool overrides, and middleware. No named tools or cached server manifest are provided in the source; search, additional middleware, and a headless admin API remain roadmap items.

Read the FMRS scoring method →

MetaMCP is an MCP proxy, aggregator, orchestrator, middleware layer, and gateway. It combines multiple MCP servers into namespaces, enables or disables servers and tools, overrides tool metadata, and exposes unified SSE, Streamable HTTP, or OpenAPI endpoints. MetaMCP is itself an MCP server and can connect to MCP clients that support these transports.

Tools

The tool list has not been reviewed yet.

Setup

Clone the repository, copy example.env to .env, and run docker compose up -d. Docker Compose is the recommended setup. After configuring namespaces and endpoints, add the resulting SSE or Streamable HTTP URL to a client configuration. STDIO-only clients require a local proxy such as mcp-proxy.

claude_desktop_config.json
{"mcpServers":{"MetaMCP":{"url":"http://localhost:12008/metamcp/<YOUR_ENDPOINT_NAME>/sse"}}}

Fit and risk

Best for

  • Developers and organizations that need self-hosted MCP infrastructure.
  • Teams that centrally manage multiple MCP servers, namespaces, endpoints, and access keys.
  • Deployments that need authentication, rate limiting, and tool-selection controls around MCP access.

Not for

  • Users who only need a single MCP server without aggregation or gateway features.
  • Deployments that cannot run Docker or provide the required runtime environment.
  • STDIO-only client environments where a local proxy cannot be used.

Required permissions

  • Access to configured upstream MCP servers.
  • Permission to start configured commands and dependencies for STDIO MCP servers.
  • Access to container environment variables containing secrets and other configuration.
  • Handling of sessions, API keys, or OIDC login data when authentication is enabled.
  • Network access, Docker, and persistent PostgreSQL storage for deployment.

Risks and side effects

  • Misconfiguration can expose multiple upstream MCP servers or tools through one public endpoint.
  • Poor handling of environment variables or API keys can disclose credentials.
  • Public endpoints may face unauthorized calls, excessive traffic, or misuse of upstream tools.
  • Rate-limit counters are stored in memory, and each cluster machine counts traffic independently.
  • Running STDIO servers and their dependencies expands the container's execution and network-access scope.

Troubleshooting

  1. Verify the endpoint name and the exact SSE or Streamable HTTP path used by the client.
  2. SSE does not support api_key query-parameter authentication; prefer Authorization: Bearer <API_KEY>.
  3. Use mcp-proxy for STDIO-only clients; the README says mcp-remote does not work with MetaMCP API-key authentication.
  4. Ensure APP_URL matches the URL used for access because MetaMCP enforces CORS against it.
  5. Check Docker, Docker Compose, PostgreSQL, upstream-server dependencies, and environment variables.
  6. For cold-start issues, review idle-session settings and consider preinstalling dependencies in a custom Dockerfile.
  7. When using a reverse proxy, check Nginx settings for long-lived SSE connections.

Use cases

Compose multiple MCP servers behind a unified MCP endpoint.
Select servers and tools by namespace and override tool names, titles, descriptions, and annotations.
Protect MCP endpoints with API keys or MCP OAuth.
Filter tools and process MCP requests and responses with middleware.
Debug endpoints with an Inspector that saves server configurations.
Expose OpenAPI endpoints for clients such as Open WebUI.

Supported clients

CursorFull support
Claude DesktopPartial support