dsh-wall-mcp-manager:集中管理 MCP 服務配置與工具契約

前言

在使用 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 服務的管理成本,並通過嚴格的憑據脫敏保障了安全。更多細節可查閱官方目錄或源碼倉庫。

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

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

小夜