前言¶
DeepSeek Harness (DSH) 采用插件化架构。在开发过程中,管理技能和 MCP 服务器通常涉及命令行操作或手动编辑配置文件,操作分散且容易出错。dsh-tool-explorer 提供了一个 Web 设置页面,用于统一管理这些资源,实现了可视化的浏览、安装、更新、编辑和监控。
是什么¶
这是一个由 6pofx 维护的 DSH 插件。它是一个 Web 管理控制台,允许用户在浏览器中完成以下操作:
* 技能:浏览、安装、更新、编辑、切换技能。
* MCP 服务器:添加、编辑、启用/禁用、测试和监控服务器。
安装与启用¶
该插件已发布在 npm 上。安装时不需要指定版本,当前版本(v0.4.2)的构建包覆盖了所有支持的 DSH 版本。
- 执行安装命令:
dsh plugin --profile web add dsh-tool-explorer
- 安装完成后,重启
dsh web(主机端插件在启动时加载),然后打开 Settings → Skills 和 MCP。
兼容性¶
一个构建版本服务于所有支持的 DSH 版本。经运行时验证,支持:
* 0.1.5-rc.2(当前):支持启动、主机路由、设置和客户端包。
* 0.1.1-rc.2:支持相同的运行时检查。
* 0.1.0-rc.7 到 0.1.4:预期支持,因为该版本暴露了相同的设置接口。
* 无 ctx.settings 的主机:可以加载并工作,偏好设置会回退到组合入口配置。
技能管理¶
插件提供了一套完整的技能管理能力:
- 目录浏览:合并了所有提供者(项目/用户/内置/插件)和共享
.skill-lock的完整目录。支持按来源层级浏览(可折叠树:project-dsh → project-agents → custom → user-dsh → user-agents → runtime → bundled),并显示已加载/禁用的计数。 - 编辑与创建:支持搜索、详情预览和在线创建/编辑。编辑器支持 Kebab-case 验证、Frontmatter 表单和 Markdown 正文。
- 调用控制:提供独立的模型/用户调用开关。可以单独关闭某技能的模型调用(
disable-model-invocation)或用户调用(user-invocable),或者两者都关闭。 - 可恢复的垃圾箱:删除用户根目录下的技能时,会将其移至
<dshHome>/skills-trash(锁定条目会被快照)。恢复操作会将技能以字节完全一致的方式放回,支持永久清除或清空垃圾箱。 - GitHub 安装:支持从 GitHub 安装,解析 URL(
owner/repo、树路径、#branch),支持多选/全选批量安装,并提供更新检查和应用(含备份和回滚)。 - 兼容性:
skillFolderHash与 Skills CLI (npx skills) 保持字节兼容。
MCP 服务器管理¶
插件提供了 MCP 服务器的全方位管理功能:
- 服务器列表与监控:显示服务器列表及其实时状态(fiber phase)、工具清单和每个服务器的工具计数。
- 增删改查:支持添加、编辑、删除服务器(支持 stdio 和 streamable-http),并通过启用/禁用开关控制。
- 跨代理导入:支持一键扫描并导入 Claude、Cursor、Codex、Cline、Roo、Continue、Codeium Windsurf 的 MCP 配置。
- 连接测试:使用独立的 SDK 探针测试连接,不会干扰运行中的实例。
- 并发保护:提供写围栏(expected-hash)机制,防止并发手动编辑导致的数据冲突。
注意事项¶
- 运行时依赖:如果添加了运行时依赖(例如
tar),需要执行 重新打包 + 重新安装 操作,仅复制lib/目录是不够的。 - 热重载:主机端更改需要重启
dsh web;客户端更改支持热重载。 - MCP 客户端补丁:在执行
dsh upgrade后,必须重新运行本地 dsh-mcp-client 补丁。升级操作会恢复官方的dsh-mcp-client字节,导致补丁失效。 - 许可证:MIT。
参考实现¶
该插件的 M5 功能集(源分组浏览、按轴调用、可恢复垃圾箱)参考了以下社区插件的设计模式:
* cheshireez/dsh-skill-hub
* SeverusZh/dsh-skills-mcp-group-manager
* BAIKAI23333/dsh-skills-manager
* peiqi10086/dsh-skills-market