/ 目錄 / 演練場 / mcphub
● 社群 samanhappy ⚡ 即開即用

mcphub

作者 samanhappy · samanhappy/mcphub

將所有 MCP 伺服器整合至單一端點——按群組分類、透過向量搜尋智慧路由,無需停機即可熱更換設定。

MCPHub 是一個 TypeScript 樞紐,可將多個 MCP 伺服器掛載至單一 HTTP 端點,支援按群組、按伺服器或透過向量語意搜尋的「智慧」路由器進行路由。支援 OAuth、社群登入及生產環境用的 PostgreSQL 模式。建議使用 Docker 進行部署。

為什麼要用

核心特性

即時演示

實際使用效果

mcphub.replay ▶ 就緒
0/0

安裝

選擇你的客戶端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcphub": {
      "command": "npx",
      "args": [
        "-y",
        "mcphub"
      ],
      "_inferred": true
    }
  }
}

開啟 Claude Desktop → Settings → Developer → Edit Config。儲存後重啟應用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcphub": {
      "command": "npx",
      "args": [
        "-y",
        "mcphub"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcphub": {
      "command": "npx",
      "args": [
        "-y",
        "mcphub"
      ],
      "_inferred": true
    }
  }
}

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcphub": {
      "command": "npx",
      "args": [
        "-y",
        "mcphub"
      ],
      "_inferred": true
    }
  }
}

格式與 Claude Desktop 相同。重啟 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcphub",
      "command": "npx",
      "args": [
        "-y",
        "mcphub"
      ]
    }
  ]
}

Continue 使用伺服器物件陣列,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "mcphub": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "mcphub"
        ]
      }
    }
  }
}

加入 context_servers。Zed 儲存後熱重載。

claude mcp add mcphub -- npx -y mcphub

一行命令搞定。用 claude mcp list 驗證,claude mcp remove 移除。

使用場景

實戰用法: mcphub

如何透過單一 URL 將 20 個 MCP 伺服器開放給團隊使用

👤 平台工程師、團隊負責人 ⏱ ~30 min intermediate

何時使用: 工程師不斷複製貼上本機設定,導致彼此環境互相干擾。

前置條件
  • Docker 以及具備 DNS 名稱的伺服器 — 任何低成本 VPS 均可;使用 Caddy 或 nginx 處理 TLS
  • 列出所有伺服器的 mcp_settings.json — 從 MCPHub 範例出發,每個 MCP 新增一筆設定
步驟
  1. 部署樞紐
    執行:docker run -p 3000:3000 -v $PWD/mcp_settings.json:/app/mcp_settings.json samanhappy/mcphub✓ 已複製
    → 日誌中出現管理員登入網址與產生的密碼
  2. 建立群組
    在管理員介面中,建立「dev」群組(github、filesystem、postgres)與「data」群組(postgres、bigquery)。✓ 已複製
    → 群組可分別在 /mcp/dev 與 /mcp/data 存取
  3. 發布網址
    將 https://mcp.yourco.internal/mcp/dev 分享給團隊,成員只需在用戶端新增一條 HTTP MCP 設定即可。✓ 已複製
    → 團隊成員以單行設定完成連線

結果: 單一可操作端點取代 20 台機器各自的設定。

注意事項
  • 管理員密碼從 Docker 日誌外洩 — 明確設定 ADMIN_PASSWORD 環境變數;首次登入後立即變更
  • 將樞紐直接暴露於公開網路 — 置於 VPN 後方,或要求每位使用者提供 Bearer Token

如何讓 $smart 自動為提示詞選擇正確的 MCP

👤 執行過多工具、難以納入單一上下文的團隊 ⏱ ~15 min advanced

何時使用: 跨多個 MCP 擁有 200 個以上的工具,超出模型的工具數量上限。

步驟
  1. 啟用 $smart 端點
    將用戶端指向 https://hub.example.com/mcp/$smart,而非特定伺服器。✓ 已複製
    → 對外僅暴露一個依意圖路由的元工具
  2. 以自然語言提問
    找出 github.com/org/repo 中等待我處理的 PR,並在行事曆上建立 30 分鐘的審查時間區塊。✓ 已複製
    → 樞紐在背後自動選擇 github 與 google-calendar 工具

結果: 上下文中的工具數量減少,功能不打折。

注意事項
  • 智慧路由器在提示詞語意模糊時選錯 MCP — 保留按群組路由的端點作為備援

如何在不停機的情況下將新 MCP 伺服器加入樞紐

👤 維運人員 ⏱ ~5 min beginner

何時使用: 有新的 MCP 發布,希望當天即可上線,且不影響現有使用者連線。

步驟
  1. 透過介面編輯 mcp_settings.json
    在 MCPHub 管理介面中新增一筆伺服器設定並儲存。✓ 已複製
    → 熱重載通知出現,新工具顯示於列表
  2. 指派至群組
    將新伺服器加入「data」群組。✓ 已複製
    → /mcp/data 路由現已包含新工具

結果: 新 MCP 在一分鐘內上線,用戶端無需重新連線。

組合

與其他 MCP 搭配,撬動十倍槓桿

mcphub + toolhive

使用 ToolHive 將各個 MCP 容器化,再透過 MCPHub 進行路由

Register my ToolHive-run github MCP in MCPHub under the 'dev' group.✓ 已複製
mcphub + proxy

將僅支援 stdio 的 MCP 透過 HTTP 方式暴露給樞紐

Use mcp-proxy to bridge my local stdio MCP to HTTP so MCPHub can mount it.✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
(meta) route-by-group HTTP path /mcp/{group} 日常使用——縮小影響範圍 free
(meta) route-by-server /mcp/{server} 當你只需要單一伺服器的工具時使用 free
(meta) $smart semantic router /mcp/$smart 當上下文中工具數量過多時使用 1 vector search per call

成本與限制

運行它的成本

API 配額
樞紐本身不設配額限制;各下游 MCP 維持各自的配額
每次呼叫 Token 數
每次呼叫增加約 50 個 token 的工具元資料負擔
費用
免費(開源,Apache 2.0 授權)
提示
使用群組路由而非 $smart,可確保行為確定性,同時避免額外的向量搜尋費用。

安全

權限、密鑰、影響範圍

最小權限: Bearer token per user Network-level restriction to trusted clients
憑證儲存: 透過 ADMIN_PASSWORD 環境變數設定;下游 MCP 的金鑰透過 mcp_settings.json 或金鑰管理工具設定
資料出站: 樞紐僅作為代理——你的資料會依各下游 MCP 的設定傳送至對應目的地
切勿授予: Public exposure without auth Admin UI on the open internet

故障排查

常見錯誤與修復

Cannot log in / password unknown

首次啟動時檢查容器日誌中產生的密碼,或明確設定 ADMIN_PASSWORD。

驗證: docker logs mcphub | grep -i password
New MCP shows up but no tools

下游 MCP 可能啟動失敗,請點擊伺服器卡片上的「Logs」查看日誌。

Smart router returns 'no matching tool'

前往「Settings > Index tools」重新建立向量索引。

OAuth redirect mismatch

在 OAuth 提供者後台登錄完整的回呼 URL(必須與樞紐的公開 URL 完全一致)。

替代方案

mcphub 對比其他方案

替代方案何時用它替代權衡
Unla (MCP Gateway)需要以 YAML 驅動 REST 轉 MCP 轉換,並支援多租戶架構時基於 Go 語言開發,維運模式與 MCPHub 不同
ToolHive需要為每個 MCP 提供容器層級隔離時專注於執行 MCP,路由與聚合功能較弱
mcp-proxy只需要傳輸層橋接,不需要多伺服器聚合時僅支援單一伺服器;無管理介面

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills