前言¶
在 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 文件。
典型用法¶
- 先看現狀:Agent 調用
mcp_manager_list,或node cli/mcp.js list --json。 - 從 registry 安裝:CLI
node cli/mcp.js install <registry-name> --yes,或 Agentmcp_manager_search後mcp_manager_add(source: "registry"),預演確認再confirm: true。 - 粘貼 npm / GitHub / URL / JSON 新增:
mcp_manager_add或node cli/mcp.js add "...",同樣先預演再確認。 - 握手檢查:
mcp_manager_probe或node cli/mcp.js probe。 - 補憑據:
node cli/mcp.js credential <id> set <value>或mcp_manager_credential;市場裝完的條目常需這一步。 - 臨時停用:
mcp_manager_toggle或node cli/mcp.js disable <id> --yes。
寫入管線在變更前做 .bak 備份;顯式確認(confirm: true 或 --yes)是默認安全策略的一部分。
適用場景與注意¶
適合需要在 DSH 裏反覆增刪 MCP、對照 registry 安裝、批量探測連通性、輪換 API 密鑰的開發者或運維,而不想每次手改 YAML 並對照官方字段文檔試錯。
使用前請注意:
- 插件以當前 DSH 進程權限運行;
mcp_manager_add、CLIadd/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 安裝。