Labsco
MCP SERVER

Put every MCP server you run behind one HTTP endpoint, then hand a client all of them, one group, one server, or a search over their tools.

MCP Plumbing: Proxies, Registries & Inspectors
Summary
One endpoint in front of every MCP server you run, with the routing decided per client.

What it takes off you is the fan-out: rather than registering ten servers in every client, you register the hub once and choose how much of it each client sees — everything, one group, one server, or only the tools that match the task.

What it is

A hub that connects to the MCP servers listed in your `mcp_settings.json` and re-exposes them over Streamable HTTP. A dashboard sits in front of it for adding, removing and updating servers without downtime.

What you get
  • Four ways to connect a client: `/mcp` for all servers, `/mcp/{group}` for a logical group, `/mcp/{server}` for one, and `/mcp/$smart` for AI-powered tool discovery using vector semantic search
  • Group-level control over which Tools, Prompts and Resources each server inside a group exposes
  • Per-server sharing — keep a server private, share it with selected users, or make it public
  • Tool result compression that shrinks large text outputs before they reach the client
  • OAuth 2.0 in both client and server modes, plus GitHub and Google login through Better Auth in Database Mode
  • The same `mcphub` binary as a CLI: `mcphub servers list`, `mcphub tools list`, `mcphub tools get`, `mcphub call`, `mcphub keys create`, and `mcphub discover` / `mcphub install` against the public marketplace API
  • Transparent forwarding of interactive MCP Apps on single-server routes
Requirements

A `mcp_settings.json` describing the servers to front. The quickest path is Docker: `docker run -p 3000:3000 -v ./mcp_settings.json:/app/mcp_settings.json -v ./data:/app/data samanhappy/mcphub`. The dashboard opens at http://localhost:3000 with username `admin`; without `ADMIN_PASSWORD` a random password is printed to the server logs on first launch. MCP endpoints require authentication by default. `DISABLE_WEB=true` runs it headless, and Database Mode stores configuration in PostgreSQL with pgvector for smart routing. The `latest-full` image adds a Rust toolchain, Docker Engine and Playwright browsers for servers that need them.

Setup effort

One command — docker run -p 3000:3000 -v ./mcp_settings.json:/app/mcp_settings.json -v ./data:/app/data samanhappy/mcphub