← Back to directory
M

MCP Hub

Community
A central coordinator for managing multiple MCP servers behind one unified endpoint
GitHub source repository ↗
★ 517 Stars Category · Dev Tools Popular
63FMRS · C

MCP Hub focuses on centralized orchestration and monitoring of multiple MCP servers, with highlights including a single /mcp endpoint aggregating all capabilities, automatic namespacing to avoid conflicts, real-time SSE events, and VS Code config compatibility. It does not implement Roots, Sampling or Completion, and it ships no domain-specific tools of its own; note the security surface created by ${cmd:} command execution and secret injection.

Reliability
10/20
Security and permissions
9/20
Maintenance
14/20
Documentation
16/20
Setup experience
14/20
Read the FMRS scoring method →

MCP Hub acts as a central coordinator between MCP servers and clients, exposing two interfaces: a management interface (/api/*) for controlling multiple MCP servers through a unified REST API and web UI, and an MCP server interface (/mcp) that lets any MCP client reach all managed server capabilities through a single endpoint. It implements the MCP 2025-03-26 specification, supports stdio, streamable-http and SSE transports, OAuth 2.0 with PKCE and header-based tokens, and adds server lifecycle management, health monitoring, auto-reconnection, hot reload, SSE-based real-time events, and VS Code configuration compatibility.

Setup

  1. Install globally: npm install -g mcp-hub.
  2. Prepare a JSON config file (JSON5 supported, VS Code servers/mcpServers keys and ${} placeholders supported).
  3. Start the hub: mcp-hub --port 3000 --config path/to/config.json (repeat --config to merge multiple files in order).
  4. Point your MCP client at the single endpoint, e.g. for Claude Desktop: {"mcpServers":{"Hub":{"url":"http://localhost:37373/mcp"}}}.

Requires Node.js >= 18.0.0.

claude_desktop_config.json
{
  "mcpServers": {
    "Hub": {
      "url": "http://localhost:37373/mcp"
    }
  }
}

Fit and risk

Best for

  • Developers orchestrating several MCP servers at once
  • Users who want a single endpoint configured in their MCP clients
  • Automation that needs live status and capability-change notifications

Not for

  • Users who only need one simple MCP server and no middle layer
  • Clients requiring Roots, Sampling or Completion capabilities (not supported)
  • Environments without Node.js 18+

Required permissions

  • Read and parse the specified JSON configuration files
  • Execute local commands through ${cmd:} placeholders while resolving configuration
  • Inject MCP_HUB_ENV and per-server env variables into managed child processes
  • Spawn stdio child processes using the configured command/args
  • Make network requests to configured remote URLs with custom auth headers
  • Write log and workspace cache files under the XDG state directory

Risks and side effects

  • ${cmd: command args} executes arbitrary local commands during config resolution, which is risky if the config is tampered with
  • Starting local stdio servers is equivalent to running arbitrary commands with your user privileges
  • MCP_HUB_ENV and server env values may hold secrets that can leak if configs or logs are readable by others
  • Remote server credentials (OAuth, Bearer tokens) must be stored securely
  • Misconfigured --auto-shutdown can terminate the hub unexpectedly

Troubleshooting

  1. If the hub fails to start, check that Node.js is >= 18.0.0
  2. If clients cannot connect, verify the port and the /mcp path (example default is 37373)
  3. If configuration is ignored, confirm the --config paths and remember later files override earlier ones
  4. If variables or commands do not resolve, check the ${} placeholder syntax and `${cmd:}` output
  5. For port conflicts, inspect the workspace cache at $XDG_STATE_HOME/mcp-hub/workspaces.json and clean stale entries
  6. For diagnostics, check logs at $XDG_STATE_HOME/mcp-hub/logs/mcp-hub.log

Use cases

Connect many MCP servers to a client such as Claude Desktop through one endpoint
Manage startup, shutdown and configuration of local (stdio) and remote (streamable-http/SSE) MCP servers
Monitor server status and capability changes in real time via REST API or SSE events
Reuse the same mcp.json across VS Code and MCP Hub
Call MCP tools and resources from Neovim via mcphub.nvim

Supported clients

Claude DesktopFull support
ClineFull support
Neovim (mcphub.nvim)Full support