前言¶
在使用 DSH(DeepSeek Harness)開發智能體時,管理多個 MCP(Model Context Protocol)服務往往變得繁瑣。手動維護配置文件、處理服務掛載與卸載、以及在不暴露敏感信息的前提下查看工具契約,都是常見痛點。
這是什麼¶
@sduwall/dsh-wall-mcp-manager 是一個 DSH 插件,由開發者 sduwall 維護。它的核心作用是:集中管理 MCP 服務配置,並展示每個服務提供的工具、調用參數與返回契約。它不直接實現 MCP 協議,而是通過「對賬」機制,將配置清單收斂爲運行時的 MCP 實例。
核心功能¶
該插件提供以下能力:
1. 集中管理:所有 MCP 服務配置統一在 dsh-wall-mcp-manager 命名空間下管理。
2. 自動對賬:根據配置清單自動進行掛載、更新或卸載操作。修改配置後無需重啓 DSH 即可生效,連續保存操作會被串行化處理。
3. 契約展示:通過設置界面展示每個服務的工具列表、參數定義及返回結構。
4. 安全憑據:支持對環境變量和請求頭進行憑據脫敏處理。憑據內容與鍵名永不出網,界面僅顯示「已配置 / 未配置」。
安裝與依賴¶
本插件基於 Cordis Bundle 構建,屬於 DSH 生態的一部分。
- 依賴環境:
- DSH >= 0.1.2-alpha(推薦 >= 0.1.2-alpha.2)
- Node.js >= 20(DSH 內置 Node.js 版本 >= 22)
- 硬依賴服務:loader、tools
- 可選服務:settings(用於熱生效配置)、webServer(用於設置界面)
典型用法¶
在配置文件(通常爲 settings.yaml)的 dsh-wall-mcp-manager 命名空間下定義服務:
dsh-wall-mcp-manager:
servers:
filesystem:
enabled: true
transport: stdio
description: 本地文件訪問
command: npx
args:
- -y
- '@modelcontextprotocol/server-filesystem'
- D:/workspace
env:
LANG: zh_CN
secretEnv: # 憑據類環境變量,永不出網
API_TOKEN: xxx
toolCallTimeoutMs: 60000
weather:
transport: streamable-http
url: https://mcp.example.com/mcp
headers:
X-Trace: 'on'
secretHeaders: # 憑據類請求頭
Authorization: Bearer xxx
關鍵約定:
- 工具命名:DSH 內的工具公開名爲 mcp__<serverName>__<原始工具名>。
- 改名即換服務:修改 serverName 會重置該服務的所有工具,因此改名等於換一個服務。
- 憑據字段:secretEnv 和 secretHeaders 必須顯式配置(不要寫 {}),留空表示不修改。
界面與限制¶
- 本地迴環校驗:設置界面依賴 DSH 的 Web 服務,僅允許通過
127.0.0.1或::1訪問。通過遠程地址訪問 GUI 時無法讀寫配置。 - 憑據不回顯:界面僅顯示憑據是否已配置,不顯示具體值。寫入操作時留空表示不修改。
- 半成品保護:配置校驗失敗(如缺命令、名稱非法)只會跳過該項,不會導致整個插件卸載。
適用場景與安全¶
- 適用場景:需要頻繁增刪改 MCP 服務、希望在不重啓 DSH 的情況下動態調整服務狀態、需要通過界面直觀查看工具契約的開發者。
- 權限與安全邊界:
- 命令執行:可拉起本地子進程(按 DSH 進程身份執行),請確保來源可信。
- 網絡訪問:僅通過配置的遠程 URL 連接,配置橋僅監聽本機迴環,避免權限泄露。
- 文件訪問:不讀寫用戶文件系統,僅在內存中讀寫配置。
結語¶
該插件通過集中配置與熱生效機制,降低了 MCP 服務的管理成本,並通過嚴格的憑據脫敏保障了安全。更多細節可查閱官方目錄或源碼倉庫。