前言¶
在 DeepSeek Harness(DSH)里跑 Agent 时,Skills 往往散落在 ~/.dsh/skills、~/.agents/skills 或项目下的 .dsh、.agents 目录;MCP 则可能在 mcp.json、Claude Code 的 ~/.claude.json 或项目 .mcp.json 里各写一份。改配置要手编辑 JSON、记路径,和 Web 会话之间也缺少一个统一的入口。
下面介绍社区插件 dsh-skills-mcp(维护者 BrokenDreamStar):在 DSH Web 的 Settings → Skills 与 MCP 页面,以及模型工具 skills_manager / mcp_manager 中,对系统级与项目级的 Skills、MCP 做同一套管理。插件归类为工作流,可在 SkillHub 目录页 与 GitHub 仓库 查看说明与源码。
这是什么¶
dsh-skills-mcp 是 DSH 的 Web 向插件:把 DSH 原生扫描的 Skills 根目录,以及 DSH / Claude Code 侧的 MCP 配置,收敛到设置页和两个管理工具里。系统级配置对所有会话生效;项目级配置只在匹配项目根的会话里挂载。
适用 DSH 版本为 >=0.2.1-rc.2 <0.3.0(README 徽章标注 0.2.1-rc.2 ~ 0.2.x)。当前 package 版本为 0.4.1,许可证 MIT。
核心功能¶
作用域与目录¶
| 能力 | 系统级 | 项目级 |
|---|---|---|
| Skills 目录 | $DSH_HOME/skills、$AGENTS_HOME/skills(默认 ~/.dsh/skills、~/.agents/skills) |
<project>/.dsh/skills、<project>/.agents/skills |
| MCP 配置 | $DSH_HOME/mcp.json + 外部 ~/.claude.json |
<project>/.dsh/mcp.json + 外部 Claude 项目配置 / .mcp.json |
| 作用范围 | 所有会话 | 仅项目根匹配的会话 |
| 加载方式 | 插件全局挂载 | 每个 Agent 的 Cordis scope 内挂载 |
| 生效方式 | 保存后立即重载 | 保存后重载活动会话;新会话创建前加载 |
Skills¶
- 合并展示 DSH 与 Shared Agents 两个根目录下的技能,行上标记来源;同名技能可在两个根下分别存在。
- 支持目录 bundle(
<name>/SKILL.md)与单文件(<name>.md),与 DSH 原生 provider 一致。 - 新建 / 编辑完整
SKILL.md时可选择保存到哪个根目录;管理页校验 YAML frontmatter(至少name、description,可选whenToUse及disable-model-invocation、user-invocable等)。 - 在 DSH 中停用 / 启用:只写状态文件,不移动、不改写源文件,也不影响其他 Agent;停用通过 agent scope 注册同名不可调用 runtime skill 遮蔽文件系统 provider。
- 删除进回收站(
$DSH_HOME/.skills-mcp-trash/...),可恢复;指向根目录外的符号链接技能为只读。
让 Agent 实际「看见」技能仍需在 profile / preset 中启用 @deepseek-ai/dsh-skill-filesystem(由 skill-filesystem provider 扫描上述根目录)。
MCP¶
- DSH 管理的服务器与从 Claude Code 发现的外部服务器同页展示,分组为「DSH 管理 / Claude Code 发现 / 其他 Claude 项目」。
- 支持
stdio与streamable-http(transport也可写type;HTTP 别名http),含env、headers、cwd、toolCallTimeoutMs。 - 外部条目默认已在 DSH 启用,可单独停用;可「导入」为 DSH 管理的
mcp.json条目后编辑。外部卡片密钥不会出现在 WebUI 快照或模型工具列表输出中。 - 保存前自动写
mcp.json.bak,新文件权限0600。OAuth 流程未实现,密钥以 headers / env 明文写在配置中,需自行控制文件权限。
模型工具¶
与设置页能力对齐:
skills_manager:list/read/save/delete/enable/disablemcp_manager:list/save/delete/enable/disable/reload/enable_external/disable_external/import_external
二者均接受 scope: "system" | "project" 与可选 project。list / read 之外的写操作需 danger-full-access,否则每次调用前请求审批。
安装与启用¶
前置条件:Node.js ≥ 22.19,且已安装 dsh 命令行。
日常从 GitHub 安装(仓库已包含 dist/ 构建产物,无需本地再跑构建):
dsh plugin --profile web add github:BrokenDreamStar/dsh-skills-mcp
本地改代码调试时,在插件目录执行 npm install --legacy-peer-deps 与 npm run build,再用 link: 挂载(profile 使用 hoisted linker,开发须用 link: 而非 file:):
dsh plugin --profile web add link:/path/to/dsh-skills-mcp
验证是否载入配置:
dsh --profile web --dump-config | grep -A3 'id: dsh-skills-mcp'
安装后打开 DSH Web Settings,进入 Skills 与 MCP 分区即可使用界面;写操作与模型管理工具均以当前 dsh 进程权限 读写宿主文件,安装前请自行审阅 源码与 LICENSE。
典型用法¶
编写并保存 Skill¶
frontmatter 示例(保存前管理页会校验):
---
name: my-skill
description: 这个技能做什么、何时使用。
whenToUse: 可选,补充触发场景。
---
# My Skill
正文……
在 Web 编辑器中选择系统级或项目级、以及 DSH 或 Shared Agents 根目录后保存;若只需在 DSH 里暂时不用某技能,用「在 DSH 停用」即可,无需删文件。
配置 MCP 服务器¶
在对应作用域编辑 mcp.json 内容,例如 stdio 与 streamable-http:
{
"mcpServers": {
"filesystem": {
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path"],
"env": { "TOKEN": "..." },
"cwd": "/optional/cwd",
"toolCallTimeoutMs": 60000
},
"remote": {
"transport": "streamable-http",
"url": "https://example.com/mcp",
"headers": { "Authorization": "Bearer ..." }
}
}
}
项目级 stdio 未填 cwd 时默认项目根。保存后 MCP 会立即重载;手改文件后可点「重载 MCP」或新建会话。若本机已有 Claude Code 的 MCP,可在同页查看外部条目,按需导入为 DSH 管理条目。
用模型工具管理(需审批的写操作)¶
在具备 danger-full-access 的会话中,可通过 skills_manager、mcp_manager 做与 UI 相同的 list / 读写 / 启停 / 重载 / 导入外部 MCP 等操作;项目级默认以当前会话 cwd 解析项目根。
适用场景与注意¶
适合谁:经常在 DSH Web 里切换项目、需要统一维护 Skills 与 MCP,或希望把 Claude Code 已有 MCP 在 DSH 里可见、可导入的团队与个人开发者。
注意:
- 插件以当前 dsh 进程权限操作
~/.dsh、mcp.json及项目.dsh目录;勿把含密钥的配置提交到 Git。 - 项目级 MCP 每个活动会话各自持有连接与子进程,是项目隔离的代价。
- 社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;星标与版本以仓库为准(截至资料抓取时 GitHub 星标为 0)。
结尾¶
dsh-skills-mcp 把 Skills 与 MCP 从多路径、多工具的配置方式,收拢到 DSH Web 设置页和 skills_manager / mcp_manager,并区分系统级与项目级作用域。进一步了解请访问 SkillHub 插件页 与 GitHub:BrokenDreamStar/dsh-skills-mcp。