dsh-skill-mcp-tool:在 DSH 裏統一管理 Skills 與 MCP

前言

在 DeepSeek Harness(DSH)裏做智能體開發,Skills 往往散落在項目與用戶目錄的多個根路徑,MCP 服務器則寫在 profile 的 cordis.patch.yml 裏,還要自己記哪些行是手寫的、哪些是別的插件管的。啓用或停用一項,常見做法是改文件後重啓進程,或者依賴預設是否正確掛載本地技能發現——部分環境下磁盤上的技能既進不了 / 菜單,模型也加載不到。

下面介紹社區插件 dsh-skill-mcp-tool(維護者 artorias-zj)。它把 Skills 與 MCP 收到同一個面板,支持熱加載式啓用/停用,以及基於 Git 的技能安裝與更新;當前版本 v1.0.2,許可證 MIT。插件已收錄於 DSH Plugin Hub / SkillHub 目錄(社區獨立站點,與 DeepSeek / 幻方無官方從屬關係)。

這是什麼

一句話定位:DeepSeek Harness 插件,統一管理 Skills 與 MCP 服務器——設置菜單與主界面左側欄各有一個入口,打開的是同一套四頁籤界面(技能 / MCP / 遠程來源 / 備份)。

它要解決的問題包括:在一個地方列出四個標準技能根、管理 MCP 客戶端行、從 Git 拉取技能並記錄來源以便更新,並在不重啓 DSH 的前提下,通過文件改名或 patch 寫入讓宿主 HMR 感知變更(具體邊界見下文「熱加載」)。

核心功能

雙入口與界面行爲

  1. 設置菜單 →「技能與 MCP」頁。
  2. 主界面 → 左側欄圖標,在中央主區打開同一面板。

兩處渲染同一組件。主面板模式下插件自行處理內邊距與滾動,標題和頁籤固定在頂部;設置頁模式下不再疊加滾動,避免雙層留白。列表按固定規則排序:技能按來源分組(項目 → 用戶 → 插件 → 其他),組內與 MCP、遠程來源均按名稱做大小寫不敏感字母序;寫入 cordis.patch.yml 的受管 MCP 行順序與界面一致。

Skills

  • 掃描四個標準根,順序爲:項目 .dsh/skills → 項目 .agents/skills → 用戶 ~/.dsh/skills → 用戶 ~/.agents/skills。
  • 支持目錄束(<name>/SKILL.md)與平鋪(<name>.md),以及嵌套分類。
  • 啓用/停用:SKILL.md 與 SKILL.md.disabled(或 .md / .md.disabled)之間無損改名;提供方 watcher 刷新目錄,無需重啓。
  • 內置編輯器新建/編輯/刪除,落盤前校驗 frontmatter;不合規項仍列出並標記「格式不合規」。
  • 從 Git 安裝/更新:淺克隆倉庫或子目錄,發現合規技能後拷貝到選定根;記錄來源,用 git ls-remote 判斷是否有更新;落盤時過濾 .git、node_modules 等目錄。
  • 插件自行向 DSH 技能註冊表註冊所管根目錄下的技能,會話中輸入 / 可選技能;界面顯示爲停用的不會出現在 / 中。

Git 代理

四個頁簽上方有共享的 Git 代理欄,供安裝、更新、檢查更新等所有 Git 操作使用。代理通過 git -c http.proxy=… -c https.proxy=… 注入,不改寫全局 git 配置;關閉開關時不加 -c,沿用本機已有配置。「測試」會分別走代理與直連探測遠端。

MCP

增刪改查與啓用/停用 @deepseek-ai/dsh-mcp-client 行;只讀展示配置裏其他來源的服務器;展示連接狀態與工具數量。密鑰不回傳瀏覽器;環境變量佔位可落盤爲 DSH 支持的 !!js 表達式。受管行寫在 cordis.patch.yml 的標記塊內,塊外內容原樣保留。

備份

「備份」頁可導出/導入 Skills、MCP 與 Git 來源記錄。默認「配方」模式只記倉庫與提交(體積小,導入需聯網);可選「完整內容」打包文件。導入前有預檢;密鑰默認不導出,需顯式勾選「包含 MCP 密鑰」。

安裝與啓用

運行環境:Node.js ^22.15 或 >=24;README 標明兼容 DeepSeek Harness 0.2.x,支持 desktop / web profile。

安裝命令(摘自官方 README):

# 從 GitHub 安裝(推薦,任何 profile 都能用)
dsh plugin --profile web add github:artorias-zj/dsh-skill-mcp-tool

# desktop profile 用完整地址也可以
dsh plugin --profile desktop add https://github.com/artorias-zj/dsh-skill-mcp-tool

也可在 DSH 側欄插件頁指向本倉庫目錄安裝。安裝後需要重啓 DSH,客戶端腳本纔會被正確提供,設置頁與側欄入口才會出現。

可選插件配置(cordis.patch.yml 中該插件行的 config):

字段 默認值 含義
dshHome $DSH_HOME 或 ~/.dsh 定位技能根、profile patch 與來源記錄

典型用法

1. 打開管理面板

重啓 DSH 後,從設置進入「技能與 MCP」,或點擊主界面側欄對應圖標。

2. 從 Git 安裝技能

在技能或遠程來源相關流程中填寫倉庫地址;若直連超時,先在頁簽上方配置 Git 代理並點「測試」確認通路,再執行安裝。安裝完成後技能落在所選根目錄,來源寫入 skill-mcp-tool/sources.json(僅爲索引,刪除該文件不影響已安裝文件)。

3. 熱加載啓用/停用

  • 技能:在列表中切換啓用狀態,對應文件會在 .md / .md.disabled 或 SKILL.md / SKILL.md.disabled 間改名。
  • MCP:切換啓用會更新 cordis.patch.yml 中受管行的 disabled,由 HMR 重掛載 loader 行。

DSH 沒有運行時單獨重啓某條 MCP 連接的 API;插件依賴 patch 變更與輪詢 loader 狀態,界面會如實報告「寫入成功但宿主尚未完成重掛載」等情況。

4. 會話裏用技能

在對話中輸入 /,從菜單選擇已啓用且已註冊的技能;與 disable-model-invocation: true 相關的行爲以 README 說明爲準(僅出現在 / 菜單,模型側不自動加載)。

5. 換機恢復

在「備份」頁導出 JSON;新機器安裝本插件並重啓後導入。默認配方模式導入時會重新克隆,需網絡;若導出時選了完整內容,可離線還原文件。

適用場景與注意

適合誰:經常在 DSH 裏維護多套 Skills 與 MCP、需要從 GitHub 拉社區技能包、或希望在同一界面切換啓用狀態而不整進程重啓的開發者。

權限與信任:插件以當前 DSH 進程權限運行,會讀寫 profile 的 cordis.patch.yml、本地技能目錄,以及 skill-mcp-tool/settings.json(含 Git 代理)、sources.json;安裝/更新時會調用本機 git。安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認符合你的安全策略。README 說明無遙測。

與宿主預設的關係:宿主層 @deepseek-ai/dsh-skill-filesystem 在 web 端被刻意禁用,改由預設自行掛載;本插件通過自注冊所管技能根,降低「預設未生效導致磁盤技能不可見」的風險,但不替代你對 cordis.patch.yml 與其他插件受管塊的整體管理。

結尾

dsh-skill-mcp-tool 把 Skills 發現、Git 安裝更新、MCP 行編輯與備份收到一個面板,並用改名與 patch 配合 DSH HMR,儘量做到啓用/停用無需整包重啓。若要安裝或看更新說明,可訪問目錄頁 skillhub.cn/plugins/artorias-zj/dsh-skill-mcp-tool 與倉庫 github.com/artorias-zj/dsh-skill-mcp-tool。

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

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

小夜