dsh-skill-mcp-manager:DeepSeek Harness 的 SKILL & MCP 一站式管理

前言

DeepSeek Harness (DSH) 是一個基於插件的智能體開發框架。在開發複雜工作流時,管理大量的 SKILL 和 MCP (Model Context Protocol) 服務器往往面臨兩個痛點:一是配置分散,難以在統一的界面中查看和管理;二是 MCP 服務器的工具定義會直接佔用 Token 上下文,導致上下文膨脹或啓動延遲。dsh-skill-mcp-manager 是一個宿主級插件,旨在解決上述問題,提供可視化的 SKILL 與 MCP 管理,並實現 MCP 的按需加載。

插件概覽

  • 名稱:dsh-skill-mcp-manager
  • 功能:One-stop SKILL & MCP manager — a host-level plugin for DeepSeek Harness with MCP on-demand loading.
  • 所有者:alone-tree
  • 許可證:MIT
  • GitHub:https://github.com/alone-tree/dsh-skill-mcp-manager
  • 版本:1.1.7

核心功能

1. One-stop 視覺管理

插件將 SKILL 和 MCP 的管理集成到 DSH 的設置頁面中,無需層層深入配置文件。用戶可以直接在界面中啓用/禁用 SKILL 和 MCP,查看每個工具的描述,甚至直接打開 SKILL 的源碼進行編輯。對於 MCP,可以獨立控制單個工具的啓用/禁用狀態,被禁用的工具對 AI 不可見,且不影響同一服務器上的其他工具。

2. MCP 按需加載

這是插件的核心特性。在會話開始時,MCP 服務器僅暴露其 名稱 + 簡短工具描述,而不發送完整的工具 Schema。
* 平衡 Token 消耗與功能:避免發送冗長的 Schema 導致上下文膨脹,同時保留 AI 探索可用工具的能力。
* 無啓動延遲:服務器僅在 AI 實際需要時才建立連接。
* 非致命錯誤:按需加載失敗不會阻塞會話,允許後續重試或手動重載。

3. 每會話獨立實例與熱重載

  • 獨立實例:每個 DSH 會話(包括子代理)都會創建自己獨立的 MCP 實例。這確保了併發會話之間不會互相干擾,特別是對於需要狀態的工具(如 Playwright 瀏覽器實例)。
  • 熱重載:在當前會話中運行 /mcp_load 命令即可重新連接 MCP 服務器並刷新工具列表,無需重啓 DSH 或開啓新會話,極大便利了本地開發調試。

4. SKILL 深度掃描與隱藏

  • 深度掃描:插件會遞歸掃描目錄中的 <dir>/SKILL.md 文件,支持連接任意深度的外部技能庫目錄。
  • 臨時隱藏:隱藏 SKILL 會在配置中寫入 disable-model-invocation,使其對模型不可見,但保留 /name 等命令接口,方便開發者調試或臨時屏蔽特定技能。

安裝與啓用

安裝

使用官方 CLI 安裝插件到指定 Profile:

dsh plugin --profile <profile> add dsh-skill-mcp-manager

配置

安裝後,需要在 Profile 的 cordis.patch.yml 中添加配置條目。示例配置如下:

- insert:
    - id: skill-mcp-manager
      name: 'dsh-skill-mcp-manager'
      config:
        dataDir: ''            # 空字符串則使用默認路徑 ~/.dsh/skill-mcp-manager
        profile: web           # 指定要管理的 Profile 名稱
        trialTimeoutMs: 30000
        toolCallTimeoutMs: 60000
        catalogDescriptionMaxLength: 500
        toolDescriptionMaxLength: 150   # 目錄中工具描述的截斷長度(可調整)
        importNativeMcp: true           # 啓動時自動接管原生 dsh-mcp-client 配置

配置完成後重啓 Profile。插件運行在宿主層,因此 mcp_register、mcp_load 等工具對所有會話可見。

使用方法

UI 管理界面

打開 Settings → Capability:
* SKILL 標籤頁:顯示所有管理的 SKILL(按路徑排序)。支持切換模型可見性、在編輯器中打開、跨平臺刪除。系統內置的 SKILL(位於 node_modules 或 app.asar)爲只讀。
* MCP 標籤頁:顯示已註冊的服務器,包含 Tier 標記和工具計數。支持切換 Tier、查看詳細配置(命令、環境變量、頭部信息)、啓用/禁用單個工具、查看或隱藏密鑰、刷新快照。

模型工具接口

插件爲模型提供了三個管理工具。

1. mcp_register

添加或修改 MCP 配置。該工具會先進行試連接(Trial-connect)並列舉工具,只有配置正確纔會持久化。

mcp_register { name, tier?, transport, command?, args?, env?, cwd?, url?, headers?, notes? }
  • tier:eager | on-demand | disabled(默認 on-demand)。
  • notes:用戶備註,不會被服務器更新覆蓋。

2. mcp_load

在當前會話中加載或熱重載指定的 MCP 服務器實例。

/mcp_load { name, peek? }
  • 不帶 peek 時:連接服務器,獲取完整工具定義並刷新會話快照。
  • 帶 peek: true 時:僅讀取快照,不進行實際連接,適合在不改變連接狀態的情況下查看描述。

3. /mcp prepare-uninstall

在卸載插件前執行此命令。它將所有由插件接管並標記爲禁用的 MCP 配置重新啓用,並將其完整配置交還給原生 dsh-mcp-client。這確保了移除插件後不會丟失 MCP 配置。

設計與注意事項

  • Profile 範圍:插件僅管理其安裝所在的 Profile,不會越權管理其他配置。
  • 原生配置接管:安裝時,插件會將 Profile 中的原生 dsh-mcp-client 行導入到能力庫中,並在原生層默認禁用。卸載前務必執行 /mcp prepare-uninstall。
  • 安全性:插件以宿主進程權限運行,請確保安裝來源可信(GitHub 鏈接:https://github.com/alone-tree/dsh-skill-mcp-manager)。
  • Token 節省:由於 MCP 僅在 AI 需要時加載且默認不暴露完整 Schema,建議根據實際需求調整 toolDescriptionMaxLength 以平衡功能可見性與上下文佔用。

結語

dsh-skill-mcp-manager 通過按需加載和會話隔離機制,幫助開發者在不犧牲功能完整性的前提下,有效控制 DSH 的上下文成本和啓動開銷。對於需要頻繁開發調試 MCP 服務的場景,其熱重載功能尤爲實用。

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

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

小夜