前言¶
在 DeepSeek Harness(DSH)裏接 MCP(Model Context Protocol)時,常見做法是把各 server 寫進 profile 的 YAML:改一行就要找配置、重啓或等插件掛載,連接是否成功也要靠日誌或對話裏試工具。對需要經常換 server、調參數、驗證握手的開發者來說,入口偏深、狀態不直觀。
下面介紹社區插件 dsh-mcp-manager(維護者 HalcyonAzure)。它在 DSH 左側欄提供 MCP servers 面板,用表單增刪改 server,並在保存前做 Test connection;與 Settings → MCP servers、Plugins → MCP servers → Configure 共用同一套編輯器。分類上屬於 客戶端 插件(client.js 註冊側欄與主區 UI),主機側則用 @deepseek-ai/dsh-mcp-client 掛載各 server。
這是什麼¶
dsh-mcp-manager 的定位是:在 DSH 圖形界面裏管理 MCP server 列表,替代反覆手改 profile YAML。Server 列表保存在該插件行的 config.servers 中,由 UI 經 DSH 配置編輯器寫入。
當前 package 版本爲 1.1.0,許可證 MIT。DSH 社區目錄頁:https://www.skillhub.cn/plugins/HalcyonAzure/dsh-mcp-manager;源碼與說明:https://github.com/HalcyonAzure/dsh-mcp-manager(倉庫另有 README.zh.md)。
核心功能¶
經 README 覈實,插件提供的能力包括:
- 側欄入口:左側 MCP servers 打開主欄全頁,server 狀態一步可達,不必只在 Settings 裏翻。
- 兩種傳輸:stdio(本地命令)與 streamable HTTP(URL)。
- 保存前測試:Test connection 執行 MCP 握手並列出 server 暴露的工具。
- 運行態:每行有啓用開關;狀態爲 connected / connecting / failed / disabled;單次調用超時可設 1–600 秒,默認 60 秒。
- 密鑰與配置分離:普通環境變量、Header 寫在行配置裏;密鑰環境變量與 Secret Header 的值進 DSH credential store,行裏只保留 credential 密鑰名。
- 只讀 Agent 工具:
mcp_servers(list/test),模型可查看連接情況,不能增刪改 server 配置。 - 工具命名:遵循
mcp__<server-name>__<tool-name>。
依賴說明:需要帶 sidebar.panellist、main 槽位以及 @deepseek-ai/dsh-mcp-client 的 DSH 構建;README 寫明當前 DSH 發行版均具備。
安裝與啓用¶
官方步驟如下,請按界面操作,不要自行拼接未在文檔出現的 CLI 安裝串。
- 打開 Plugins → Add plugin,粘貼倉庫地址:
https://github.com/HalcyonAzure/dsh-mcp-manager
- 在左側欄點 MCP servers(或 Settings → MCP servers)。
- 點 Add server,填寫連接信息,Test connection,再 Save。
注意:Save 會重啓該插件行,所有 server 會重連,進行中的 MCP 調用會被打斷。
添加 server¶
stdio(本地程序)¶
| 字段 | 含義 |
|---|---|
| Name | 字母、數字、-、_,最多 32 字符;作爲工具名前綴 |
| Command | 絕對路徑或命令名,例如 npx 或 /usr/local/bin/my-server |
| Arguments | 每行一個參數 |
| Environment variables | 非密鑰的普通值 |
| Secret environment variables | credential 鍵名 + 值(值寫入憑證庫) |
| Working directory | 可選 |
streamable HTTP(遠程)¶
| 字段 | 含義 |
|---|---|
| Name | 規則同上 |
| URL | http:// 或 https:// 的 MCP 端點 |
| Headers | 普通請求頭 |
| Secret headers | credential 鍵名 + 值,存入憑證庫 |
密鑰值留空表示保留已存儲的值。
行狀態指示¶
每行有點狀標記與工具數量:connected(綠)、connecting(琥珀)、failed / not connected(紅)、disabled(灰)。失敗時會在行下顯示 server 返回的錯誤文本。
典型配置示例¶
除 UI 外,也可在 profile patch 中直接寫入插件行配置(與 README 一致):
- id: mcp-manager
name: dsh-mcp-manager
config:
servers:
- name: filesystem
enabled: true
transport: stdio
command: npx
args: ['-y', '@modelcontextprotocol/server-filesystem', '/tmp']
stdio 示例中,command 爲 npx,args 拉起 @modelcontextprotocol/server-filesystem 並指定目錄;保存後插件會爲每個啓用的 server 掛載一個 @deepseek-ai/dsh-mcp-client 子實例。
架構與安全¶
主機側(index.js)維護 server 列表,爲每個啓用的 server 掛載子 client,並向 UI 提供 api/mcp-manager.servers 與 api/mcp-manager.test。客戶端(client.js)註冊側欄、主面板、Settings 分區與插件行頁,爲通過 DSH 客戶端模塊加載的純 JavaScript,無構建步驟。
使用前建議知曉:
- stdio server 以你當前用戶身份執行你配置的命令,權限等同本機賬戶;只添加可信來源。
- 增刪改 server 僅限用戶在 UI 操作;Agent 工具不能改配置。
- 交給 stdio 進程的環境會剔除名稱匹配
*KEY*、*PASSWORD*、*SECRET*、*TOKEN*以及DSH_*的變量。 - 密鑰在插件 mount 時解析;缺失時會在行上報錯,不會靜默用空值頂替。
適用場景與注意¶
適合需要在 DSH 裏頻繁試用、開關、調試多個 MCP server 的開發者:側欄一鍵看狀態、保存前握手測工具列表,比純 YAML 迭代更快。
安裝社區插件前,習慣上應自行查看源碼與 MIT 許可證,並確認與當前 DSH 版本匹配。DSH 生態強調「一切皆插件」;skillhub.cn 上的插件目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係,本文介紹的倉庫亦屬社區維護(HalcyonAzure)。
本地二次開發時,README 說明可將檢出目錄作爲本地 bundle 在 Plugins → Add plugin 中選擇路徑安裝,改文件後刷新頁面即可,無需 bundler。
結尾¶
dsh-mcp-manager 把 MCP server 列表從 YAML 編輯搬到側欄與 Settings 的統一 UI:支持 stdio 與 HTTP、連接測試、憑證庫託管密鑰,併爲 Agent 提供只讀的 mcp_servers 查詢。