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。

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

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

小夜