One control plane for
your MCP infrastructure.
MCPHub is an open-source, self-hosted MCP gateway and control plane that centralizes connectivity, access, credentials, routing, and operations across your MCP servers.
Control access to MCP
Apply authentication and access controls with OAuth, OIDC, user-level keys, and bearer keys scoped to specific groups or servers.
- GitHub, Google, and generic OIDC login
- OAuth for downstream clients and upstream servers
- User-level and scoped bearer keys
- Tool-call activity logs with authentication context
POST /mcp/{group}
Authorization: Bearer mcphub-sk-***
X-User-Id: u_8f3a
X-Scope: tools.read,tools.write
→ 200 OK · 12 tools available
→ audit: u_8f3a → github.search_issues
→ audit: u_8f3a → linear.list_issuesPersonal credentials, shared infrastructure
Define an MCP server once and let each user securely bind their own upstream credentials.
- Encrypted per-user credential bindings
- Isolated user runtime for stdio servers
- Personal HTTP headers and API keys
- Shared server configuration without shared secrets
Organize servers and routes
Group servers, define aliases, and expose the same MCP fleet through aggregate, scoped, direct, and smart routes without re-deploying.
- /mcp: aggregate, all tools
- /mcp/{group}: scoped to a named group
- /mcp/{server}: single server passthrough
- /mcp/$smart: semantic tool discovery
/mcpaggregate247 tools/mcp/{group}groupscoped/mcp/{server}single1 server/mcp/$smartsemantictop-kSemantic tool discovery
A client with 200+ tools wastes context. Smart Routing indexes tool descriptions in a vector store and returns a small set per request.
- pgvector + OpenAI / Azure OpenAI embeddings
- OpenAI-compatible endpoints supported
- Per-request top-k tuning
- Falls back to keyword search if vector store down
- Works with every MCP-aware client
github.search_issues0.94linear.list_issues0.87notion.create_page0.83sentry.list_errors0.61Operate from one place
Monitor health, latency, and tool usage for each MCP server. Start, stop, hot-reload, and manage server authentication and OAuth connections from one place.
- Real-time health checks per server
- Hot-reload without restarting clients
- Tool-call activity logs with user, API key, status, latency, and source IP
Groups & per-user visibility
Share MCP servers with selected users and expose tailored toolsets through group endpoints. Each group can select which servers, tools, prompts, and resources are exposed.
- Private, public, and shared server visibility
- Per-user ownership and access
- Group endpoints with selected tools, prompts, and resources
- User-level and scoped bearer keys
platform-engdata-teamsupportPostgreSQL-backed storage
Swap the embedded JSON store for PostgreSQL when you need durable, centralized persistence for production deployments.
- PostgreSQL-backed configuration and runtime metadata
- Durable persistence for users, servers, groups, OAuth, and activity data
- Compatible with managed PostgreSQL services
- Suitable foundation for production deployments
services:
mcphub:
image: samanhappy/mcphub
environment:
DATABASE_URL: postgres://...
AUTH_SECRET: ${AUTH_SECRET}
depends_on: [postgres]
postgres:
image: postgres:16
volumes: [pgdata:/var/lib/postgresql/data]Put your MCP servers behind one gateway.
Start with Docker. Connect Claude Desktop in five minutes.