dsh-mcp-manager:爲 DSH 增加運行時 MCP 服務器管理

前言

在 DSH 中使用 MCP 服務器時,如果只在配置裏靜態接入,增刪服務器、啓停連接或重連通常都需要改配置並重啓。dsh-mcp-manager 爲 DSH 提供運行時 MCP 服務器管理能力,把添加、刪除、啓停和重連放到插件內完成,並把服務器註冊表持久化到本地 JSON 文件。

下面介紹它的功能、安裝方式、典型用法和需要注意的邊界。

這是什麼

dsh-mcp-manager 是一個 DeepSeek Harness(DSH)插件組合包,用於爲 dsh 提供運行時 MCP 服務器管理能力。

它支持兩種傳輸方式:

stdio
streamable-http

橋接工具沿用以下命名契約:

mcp__<serverName>__<rawName>

這與 @deepseek-ai/dsh-mcp-client 保持一致。

許可證爲 MIT。package.json 聲明 engines 要求:

node >=20

核心功能

運行時管理

插件支持在運行過程中添加、刪除、啓停和重連 MCP 服務器。

服務器註冊表使用持久化 JSON,默認路徑爲:

$DSH_HOME/mcp-manage/servers.json

重啓後會自動重連。

智能體工具

插件提供六個智能體工具:

mcp_manage_list
mcp_manage_add
mcp_manage_remove
mcp_manage_set_enabled
mcp_manage_reload
mcp_manage_tools

這些工具用於在會話中對 MCP 服務器做管理操作。

Web UI

Web UI 提供:

設置 → MCP 服務器

頁面可以可視化添加、編輯、啓停、重連和刪除服務器,並查看狀態、錯誤與工具列表。

運行細節

  • envheadersurl 支持 ${VAR} 展開。
  • 註冊表文件採用原子寫入。
  • 斷線後按指數退避重連。
  • 監聽 MCP tools/list_changed,進行工具列表熱同步。
  • stdio 子進程環境會剔除憑據形狀變量與全部 DSH_* 變量,再合併顯式 env

安裝與啓用

安裝命令如下:

dsh plugin --profile <name> add github:HenC49/dsh-mcp-manager

安裝後,重啓該 profile(例如 dsh web 等)生效。當前生產 Web profile 的 HMR 默認關閉,新增或更新插件包後需要重啓宿主。

卸載命令:

dsh plugin --profile <name> remove dsh-mcp-manager

注意,卸載不會刪除:

$DSH_HOME/mcp-manage/servers.json

其中可能包含 env/headers 等敏感信息。如果不再需要該配置,徹底清理時手動刪除:

$DSH_HOME/mcp-manage/

典型用法

在會話中添加服務器

可以直接在會話中描述需求:

幫我添加一個 filesystem MCP 服務器,命令 npx -y @modelcontextprotocol/server-filesystem /Users/me/project

模型會調用 mcp_manage_add 來添加該服務器。

在 Web UI 中維護

進入 Web UI 的:

設置 → MCP 服務器

可以添加、編輯、啓停、重連或刪除服務器,並查看連接狀態、錯誤信息和已註冊工具。

手工編輯註冊表

手工編輯:

$DSH_HOME/mcp-manage/servers.json

改動會在下一次宿主重啓或 mcp_manage_reload 後生效。該註冊表文件沒有文件監聽。

運行測試

pnpm install
pnpm test

適用場景與注意

dsh-mcp-manager 適合需要在會話或 Web UI 中維護 MCP 服務器、並儘量減少改配置和重啓的場景。它也適合希望保持 @deepseek-ai/dsh-mcp-client 工具命名一致的 DSH 部署。

使用前需要明確:該插件會運行在當前 dsh 宿主進程中。安裝前應檢查源碼與許可證,確認其權限模型符合本機安全要求。

具體注意:

  • mcp_manage_add 可以讓智能體在宿主進程中 spawn 任意命令,與 bash 工具權限同級。如果部署上需要收緊,建議通過權限預設啓用審批。
  • ${VAR} 展開讀取 dsh 宿主進程環境變量。不要把宿主敏感憑據變量名透傳給不可信 MCP 服務器。
  • 當前僅橋接 tools。MCP resources 與 prompts 與 dsh-mcp-client 一樣暫緩。
  • HTTP 傳輸的可達性錯誤按請求逐次暴露,不觸發 stdio 式進程守護重啓。
  • 配置頁當前每次打開時讀取一次列表,操作成功後刷新,不主動訂閱其它瀏覽器標籤頁的即時變化。

鏈接

倉庫地址:

https://github.com/HenC49/dsh-mcp-manager
羽毛球分组比赛记分
小程序二维码

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

小夜