MCPHub logo

MCPHub

by samanhappy

MCPHub is a unified hub server that consolidates multiple MCP (Model Context Protocol) servers into a single SSE endpoint. It streamlines service management by offering a centralized interface for all your MCP server needs.

View on GitHub

Last updated: N/A

MCPHub: Deploy Your Own MCP Servers in Minutes

English | 中文版

MCPHub is a unified hub server that consolidates multiple MCP (Model Context Protocol) servers into a single SSE endpoint. It streamlines service management by offering a centralized interface for all your MCP server needs.

Dashboard Preview

Dashboard Preview

Features

  • Built-in featured MCP Servers: Comes with featured MCP servers like amap-maps, playwright, slack, and more.
  • Centralized Management: Oversee multiple MCP servers from one convenient hub.
  • Broad Protocol Support: Works seamlessly with both stdio and SSE MCP protocols.
  • Intuitive Dashboard UI: Monitor server status and manage servers dynamically via a web interface.
  • Flexible Server Management: Add, remove, or reconfigure MCP servers without restarting the hub.

Quick Start

Configuration (Optional but Recommended)

  • Customize your MCP server settings by creating the mcp_settings.json file. For example:
{
  "mcpServers": {
    "amap-maps": {
      "command": "npx",
      "args": [
        "-y",
        "@amap/amap-maps-mcp-server"
      ],
      "env": {
        "AMAP_MAPS_API_KEY": "your-api-key"
      }
    },
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest",
        "--headless"
      ]
    },
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    },
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-slack"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "your-bot-token",
        "SLACK_TEAM_ID": "your-team-id"
      }
    }
  },
  "users": [
    {
      "username": "admin",
      "password": "$2b$10$Vt7krIvjNgyN67LXqly0uOcTpN0LI55cYRbcKC71pUDAP0nJ7RPa.",
      "isAdmin": true
    }
  ]
}
  • The above example includes the amap-maps, playwright, fetch, and slack servers. You can add or remove servers as needed.

  • The users section allows you to set up user authentication. The default root user is admin with the password admin123. You can change them as needed.

  • The password is hashed using bcrypt. You can generate a new password hash using the following command:

    npx bcryptjs your-password
    

Starting MCPHub with Docker

Run the following command to quickly launch MCPHub with default settings:

docker run -p 3000:3000 samanhappy/mcphub

Run the following command to launch MCPHub with custom settings:

docker run -p 3000:3000 -v ./mcp_settings.json:/app/mcp_settings.json samanhappy/mcphub

Dashboard Access

Open your web browser and navigate to: http://localhost:3000, then login using the credentials you set in the mcp_settings.json file. The default credentials are:

  • Username: admin
  • Password: admin123

The dashboard provides:

  • Real-Time Monitoring: Keep an eye on the status of all MCP servers.
  • Service Status Indicators: Quickly see which services are online.
  • Dynamic Server Management: Add or remove MCP servers on the fly without needing to restart.

SSE Endpoint

Seamlessly connect your host applications (e.g., Claude Desktop, Cursor, Cherry Studio, etc.) to the MCPHub SSE endpoint at: http://localhost:3000/sse

Local Development

Clone the Repository

Clone MCPHub from GitHub:

git clone https://github.com/samanhappy/mcphub.git

Optional Configuration

Customize your MCP server settings by editing the mcp_settings.json file.

Start the Development Server

Install dependencies and launch MCPHub:

cd mcphub && pnpm install && pnpm dev

Community and Contributions

MCPHub started as a small side project that I developed on a whim, and I'm amazed at the attention it has received. Thank you all for your support!

Currently, MCPHub still has many areas that need optimization and improvement. Any contributions, whether in the form of code, documentation, or suggestions, are more than welcome.

License

This project is licensed under the Apache 2.0 license.