dsh-mcp-manager:在 DSH 裏管理 MCP 服務器

前言

在 DeepSeek Harness(DSH)裏接入一臺 MCP 服務器,常見做法是手工改 ~/.dsh/cordis.patch.yml:新條目要放在 insert: 列表裏,serverName 不能重複,憑據也不能以明文寫進 patch。任意一處不符合官方 @deepseek-ai/dsh-mcp-client 契約,條目可能掛不上,或配置重載直接失敗。社區插件 dsh-mcp-manager(維護者 shiliu153,分類 admin-security)把登記、探測、啓停、刪除和憑據輪換收斂成帶校驗的操作,並對接官方 MCP Registry 做發現與安裝。

這是什麼

dsh-mcp-manager 是 DSH 社區 bundle:對 patch 裏已登記的 MCP 服務器提供搜索、查看、探測、安裝、編輯、啓停、刪除與憑據輪換。寫入路徑統一走 DSH 加載器與官方字段規則校驗,通過後才原子落盤並保留 .bak;未通過校驗的候選內容不會寫入實際文件。同一套引擎驅動 Agent 工具(mcp_manager_*)、命令行 cli/mcp.js 與 Web 面板;市場以 MCP Registry 爲唯一目錄源,不引入繞過 patch 管線的路徑。

目錄頁:https://www.skillhub.cn/plugins/shiliu153/dsh-mcp-manager
源碼:https://github.com/shiliu153/dsh-mcp-manager

核心功能

Agent 工具

安裝後可用九個工具。寫入類工具默認只預演:先返回將要寫入的內容與校驗結果,確認無誤後以 confirm: true 再次調用。

工具 用途 需確認
mcp_manager_list 列出已登記服務器,憑據已掩碼 —
mcp_manager_search 搜索官方 MCP Registry —
mcp_manager_probe 對單臺或全部服務器真實握手 —
mcp_manager_validate 按官方 mcp-client 規則校驗條目 —
mcp_manager_credential 定位、掩碼顯示或輪換憑據 —
mcp_manager_add 從粘貼地址新增;source: "registry" 時按 registry 名解釋 是
mcp_manager_update 替換某條目的 config: 子樹 是
mcp_manager_toggle 啓用或禁用 是
mcp_manager_remove 移除條目 是

驗證插件是否掛載:調用 mcp_manager_list。有返回即表示已掛載;空列表在新環境下也屬正常。

支持的粘貼格式

mcp_manager_add 與 CLI add 接受四種形式,serverName 由輸入推導,可在預演階段調整:

粘貼內容 示例
npm 包名 @modelcontextprotocol/server-memory
GitHub 倉庫 https://github.com/modelcontextprotocol/servers
MCP 端點 https://mcp.example.com/mcp
JSON 配置 {"command":"npx","args":["-y","@upstash/context7-mcp"]}

命令行

與 Agent 工具共用引擎,零外部依賴,無需 harness 即可運行(包內提供 dsh-mcp 入口 ./cli/mcp.js)。常用子命令示例:

node cli/mcp.js list [--json]
node cli/mcp.js probe [--id <id>] [--timeout 60]
node cli/mcp.js search <query> [--limit 20] [--json]
node cli/mcp.js install <registry-name> [--version <v>] [--yes] [--no-probe]
node cli/mcp.js add "<npm-package | github-url | mcp-url | json>" [--yes] [--no-probe]
node cli/mcp.js enable|disable <id> --yes
node cli/mcp.js remove <id> --yes
node cli/mcp.js credential <id> get|set <value>

缺省 patch 路徑爲 $DSH_HOME/cordis.patch.yml 或 ~/.dsh/cordis.patch.yml;可用 --file <path> 指定。退出碼:0 成功,1 失敗,2 用法錯誤。

Web 面板與市場

啓用後,側邊欄插件頁下的 DSH MCP 管理器 列出已登記服務器:狀態點區分「已連接 / 已啓用未連接 / 已禁用 / 無法讀取實時註冊表」。支持探測、編輯 config: 子樹(校驗並預覽後再寫入)、啓停、刪除與新增(粘貼四種格式之一解析預覽後寫入)。面板頭部可一鍵併發探測全部服務器。

市場標籤只讀:搜索走官方 registry(僅按名稱匹配,界面會說明本地重排邏輯)。stdio 條目展示完整將要執行的命令行;遠程條目展示 URL。市場安裝不寫憑據——缺祕密字段時空缺而非佔位,裝完後首次探測 401 表示尚未補憑據,可用 CLI credential set 或 mcp_manager_credential 補上。面板不允許寫入原始 !!js 表達式;憑據輪換僅在 Agent 工具與命令行提供。

安裝與啓用

把下面一行交給 agent,或在 Web 側邊欄插件頁安裝同一地址:

plugin_manager install_bundle https://github.com/shiliu153/dsh-mcp-manager

安裝完成後即可使用 mcp_manager_* 工具;也可在插件目錄內用 node cli/mcp.js 獨立操作 patch 文件。

典型用法

  1. 先看現狀:Agent 調用 mcp_manager_list,或 node cli/mcp.js list --json。
  2. 從 registry 安裝:CLI node cli/mcp.js install <registry-name> --yes,或 Agent mcp_manager_search 後 mcp_manager_add(source: "registry"),預演確認再 confirm: true。
  3. 粘貼 npm / GitHub / URL / JSON 新增:mcp_manager_add 或 node cli/mcp.js add "...",同樣先預演再確認。
  4. 握手檢查:mcp_manager_probe 或 node cli/mcp.js probe。
  5. 補憑據:node cli/mcp.js credential <id> set <value> 或 mcp_manager_credential;市場裝完的條目常需這一步。
  6. 臨時停用:mcp_manager_toggle 或 node cli/mcp.js disable <id> --yes。

寫入管線在變更前做 .bak 備份;顯式確認(confirm: true 或 --yes)是默認安全策略的一部分。

適用場景與注意

適合需要在 DSH 裏反覆增刪 MCP、對照 registry 安裝、批量探測連通性、輪換 API 密鑰的開發者或運維,而不想每次手改 YAML 並對照官方字段文檔試錯。

使用前請注意:

  • 插件以當前 DSH 進程權限運行;mcp_manager_add、CLI add / install 以及 stdio 類 market 條目會觸發本機命令(例如 npx -y <包>),等同於在本機執行第三方代碼。安裝前應閱讀倉庫源碼與許可證(包版本在資料中爲 0.5.0,以倉庫當前 package.json 爲準)。
  • Registry 爲任何人可發佈,市場不表示條目經審覈;不支持 sse 傳輸及 cargo / nuget / mcpb 包類型的條目不會在市場展示。
  • 社區目錄 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本包是社區貢獻的 admin-security 類工具。

結尾

dsh-mcp-manager 把 cordis.patch.yml 上的 MCP 生命週期操作收成一條帶四重校驗與原子寫入的管線,並讓 Agent、CLI 與 Web 共用同一實現。若你已在 DSH 裏接多個 MCP,可先 mcp_manager_list 再按需探測或從 registry 安裝。

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

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

小夜