samanhappy

mcphub

Built by samanhappy โ€ข 1,932 stars

What is mcphub?

A unified hub for centrally managing and dynamically orchestrating multiple MCP servers/APIs into separate endpoints with flexible routing strategies

How to use mcphub?

1. Install a compatible MCP client (like Claude Desktop). 2. Open your configuration settings. 3. Add mcphub using the following command: npx @modelcontextprotocol/mcphub 4. Restart the client and verify the new tools are active.
๐Ÿ›ก๏ธ Scoped (Restricted)
npx @modelcontextprotocol/mcphub --scope restricted
๐Ÿ”“ Unrestricted Access
npx @modelcontextprotocol/mcphub

Key Features

Native MCP Protocol Support
Real-time Tool Activation & Execution
Verified High-performance Implementation
Secure Resource & Context Handling

Optimized Use Cases

Extending AI models with custom local capabilities
Automating system workflows via natural language
Connecting external data sources to LLM context windows

mcphub FAQ

Q

Is mcphub safe?

Yes, mcphub follows the standardized Model Context Protocol security patterns and only executes tools with explicit user-granted permissions.

Q

Is mcphub up to date?

mcphub is currently active in the registry with 1,932 stars on GitHub, indicating its reliability and community support.

Q

Are there any limits for mcphub?

Usage limits depend on the specific implementation of the MCP server and your system resources. Refer to the official documentation below for technical details.

Official Documentation

View on GitHub

MCPHub: The Unified Hub for Model Context Protocol (MCP) Servers

English | Franรงais | ไธญๆ–‡็‰ˆ

MCPHub makes it easy to manage and scale multiple MCP (Model Context Protocol) servers by organizing them into flexible Streamable HTTP (SSE) endpointsโ€”supporting access to all servers, individual servers, or logical server groups.

Dashboard Preview

๐ŸŒ Live Demo & Docs

๐Ÿš€ Features

  • Centralized Management - Monitor and control all MCP servers from a unified dashboard
  • Flexible Routing - Access all servers, specific groups, or individual servers via HTTP/SSE
  • Granular Group Visibility - Control Tool, Prompt, and Resource visibility independently for each server inside a group
  • Smart Routing - AI-powered tool discovery using vector semantic search (Learn more)
  • MCP Apps Proxy - Transparently forward interactive MCP Apps on single-server routes (Learn more)
  • Tool Result Compression - Transparently reduce large text tool outputs before they reach clients
  • Hot-Swappable Config - Add, remove, or update servers without downtime
  • OAuth 2.0 Support - Both client and server modes for secure authentication (Learn more)
  • Social Login - Seamless GitHub and Google login support with Better Auth integration (requires Database Mode)
  • Database Mode - Store configuration in PostgreSQL for production environments (Learn more)
  • Docker-Ready - Deploy instantly with containerized setup

๐Ÿ”ง Quick Start

Configuration

Create a mcp_settings.json file:

{
  "mcpServers": {
    "time": {
      "command": "npx",
      "args": ["-y", "time-mcp"]
    },
    "fetch": {
      "command": "uvx",
      "args": ["mcp-server-fetch"]
    }
  }
}

๐Ÿ“– See Configuration Guide for full options including OAuth, environment variables, and more.

Docker Deployment

# Run with custom config (recommended)
docker run -p 3000:3000 -v ./mcp_settings.json:/app/mcp_settings.json -v ./data:/app/data samanhappy/mcphub

# Or run with default settings (also mount ./data so credentials and state survive restarts)
docker run -p 3000:3000 -v ./data:/app/data samanhappy/mcphub

Two image variants are published under samanhappy/mcphub:

  • latest โ€” the default image. Includes Node.js/pnpm, Python, uv/uvx, Git, and build tools. Covers most MCP servers.
  • latest-full โ€” the extended image. Adds Rust toolchain (Cargo/rustc), Docker Engine, and Playwright browsers (Chrome + Firefox, amd64 only). Use this for Rust-based servers or container-in-container workflows. Larger download.

See Docker Setup for build options and Docker-in-Docker configuration.

Access Dashboard

Open http://localhost:3000 and log in with username admin. On first launch, if no ADMIN_PASSWORD environment variable is set, a random password is generated and printed to the server logs. You can also pre-set the password:

# Docker: set admin password via environment variable
docker run -p 3000:3000 -e ADMIN_PASSWORD=your-secure-password samanhappy/mcphub

Tip: Change the admin password after first login for security.

Headless mode: Set DISABLE_WEB=true to skip serving the bundled dashboard UI and run MCPHub with only the backend/API and MCP endpoints. This is useful when you want to manage servers directly from mcp_settings.json.

Connect AI Clients

Connect AI clients (Claude Desktop, Cursor, etc.) via:

http://localhost:3000/mcp           # All servers
http://localhost:3000/mcp/{group}   # Specific group
http://localhost:3000/mcp/{server}  # Specific server
http://localhost:3000/mcp/$smart    # Smart routing
http://localhost:3000/mcp/$smart/{group}  # Smart routing within group

Security note: MCP endpoints require authentication by default to prevent accidental exposure. To allow unauthenticated MCP access, disable Enable Bearer Authentication in the Keys section. Skip Authentication only affects dashboard login. Use only in trusted environments.

๐Ÿ“– See API Reference for detailed endpoint documentation.

Manage From the Terminal

The same mcphub binary doubles as a CLI for the running hub โ€” no extra install needed.

mcphub login --url http://localhost:3000 --username admin
mcphub servers list
mcphub servers add fetch --type stdio --command uvx --arg mcp-server-fetch
mcphub tools list                              # discover what tools are available
mcphub tools get fetch_url                     # see required params + sample command
mcphub call fetch_url url=https://example.com --json
mcphub keys create --name ci --access-type all

It also speaks the public marketplace API (mcphub discover, mcphub install ...) so server lookup and one-command install work against any hub with discovery enabled.

๐Ÿ“– See CLI Guide for every subcommand, profiles, and CI usage.

๐Ÿ“š Documentation

TopicDescription
Quick StartGet started in 5 minutes
ConfigurationMCP server configuration options
Database ModePostgreSQL setup for production
OAuthOAuth 2.0 client and server setup
Smart RoutingAI-powered tool discovery
MCP AppsInteractive Apps transparent proxy
CLI GuideManage and call the hub from a terminal
Docker SetupDocker deployment guide

๐Ÿง‘โ€๐Ÿ’ป Local Development

git clone https://github.com/samanhappy/mcphub.git
cd mcphub
pnpm install
pnpm dev

Local development uses admin / admin123 and stores its writable settings copy at data/mcp_settings.dev.json, so the repository mcp_settings.json stays credential-free.

For Windows users, start backend and frontend separately: pnpm backend:dev, pnpm frontend:dev

๐Ÿ“– See Development Guide for detailed setup instructions.

๐Ÿ” Tech Stack

  • Backend: Node.js, Express, TypeScript (ESM)
  • Frontend: React, Vite, Tailwind CSS
  • Storage: file-based mcp_settings.json by default; PostgreSQL via TypeORM with pgvector for Smart Routing
  • Auth: JWT + bcrypt for local accounts; bearer keys; built-in OAuth 2.0 server (@node-oauth/oauth2-server); optional Better Auth for GitHub/Google login
  • Protocol: Model Context Protocol SDK

๐Ÿ‘ฅ Contributing

Contributions welcome! See our Discord community for discussions and support.

โค๏ธ Sponsor

ko-fi

๐ŸŒŸ Star History

Star History Chart

๐Ÿ“„ License

Licensed under the Apache 2.0 License.

Global Ranking

-
Trust ScoreMCPHub Index

Based on codebase health & activity.

Manual Config

{ "mcpServers": { "mcphub": { "command": "npx", "args": ["mcphub"] } } }