前言¶
在 DeepSeek Harness(DSH)里跑智能体时,Skills 和 MCP 服务器往往会来自多个目录:全局 $DSH_HOME/skills、各项目的 .dsh/skills,以及 profile 里挂接的 MCP。要在会话里试不同组合,若只能改 YAML 或 frontmatter 再重启进程,迭代会很慢。下面介绍的 dsh-skills-mcp-panel 是面向 DeepSeek Harness Web GUI 的客户端插件:在 Settings → Agent presets 下增加 Skills/MCP 页面,按来源分组列出当前部署聚合到的全部 Skill 与 MCP,支持搜索、状态指示灯与热切换,多数改动无需重启 dsh web。
这是什么¶
dsh-skills-mcp-panel 由社区维护者 KyattoCat 发布,在 SkillHub 插件目录 中归类为客户端插件。源码与说明见 GitHub 仓库;package.json 当前版本为 0.2.0,许可证 MIT,要求 Node.js >= 22.19。
插件定位一句话:Skills & MCP panel for the DeepSeek Harness Web GUI —— 分组展示、可搜索、可热切换。README 说明该项目由 DeepSeek Flash 在 Harness 内生成,经维护者需求与审阅后落地;安装包以 lib/ 为源码,无构建步骤。
核心功能¶
设置页入口与界面¶
安装并重启 dsh web 一次后,打开 Settings → Agent presets → Skills/MCP(入口紧挨 preset 页下方)。页面提供:
- 搜索框:按名称、描述、路径过滤;
- 两个标签页:Skills 与 MCP servers,并显示实时数量;
- 分组:每一行按所属目录归组,组头含名称、完整路径与条数,点击组头可折叠/展开;
- 卡片:标题、来源、彩色状态灯、状态下拉、详情开关(
+/−); - 详情面板:Skill 侧展示 description、when-to-use、root、path、body lines、model-invocable、user-invocable;MCP 侧展示 entry id、transport、command 或 URL、连接阶段、工具数量与工具名列表。
当前 GUI 会话所在项目对应的分组会置顶、默认展开,并带 Current project 标记;其余分组默认折叠。无会话或未注册工作区时,回退到 dsh web 进程自身工作目录对应的项目,保证始终有一个项目分组领先。
分组规则¶
Skills 按扫描根目录分组:
| 分组 | 对应根 |
|---|---|
| Global | $DSH_HOME/skills、$DSH_AGENTS_HOME/skills |
| 每个已知项目 | <project>/.dsh/skills、<project>/.agents/skills(含 Web GUI 打开过的工作区及 harness 进程 cwd) |
| 每个配置的 skillRoots 项 | 以该目录名命名的一组 |
MCP servers 无独立目录时,按运行目录归类:stdio 且 cwd 落在某项目内则归入该项目,其余(HTTP、继承 harness 目录的 stdio)归入 Global。
Skill 四种状态(热生效)¶
Skill 的 SKILL.md frontmatter 中 disable-model-invocation 与 user-invocable 独立,面板提供四种选择:
| 选择 | disable-model-invocation | user-invocable | 谁能加载 |
|---|---|---|---|
| Enabled | 缺省(不写) | 缺省(不写) | 模型可路由;用户可用 /name |
| Manual only | true |
缺省 | 仅用户;模型目录与 skill 工具不可见 |
| Model only | 缺省 | false |
仅模型;不出现在 / 菜单 |
| Disabled | true |
false |
两侧均不可用;仅受信 ctx.skills.get() 调用方 |
Skill provider 监视根目录,下一次 agent/pre-step 即重发目录,同一会话内生效,无需重启进程。
MCP 启用/禁用(热生效)¶
MCP 行只有 Enabled / Disabled(界面随语言本地化)。连接未稳定时,选择器旁会显示 loading 或 failed 标签( live 状态,非配置项)。对配置了 patchReload: live 的 profile,写入会通过 config HMR 原地重载该 MCP 连接,同一会话内生效。
状态灯含义¶
- 绿色:Skill 模型可达,或 MCP 已连接;
- 琥珀色:Skill 仅手动,或 MCP 仍在连接;
- 红色:Skill 解析错误,或 MCP 连接失败;
- 灰色:已禁用。
写入范围(不越界)¶
面板不会删除 Skill、不会改 MCP 服务端配置、不会重排你 patch 文件里其它内容。
Skills:仅改动上述两个 invocation 键;需要「缺省 true」的状态会删除键而非写冗余值,回到 Enabled 时文件字节可恢复原状。
MCP:仅在 profile 的 cordis.patch.yml 末尾维护一段带标记的块,例如:
# >>> dsh-skills-mcp-panel (managed — edit these rows from the panel)
- id: "mcp-playwright"
disabled: true
# <<< dsh-skills-mcp-panel
标记块外内容原样保留;块内列出当前由面板禁用的 server id。全部重新启用时块会被移除。写入经临时文件再 rename,避免 patch 监视器读到半写文件。
若某次改动落在下次启动 dsh 才会生效的 profile 上,页面会在底部提示,而非常驻页脚。
安装与启用¶
安装属于向 profile 增加新的 bundle 层,dsh.profile.bundles 在启动时读取,因此新装插件后需重启一次 dsh web;之后 Skill/MCP 状态变更可热更新。官方 README 给出的命令如下(均需 --profile web):
# 从 npm
dsh plugin --profile web add dsh-skills-mcp-panel
# 从 GitHub 跟踪仓库
dsh plugin --profile web add github:KyattoCat/dsh-skills-mcp-panel
# 本地开发(绝对路径)
dsh plugin --profile web add link:/absolute/path/to/dsh-skills-mcp-panel
卸载:
dsh plugin --profile web remove dsh-skills-mcp-panel
npm 安装的包内含 lib/、README、cordis.patch.yml 与许可证;仓库中的 tests/、CONTRIBUTING.md 不会进入安装包。从 GitHub 安装时 README 注明无需 allowBuilds 权限。
可选配置¶
所有配置项均为可选;默认满足 stock dsh web。资料中明确给出的字段包括 patchPath(默认自动检测):用于写入 MCP 禁用行的 patch 文件;检测逻辑会在 $DSH_HOME/profiles 下寻找其 dsh.profile.bundles 包含本插件的 profile,并优先选用带 patchReload: live 的那一个。也可显式指定路径。
典型用法¶
- 按上一节命令安装插件,重启
dsh web。 - 在 Web GUI 打开 Settings → Agent presets → Skills/MCP。
- 在搜索框中按名称或路径定位某个 Skill 或 MCP。
- 展开当前项目或 Global 分组,在卡片上用状态下拉将 Skill 设为 Manual only(调试时只让自己
/name触发),或将暂时不用的 MCP 设为 Disabled。 - 点
+查看 transport、工具列表等详情,确认连接阶段与状态灯是否与预期一致。 - 回到对话会话继续工作;Skill 变更随下一次 pre-step 生效,live profile 上的 MCP 变更随 patch 重载生效。
若你同时维护手写 cordis.patch.yml,MCP 禁用请优先在面板中改标记块内的行,避免与面板管理的 fence 冲突。
适用场景与注意¶
适合谁:经常在 DSH Web GUI 里切换项目、试不同 Skill 组合或临时关掉某个 MCP 的开发者;希望按目录看清「全局 vs 某项目 vs skillRoots」来源,而不是在多个路径间手动搜 frontmatter 或 patch。
权限与安全:插件以当前 dsh web 进程权限运行,会读写 Skill 的 SKILL.md frontmatter 与 profile 的 cordis.patch.yml。安装前请自行审阅 源码与 LICENSE(MIT),确认与部署策略一致。DSH 社区插件目录(SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;生态理念是「一切皆插件」,本文介绍的是社区维护的客户端扩展,而非内置功能。
局限:安装/卸载 bundle 层仍需重启;对不具备 live patch 重载的 profile,MCP 面板的禁用可能要到下次启动才完全体现 —— 页面会在必要时提示。
链接¶
- 插件目录:https://www.skillhub.cn/plugins/KyattoCat/dsh-skills-mcp-panel
- GitHub:https://github.com/KyattoCat/dsh-skills-mcp-panel
在 Web 设置里集中查看、搜索并按来源分组切换 Skills 与 MCP,且多数操作不必重启进程 —— 这是 dsh-skills-mcp-panel 在 DSH 客户端侧补上的那一块操作面板。