dsh-skills-mcp:在 DSH 里统一管理 Skills 与 MCP

前言

在 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 / disable
  • mcp_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。

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

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

Xiaoye