Run MCP
with auth, logs, and routing.
MCPHub started as a small config tool. Teams now use it to run MCP servers with auth, routing, logs, and shared access.
Centralized management
Monitor health, latency, and tool usage for each MCP server. Start, stop, hot-reload, and manage server authentication and OAuth connections from the dashboard.
- Real-time health checks per server
- Hot-reload without restarting clients
- Tool-call activity logs with user, API key, status, latency, and source IP
Four routing modes, one config
Different teams need different views into your MCP fleet. MCPHub exposes the same servers through four URL patterns so you can mix aggregate, scoped, and direct access 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.61OAuth 2.0 for clients and servers
Secure MCP access 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_issuesGroups & 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 endpoint.
Start with Docker. Connect Claude Desktop in five minutes.