dsh-skills-mcp-manager:在 DSH Web 设置页统一管理技能、MCP 与指令文件

前言

用 DeepSeek Harness(dsh)做日常开发时,技能目录、MCP 服务器配置和 AGENTS.md 一类指令文件往往分散在多个路径里:有的在项目 .dsh/skills,有的在用户目录,MCP 还要自己改 JSON,规则文件则要从项目根一路追到当前工作目录。改一处、启停一处,很难在一个界面里看清「当前会话到底生效什么」。

下面介绍的插件 sunlitcrack/dsh-skills-mcp-manager 在 Web GUI 的「设置」里增加一级入口「技能与 MCP」,把技能、MCP 与 DSH 每轮会读的指令文件三类资源放在同一面板管理;MCP 启用后会通过 @deepseek-ai/dsh-mcp-client 真实连上并注册工具,而不是只改配置文件。

这是什么

  • 名称:dsh-skills-mcp-manager(npm 包名 @sunlitcrack/dsh-skills-mcp-manager)
  • 维护者:SunlitCrack
  • 分类:admin-security(管理类 / 安全相关配置)
  • 定位:DeepSeek Harness 的独立 Web 插件,挂载在 profile 的 bundle patch 上,无需改 dsh 源码
  • 来源:自 zebbkira/dsh-skills-mcp-manager v0.2.0 分叉后由本仓库独立维护

面板顶部会始终显示当前生效的项目目录及其来源(当前会话 / 已选会话 / 首个工作区 / 手动指定)。识别不准时可点「选择目录…」在本机固定项目目录,或「恢复自动」继续跟随会话。

核心功能

Skills 技能

  1. 区分项目级与用户级,按来源分组:.dsh/skills、.agents/skills、~/.dsh/skills、~/.agents/skills。
  2. 启用 / 禁用:改写 SKILL.md 前言中的 disable-model-invocation 与 user-invocable,可逆。
  3. 删除:两步确认后物理删除技能目录(bundle)或平铺的 .md 文件。
  4. 详情:查看 description、whenToUse 与完整正文。
  5. 导入:指定目录 → 扫描 → 勾选导入到 ~/.dsh/skills;支持系统目录选择器或手写路径。
  6. 搜索 / 过滤:名称模糊搜索,按「已启用 / 未启用」过滤。

说明:只扫描上述四个可管理根目录,不展示内置或运行时技能;导入目的地固定为 ~/.dsh/skills,按目录名 / 文件名去重。

MCP 服务

  1. 用表单或 JSON 新建服务器(stdio 的 command / args / env / cwd,或 streamable-http 的 url / headers)。
  2. 测试连接:一键真实连接探测。
  3. 启用 / 禁用:实际连接或断开,状态显示为连接中 / 运行中 / 失败 / 已停止。
  4. 名称搜索、编辑、删除(删除需两步确认)。
  5. 配置写入 $DSH_HOME/mcp.json;未设置 DSH_HOME 时使用 ~/.dsh/mcp.json。

启用的服务器通过宿主挂载 @deepseek-ai/dsh-mcp-client,工具名形如 mcp__<server>__<tool>。服务器 name 需满足 [A-Za-z0-9_-]{1,32} 且全局唯一。env / headers 等凭证以明文保存在上述 JSON 文件中,请自行控制文件权限(资料建议 0600)。

指令文件(AGENTS.md 家族)

列出 DSH 每轮读进上下文的规则文件,按用户级 / 项目级分组:

  • 用户级:仅 ~/.dsh/AGENTS.md(硬编码单名,同级其它文件名不会被 DSH 读取)。
  • 项目级:从 .git 项目根到当前工作目录每一级的 AGENTS.md、CLAUDE.md、AGENTS.local.md、CLAUDE.local.md。向上找不到 .git 时,项目根与会话目录一致(与内核 dsh-agent-instructions 行为一致)。

面板支持详情(行内只读全文)、新建、删除;缺失席位显示「未创建」并可一键新建。已存在条目显示字节数与「会被读取」标记。超过 1 MB 的文件会标警告(DSH 会忽略)。正文操作上限 512 KiB;越界路径一律拒绝。

没有启用开关:DSH 按文件名选取规则,改名即语义变更,因此只做文件级操作。没有就地编辑(自 0.3.7 起):每轮都会重新读盘,改写请用外部编辑器。新建后下一个会话才生效。

席位规则与加载顺序的完整说明见仓库 docs/instructions.md。

安装与启用

前置条件:Node.js >= 22.19;已全局安装 dsh(npm install -g @deepseek-ai/dsh,且 dsh --version 能打印版本)。

推荐从 GitHub 安装(仓库含构建产物 lib/):

dsh plugin --profile web add github:SunlitCrack/dsh-skills-mcp-manager
dsh web

锁定版本时在命令末尾加 tag,例如:

dsh plugin --profile web add github:SunlitCrack/dsh-skills-mcp-manager#v0.3.3

npm 包尚未发布;发布后可用 dsh plugin --profile web add @sunlitcrack/dsh-skills-mcp-manager@<版本> 安装。

本地改源码调试时使用 link: 安装,需自行 pnpm install 与 pnpm build,并注意 README 中关于 link: 与 @deepseek-ai/dsh-mcp-client 宿主依赖的说明;从 GitHub 直接安装不受该坑影响。

典型用法

安装并重启 dsh web 后:

  1. 打开 DeepSeek Harness Web GUI。
  2. 进入「设置」。
  3. 在左侧选择与「插件」并列的一级入口 「技能与 MCP」。

在三个 Tab 中分别管理技能、MCP 与指令文件。例如:在 MCP 区新建 stdio 服务器 → 点「测试连接」确认 → 启用后在 Agent 侧应能看到 mcp__<server>__<tool> 工具;在指令文件区对「未创建」席位一键新建,再用编辑器写入内容,新开会话后生效。

适用场景与注意

适合:希望在 Web 里集中查看启停技能、维护 MCP 真连接、对照 DSH 实际会读的 AGENTS 家族文件,而不手改多处目录和 JSON 的 DSH 用户。

务必注意:

  • 插件在当前 dsh 进程权限下读写本机文件与启动 MCP 子进程;安装前请阅读 GitHub 仓库 源码与许可证,确认符合你的安全策略。
  • MCP 凭证明文存于 ~/.dsh/mcp.json(或 $DSH_HOME/mcp.json)。
  • 社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态以「一切皆插件」扩展,本插件是其中一例。

结尾

dsh-skills-mcp-manager 把技能、MCP 与指令文件收拢到设置页的一个入口,并强调 MCP 的真实连接与项目目录来源展示,适合作为 DSH Web 环境下的日常管理面板。

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

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

小夜