跳到主要內容

    MCP Hub

    本機自架的 MCP 聚合器,附 macOS 與 Windows 原生 app。Claude 只連一個 Hub,下游十幾台 MCP server 的工具由 Hub 合併出來,開關、分類、加密的金鑰和每一次呼叫的紀錄都在 app 裡。

    下載GitHub

    現況
    維護中
    平台
    macOS 14(Apple Silicon)、Windows 10 1809+
    技術
    Python、FastAPI、MCP Python SDK、anyio、SQLite、SwiftUI、WPF
    授權
    MIT

    MCP(Model Context Protocol)是 Claude 這類 AI 接外部工具的協定。每多接一個 MCP server,Claude 的設定檔就多一段,金鑰散在各處,也很難一眼看出接了哪些。MCP Hub 讓 Claude 只連它一個,下游的開關、分類、金鑰和呼叫紀錄都在 app 裡管。每個人跑自己的 Hub,資料只留在自己的機器上。

    架構

    Hub 有兩個角色:對 Claude 是 MCP server,對下游是 MCP client,連上下游就自動抓工具清單。兩台下游可能有同名的工具,所以合併時一律加上命名空間,變成 下游__工具名。

    AI client Claude Desktop、Code、Codex 原生 app SwiftUI/WPF hub_server 聚合器 轉發呼叫、寫紀錄 actions.db gateway.web 後端 JSON API、健康檢查 遠端 MCP(HTTP) 本機 MCP(stdio) 自訂工具(HTTP API) 工具合併成 下游__工具名 stdio HTTP
    兩個程序共用同一個 SQLite 檔。app 裡改的設定,聚合器下一次讀資料庫就生效。

    後端 python -m gateway.web 是給原生 app 用的 JSON API,順便在背景定時檢查下游。聚合器 python -m gateway.hub_server 由 Claude 用 stdio 啟動,讀資料庫、握著下游的連線、轉發呼叫、記紀錄。兩個程序沒有直接溝通,靠 actions.db 交換狀態。

    這個設計有個坑。Claude 啟動聚合器的指令要帶 PYTHONPATH、MCP_HUB_DB、MCP_HUB_KEY 三個環境變數,少一個,聚合器就去讀另一份空的資料庫。app 裡設定的東西一個都不會出現,也不會有任何錯誤訊息。所以 app 的「接上」按鈕直接幫你寫 Claude Desktop、Claude Code、Codex CLI 的設定檔:寫之前先備份,只動 my-hub 那一段。Codex 的 TOML 用文字層級增修,不整份讀成 dict 再寫回去,那樣會把註解全弄丟。

    能做什麼

    安裝

    到 Releases 下載,Python 和 .NET 的執行環境都包在裡面。

    Intel Mac 沒有預先打包的版本,GitHub 免費的 Intel runner 已經退役,要用得在 Intel 機器上自己 make dist。

    還沒做完的

    Windows app 的邏輯有單元測試,但還沒有人在真的 Windows 桌面上完整操作過一輪,版面與互動只過了編譯器和型別檢查。Windows 版目前也少全域快捷鍵、OpenAPI 匯入、Skill 調適和系統通知。

    這頁內容最後對照 repo 是 。