Skip to content

deepseek-harness-skill-mcp

Verified

@civilization/deepseek-harness-skill-mcp · v0.3.0 · Apache-2.0 · Web UI

Skill path and MCP server management for DeepSeek Harness Web

Install

dsh plugin add @civilization/deepseek-harness-skill-mcp

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Readme

dsh-skill-mcp

DeepSeek Harness Web 界面提供 Skill 路径和 MCP 服务器管理。

安装后,“设置”中会出现 Skill 管理MCP 管理 两个页面,同时向 Agent 注册 extensions_* 管理工具。插件使用 Harness 自带的 Skill filesystem provider 与 MCP client,并为旧版 HTTP+SSE 服务提供兼容客户端;配置写入当前 web profile 的 cordis.patch.yml

通过 dsh 安装

需要已安装 DeepSeek Harness、Node.js 22.19+ 和 pnpm。npm 包名在 registry 中全局唯一,不需要附加 GitHub 用户名或组织名。把插件安装到 web profile 并启动:

dsh plugin --profile web add @civilization/deepseek-harness-skill-mcp
dsh web

也可以直接从 GitHub 安装;此时包地址必须包含组织名:

dsh plugin --profile web add github:civilization-os/dsh-skill-mcp

Git 安装可以锁定到具体 commit,避免以后安装到未经确认的新版本:

dsh plugin --profile web add github:civilization-os/dsh-skill-mcp#<commit-sha>

如果从 DeepSeek Harness 源码仓库运行 CLI,请把上面的 dsh 换成 pnpm dsh,并在 Harness 仓库根目录执行,例如:

pnpm dsh plugin --profile web add github:civilization-os/dsh-skill-mcp
pnpm dsh web

更新或卸载:

dsh plugin --profile web update @civilization/deepseek-harness-skill-mcp
dsh plugin --profile web remove @civilization/deepseek-harness-skill-mcp

Bundle 的新增、更新和移除都需要重启正在运行的 Web profile。Skill 与 MCP 配置保存在用户自己的 profile patch 中;卸载插件不会自动删除这些配置行。

Skill 管理

用户只需指定一个本地 Skill 路径。一个路径下面可以放多个 Skill,也可以配置多个路径:

skills/
├── code-review/
│   ├── SKILL.md
│   └── references/
└── release-notes/
    ├── SKILL.md
    └── scripts/

Skill 页面支持:

  • 添加、编辑路径、启用、禁用和移除多个 Skill 来源;移除来源不会删除目录中的文件
  • 用独立的来源、用户分组和状态条件筛选技能
  • 为单个 Skill 设置用户分组;分组保存在对应 SKILL.mdmetadata
  • 搜索、数量统计、frontmatter 格式诊断和同名覆盖提示
  • 查看 scriptsreferencesassets 等资源文件
  • 编辑 Skill 描述、适用场景、指令正文和调用权限
  • 删除单个 Skill;目录型 Skill 会连同其资源目录一起删除,并在界面中二次确认
  • 控制模型自动选择和用户 /name 调用
  • 创建只有 SKILL.md 的最小目录,或包含标准资源目录的 Skill

新路径默认禁用。启用后,Harness 的 Skill provider 扫描该路径中的技能。页面在前台时每 3 秒刷新一次。当前 Harness Web 会按会话缓存 / Skill 候选,但未把 Host 的 skills/change 转发给浏览器;本插件在管理操作成功或用户点击“刷新”后触发客户端目录缓存失效,使下一次打开 / 菜单重新读取 Skill 列表。直接在文件系统外部修改 Skill 时,在管理页点击一次“刷新”即可同步菜单。

工具管理 (Skill Catalog)

通过新增的 skill-catalog 配置项,插件可管理当前 Harness 运行时中各个已安装插件所注册的工具(如 dsh-autotask 的自动化任务工具、dsh-drawio 的架构绘图工具、dsh-playwright 的浏览器工具、MCP 工具等),支持自由选择性启用或禁用。

1. 配置项 skill-catalog

支持在 cordis.patch.yml 中或设置界面配置:

- insert:
    - id: dsh-skill-mcp
      name: "@civilization/deepseek-harness-skill-mcp"
      config:
        skill-catalog:
          disabledTools:
            - session_create_autotask
            - drawio_render

2. 接管与安全拦截机制

  • 自动归类:自动扫描运行时注册的所有工具,根据工具命名规则智能归属到所属插件(如 session_*_autotask 归属于 dsh-autotaskdrawio_* 归属于 dsh-drawiobrowser_* 归属于 dsh-playwrightmcp__* 归属于对应 MCP 服务)。
  • 单调守卫拦截 (ctx.tools.guard):当工具被配置为禁用时,Cordis 单调守卫将在工具调用前拦截并返回友好提示(【Skill Catalog 接管】工具 "..." 当前已被禁用),杜绝 Agent 越权或误调用。
  • 瀑布流预检查 (tools/pre-execute):在调度层提前做出 deny 决策。
  • 核心工具保护:PTC 核心传输通道与内部 catalog 控制工具自动设为受保护状态,防止误禁用导致环境不可用。

3. Web 界面操作

设置中心的“工具接管”页面提供:

  • 总工具数、已启用、已禁用和插件/服务统计面板;
  • 实时搜索工具名称、描述与插件前缀;
  • 按插件分组筛选与分组折叠卡片;
  • 每个工具独立的现代化开关(Switch Toggle);
  • 插件级别的“全选启用”与“全部禁用”快捷操作。

MCP 管理

支持三种 MCP 配置类型:

  • stdio:执行本地命令并通过标准输入输出通信
  • streamable-http:连接推荐的 Streamable HTTP MCP 地址
  • sse:兼容使用独立 /sse/messages 端点的旧版 MCP 服务

stdio 示例:

{
  "transport": "stdio",
  "command": "node",
  "args": ["D:/servers/example/server.js"],
  "cwd": "D:/servers/example"
}

HTTP 示例:

{
  "transport": "streamable-http",
  "url": "http://127.0.0.1:9000/mcp"
}

旧版 SSE 示例:

{
  "transport": "sse",
  "url": "http://127.0.0.1:9000/sse"
}

服务器卡片使用状态灯显示禁用、等待发现工具或工具可用,并可展开查看实际注册的工具列表。MCP 配置可以编辑或删除,编辑时保留服务器 id 与启用状态。新服务器默认禁用;启用 stdio 服务器会在 Agent 沙箱之外执行所配置的程序。

MCP 工具是提供给模型的工具 schema,不是用户 / 命令,因此不会出现在 Skill 斜杠菜单中;它们的动态状态以 MCP 页面中的“工具列表”和 extensions_inspect 为准。

当前版本不接受 env、认证 header、带凭据或 token 查询参数的 URL。请勿把密钥放进工具参数、MCP 地址或提交到仓库。

MCP 对端离线、命令启动失败或首次工具发现失败不会阻止 DSH 启动。stdio 与 Streamable HTTP 使用 Harness MCP client 的后台重连策略;旧版 SSE 当前依赖连接自身,在断线后可通过刷新配置重新加载。设置页在连接恢复并发现工具后更新状态。插件加载时也会把旧版本写入的严格启动配置迁移为非致命启动策略。

Agent 工具与 Skill

插件向 DSH 注册了 extension-management Skill 以及 9 个模型专属管理工具:

  • extension-management Skill:引导模型掌握受管 Skill 路径与 stdio / streamable-http / sse 模式 MCP 服务器的标准配置结构与安全规约。
工具 作用
extensions_list 查看受管 Skill 路径与 MCP 配置
extensions_add_skill 添加 Skill 路径;Agent 调用时显式指定内部 id
extensions_add_mcp 添加 stdio、Streamable HTTP 或旧版 SSE MCP 配置
extensions_set_enabled 启用或禁用受管配置
extensions_update_skill 修改 Skill 来源路径
extensions_update_mcp 替换 MCP 连接配置并保留 id 与启用状态
extensions_remove 移除 Skill 来源或 MCP 配置;不会删除 Skill 来源目录
extensions_inspect 查看当前 Agent 实际可见的 Skill 与 MCP 工具
extensions_catalog_list 列出系统中所有发现的工具、插件归类与启停状态
extensions_catalog_set 启用或禁用特定工具(受 skill-catalog 接管)

可以直接告诉 Agent:

添加 Skill 路径 D:/my-skills,内部 id 使用 my-skills,启用后检查发现的技能。

本地开发

git clone [email protected]:civilization-os/dsh-skill-mcp.git
cd dsh-skill-mcp
pnpm install
pnpm run build
pnpm test

pnpm run build 生成并提交 lib/client.js。仓库携带该浏览器产物,因此通过 GitHub 安装时无需执行安装期构建脚本或配置 pnpm allowBuilds

如果本机旁边有一份 ../deepseek-harness 源码 checkout,可以运行独立开发 profile:

pnpm run web

它会使用 .local/harness-home,默认监听 http://127.0.0.1:3081,不会修改正式 Harness home。

验证

自动测试覆盖配置持久化、Skill 多路径、编辑和删除、单技能内容编辑与删除、用户分组、并发 revision、Skill 创建与调用权限、MCP 工具发现和卸载、轮询状态、中英文词典一致性,以及 DSH webServer 前缀路由、OPTIONS 预检和 RPC 信封协议桥接。测试不需要模型 API key。

浏览器端 / 候选缓存失效兼容逻辑会使用公开的 connection/reset 客户端事件;服务端通过注入 webServerconnection 双重挂载 /extensions 路由并由 Cordis effect 托管生命周期,防止动态请求掉入前端静态资源的 405 fallback。自动测试验证 Host/RPC、HTTP 桥接和浏览器 bundle 构建,但没有在本仓库内启动完整 Harness Web 做端到端菜单点击验证。外部文件改动仍依赖 filesystem provider 先完成 watcher 失效,必要时可在变更后点击管理页“刷新”。

发布

推送和 Pull Request 会运行构建与测试。推送与 package.json 版本一致的 v* 标签后,GitHub Actions 会从 NPM_TOKEN Actions Secret 发布 npm 包并附带 provenance。例如发布 0.1.0

git tag v0.1.0
git push origin v0.1.0

许可证:Apache-2.0