dsh-mcp-manager:在 DSH 設置頁管理 MCP 服務器

前言

DSH 強調“一切皆插件”。在 DSH 中接入 MCP 服務器時,手工維護配置、判斷掛載狀態、管理啓停和密鑰引用會比較繁瑣。@fishlikewater/dsh-mcp-manager 在 DSH 設置頁提供「MCP 服務器」入口,宿主側按配置熱掛載或卸載 @deepseek-ai/dsh-mcp-client 實例。下面介紹它的功能、安裝方式和注意點。

這是什麼

  • 包名:@fishlikewater/dsh-mcp-manager
  • 維護者:fishlikewater
  • 許可證:MIT
  • Node 要求:>=18

定位:MCP 服務器管理器。

它在 DSH 設置頁列出、新增、編輯、刪除 MCP 服務器,並把配置持久化到 settings.yaml 的 mcp 命名空間(mcp.servers)。宿主側再按這些配置動態掛載 @deepseek-ai/dsh-mcp-client 實例。

運行時由宿主側提供:

  • @deepseek-ai/cordis ^4.0.1
  • @deepseek-ai/dsh-mcp-client ^0.1.0-rc.6

插件依賴:

  • @deepseek-ai/schemastery ^3.18.1

核心功能

設置頁管理

設置頁可以列出、新增、編輯、刪除 MCP 服務器,並顯示掛載狀態。

每臺服務器有 enabled 開關:

  • 關閉:立即停止對應實例並移除工具
  • 開啓:重新掛載並註冊工具

開關狀態隨配置持久化,重啓 DSH 後保持。

傳輸方式

支持:

  • stdio:本地命令
  • streamable-http:遠程 URL

真實掛載狀態

連接失敗、重連中、重連成功、放棄重連等異步事件會即時反映到設置頁,而不是隻顯示“已掛載”。

併發保存保護

GET/POST 攜帶 rev 修訂號,作爲樂觀鎖。

如果配置被其他窗口改過,保存會返回 409 並提示刷新,避免靜默覆蓋。

服務器選項

每臺服務器可配置:

  • toolCallTimeoutMs:工具調用超時
  • failOnStartupError:啓動失敗即報錯

密鑰引用

env / headers 的值支持:

  • env:NAME
  • cred:NAME

掛載時解析,settings.yaml 中只保存引用文本。

headless profile

在沒有 webServer 服務的 headless profile 中,插件會跳過 HTTP 接口,只做實例管理。

安裝與啓用

先確認已安裝 dsh CLI 和 pnpm;dsh plugin 命令會轉發給 pnpm。

從 npm 安裝:

dsh plugin --profile web add @fishlikewater/dsh-mcp-manager

從本地 checkout 安裝:

dsh plugin --profile web add ./path/to/dsh-mcp-manager

驗證組合樹:

dsh --profile web --dump-config

如果配置正確,輸出中應能看到 mcp-manager 行。

重啓 dsh 進程後生效。隨後刷新瀏覽器頁面,打開「設置 → MCP 服務器」。

卸載:

dsh plugin --profile web remove @fishlikewater/dsh-mcp-manager

典型用法

初始示例

examples/mcp-servers.example.yaml 給出 settings.yaml 中 mcp 命名空間的示例。可將其合併進:

$DSH_HOME/settings.yaml

再從設置頁調整。

HTTP 接口

設置頁使用以下接口:

方法 路徑 說明
GET /api/mcp/servers 返回 { rev, servers, status }
POST /api/mcp/servers 請求體爲 { rev?, servers: [...] },整體替換並觸發重掛載

當 rev 與當前修訂不符時,返回 409 並提示刷新。

保存與熱生效

保存後,配置寫入 settings.yaml 的 mcp 命名空間,並觸發宿主側重新掛載。

刪除、關閉某臺服務器後,對應實例停止,工具移除;開啓後重新掛載。

適用場景與注意

適合需要在 DSH 中維護多個 stdio 或 streamable-http MCP 服務器,且希望從設置頁啓停、查看狀態、使用密鑰引用、避免多窗口相互覆蓋的場景。

注意:

  • 插件以當前 dsh 進程權限運行。安裝前應檢查源碼、依賴和許可證。
  • 許可證爲 MIT。
  • 安裝或插件代碼改動後需要重啓 dsh 進程;保存配置本身可以熱生效。
  • 包名使用 scope 版 @fishlikewater/dsh-mcp-manager;無 scope 的 dsh-mcp-manager 已被他人佔用。
  • 設置頁導航圖標依賴外殼的類名哈希。DSH 升級後如果選擇器失效,會退回默認齒輪圖標,不影響功能。

結尾

@fishlikewater/dsh-mcp-manager 把 MCP 服務器配置、啓停、狀態和密鑰引用集中到 DSH 設置頁中處理,減少手工維護成本。

GitHub:

https://github.com/fishlikewater/dsh-mcp-manager

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜