How to expose 20 MCP servers through one URL for your team
When to use: Engineers keep copy-pasting local configs and breaking each other's setups.
Prerequisites
- Docker and a server with a DNS name — Any cheap VPS works; use Caddy or nginx for TLS
- mcp_settings.json listing your servers — Start from the MCPHub sample and add one entry per MCP
Flow
-
Deploy the hubRun: docker run -p 3000:3000 -v $PWD/mcp_settings.json:/app/mcp_settings.json samanhappy/mcphub✓ Copied→ Admin login URL + generated password in logs
-
Create groupsIn the admin UI, create groups 'dev' (github, filesystem, postgres) and 'data' (postgres, bigquery).✓ Copied→ Groups visible at /mcp/dev and /mcp/data
-
Distribute the URLShare https://mcp.yourco.internal/mcp/dev with the team; they add it as a single HTTP MCP in their client.✓ Copied→ Team members connect with one config line
Outcome: A single operable endpoint replaces 20 per-machine setups.
Pitfalls
- Leaking the admin password from Docker logs — Set ADMIN_PASSWORD env var explicitly; rotate on first login
- Exposing the hub to the public internet — Put it behind a VPN or require bearer tokens per user