前言¶
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 服務的場景,其熱重載功能尤爲實用。