🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

技能与 MCP 管理 zebbkira/dsh-skills-mcp-manager

DeepSeek Harnessv0.2.0
zebbkira72 天前有提交已提供中文文档扫描:含敏感能力

面向 DeepSeek Harness Web GUI 的正式插件包:在设置页的「Web UI…

42.3/100
综合分
22
GitHub 星标
189
npm 周下载
—/5
用户评分

数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @zebbkira/dsh-skills-mcp-manager
npm 源 · @zebbkira/dsh-skills-mcp-manager 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · market
装得上吗
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 72 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包@zebbkira/dsh-skills-mcp-manager @ 0.2.0
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 04:33:54

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 52 处,展示前 32 条)
  • 读取本地文件
    lib/index.js:24
    if (!existsSync(target)) return { servers: [] };
  • 读取本地文件
    lib/index.js:25
    const raw = readFileSync(target, "utf8");
  • 写入本地文件
    lib/index.js:36
    mkdirSync(dirname(target), { recursive: true });
  • 写入本地文件
    lib/index.js:37
    writeFileSync(target, JSON.stringify(data, null, 2), "utf8");
  • 写入本地文件
    lib/index.js:511
    mkdirSync(userSkillsDir, { recursive: true });
  • 读取本地文件
    lib/index.js:524
    if (existsSync(join(dir, ".git"))) break;
  • 读取本地文件
    lib/index.js:616
    if (!existsSync(dir)) return items;
  • 读取本地文件
    lib/index.js:619
    entries = readdirSync(dir, { withFileTypes: true });
  • 读取本地文件
    lib/index.js:628
    if (!existsSync(mdPath)) continue;
  • 写入本地文件
    lib/index.js:716
    writeFileSync(path, toggleInvocation(readFileSync(path, "utf8"), enabled), "utf8");
  • 删除本地文件
    lib/index.js:721
    rmSync(target, {
  • 写入本地文件
    lib/index.js:772
    mkdirSync(destDir, { recursive: true });
  • 写入本地文件
    lib/index.js:786
    else copyFileSync(it.sourcePath, base);
  • 发起网络请求
    lib/client.js:108
    return readJson(await fetch(path, {
  • 发起网络请求
    lib/client.js:115
    return readJson(await fetch(path));
  • 发起网络请求
    src/client/api.ts:34
    const response = await fetch(path, {
  • 发起网络请求
    src/client/api.ts:43
    const response = await fetch(path)
  • 读取本地文件
    src/mcp.ts:31
    if (!existsSync(target)) return { servers: [] }
  • 读取本地文件
    src/mcp.ts:32
    const raw = readFileSync(target, 'utf8')
  • 写入本地文件
    src/mcp.ts:44
    mkdirSync(dirname(target), { recursive: true })
  • 写入本地文件
    src/mcp.ts:45
    writeFileSync(target, JSON.stringify(data, null, 2), 'utf8')
  • 写入本地文件
    src/skills.ts:37
    mkdirSync(userSkillsDir, { recursive: true })
  • 读取本地文件
    src/skills.ts:45
    if (existsSync(join(dir, '.git'))) break
  • 读取本地文件
    src/skills.ts:142
    if (!existsSync(dir)) return items
  • 读取本地文件
    src/skills.ts:144
    try { entries = readdirSync(dir, { withFileTypes: true }) } catch { return items }
  • 读取本地文件
    src/skills.ts:150
    if (!existsSync(mdPath)) continue
  • 读取本地文件
    src/skills.ts:152
    try { raw = readFileSync(mdPath, 'utf8') } catch { continue }
  • 读取本地文件
    src/skills.ts:159
    try { raw = readFileSync(filePath, 'utf8') } catch { continue }
  • 写入本地文件
    src/skills.ts:215
    writeFileSync(path, next, 'utf8')
  • 删除本地文件递归
    src/skills.ts:221
    rmSync(target, { recursive: true, force: true })
  • 写入本地文件
    src/skills.ts:253
    mkdirSync(destDir, { recursive: true })
  • 写入本地文件
    src/skills.ts:263
    else copyFileSync(it.sourcePath, base)
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-settings-plugins@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-llm@deepseek-ai/dsh-mcp-client@deepseek-ai/dsh-settings@deepseek-ai/dsh-system-prompt
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 管理技能与MCP服务器
  • 设置页新增插件卡片
展开完整介绍(99 字)↓

面向 DeepSeek Harness Web GUI 的正式插件包:在设置页的「Web UI 插件」分组中新增一张「技能与 MCP」卡片,用于在浏览器里管理技能(skills)与 MCP 服务器。

README

由 DeepSeek 最新模型翻译生成
dsh-skills-mcp-manager DeepSeek Harness 是 DeepSeek 官方的 AI 编程助手框架,命令行工具叫 dsh,提供 Web UI、Headless 等运行模式,并通过插件机制扩展能力。 本插件是其中一个独立插件:在 DeepSeek Harness Web GUI 的「设置」页新增一个独立的「技能与 MCP」页面(一级导航入口,与「插件」等并列),用于管理技能(skills)与 MCP 服务器。 MCP 是真实连接:启用的服务器会通过 @deepseek-ai/dsh-mcp-client 真正连上,并把工具注册为 mcp__<server>__<tool>;启用 / 禁用会实际连接 / 断开。 功能 Skills 技能 - 区分项目级 / 用户级,按来源分组(.dsh/skills、.agents/skills、~/.dsh/skills、~/.agents/skills)。 - 启用 / 禁用:改写 SKILL.md 前言的 disable-model-invocation + user-invocable,可逆。 - 删除:两步确认,物理删除技能目录(bundle)或平铺 .md 文件。 - 详情:查看 description、whenToUse 与完整正文。
展开完整文档(README 剩余 1 节)
dsh-skills-mcp-manager

DeepSeek Harness 是 DeepSeek 官方的 AI 编程助手框架,命令行工具叫 dsh,提供 Web UI、Headless 等运行模式,并通过插件机制扩展能力。

本插件是其中一个独立插件:在 DeepSeek Harness Web GUI 的「设置」页新增一个独立的「技能与 MCP」页面(一级导航入口,与「插件」等并列),用于管理技能(skills)与 MCP 服务器。

MCP 是真实连接:启用的服务器会通过 @deepseek-ai/dsh-mcp-client 真正连上,并把工具注册为 mcp__<server>__<tool>;启用 / 禁用会实际连接 / 断开。

功能

Skills 技能

- 区分项目级 / 用户级,按来源分组(.dsh/skills、.agents/skills、~/.dsh/skills、~/.agents/skills)。
- 启用 / 禁用:改写 SKILL.md 前言的 disable-model-invocation + user-invocable,可逆。
- 删除:两步确认,物理删除技能目录(bundle)或平铺 .md 文件。
- 详情:查看 description、whenToUse 与完整正文。
- 导入:指定目录 → 扫描技能 → 勾选导入到 ~/.dsh/skills。支持系统原生目录选择器与手写路径两种方式。
- 搜索 / 过滤:按名称模糊搜索,按「已启用 / 未启用」过滤。

MCP 服务

- 表单或 JSON 两种方式新建服务器(stdio 的 command/args/env/cwd,或 streamable-http 的 url/headers)。
- 测试连接:一键真实连接探测。
- 启用 / 禁用:真正连接 / 断开,状态实时显示(连接中 / 运行中 / 失败 / 已停止)。
- 名称搜索、编辑、删除(两步确认)。
- 配置持久化到 ~/.dsh/mcp.json。

安装

方式一:从 npm 安装(推荐)

前置条件:Node.js >= 22.19,并先装好 dsh 命令行。

1. 全局安装 dsh(已装可跳过)

npm install -g @deepseek-ai/dsh
dsh --version # 能打印版本号即成功

2. 把本插件装进 web profile

dsh plugin --profile web add @zebbkira/dsh-skills-mcp-manager@0.2.0

3. 重启 dsh web

dsh web

dsh plugin 会把包装进 profile 并自动把它加入插件层(本包声明了 dsh.bundle.patch),无需手动改任何配置。版本号 @0.2.0 可换成 npm 上的最新版。

方式二:从 GitHub 仓库安装(开发调试)

用于改代码调试,需要 Node.js >= 22 与 pnpm:

1. 克隆仓库

git clone https://github.com/zebbkira/dsh-skills-mcp-manager.git
cd dsh-skills-mcp-manager

2. 安装依赖并构建

pnpm install
pnpm build

3. 链接进 web profile

dsh plugin --profile web add link:$(pwd)

4. 重启 dsh web

dsh web

Windows PowerShell 下把第 3 步的 $(pwd) 换成完整路径,例如:

dsh plugin --profile web add link:E:\path\to\dsh-skills-mcp-manager

改完源码后重跑 pnpm build 再重启 dsh web 即可。

使用

安装并重启后,打开 DeepSeek Harness Web GUI,打开「设置」,在左侧导航选择「技能与 MCP」(与「插件」并列的一级入口),即可看到管理界面。

目录结构

src/
index.ts # Host 半区入口(插件加载 + 设置命名空间 + Agent 公告) skills.ts # 技能文件系统引擎 mcp.ts # MCP 配置存储 + 真连接管理器 routes.ts # /api/dsh-skills-mcp 路由族 protocol.ts # 共享类型与 API 路径 client/ index.ts # 浏览器半区入口 SettingsCard.tsx # 设置页面(一级入口的内容) manager.tsx # Skills / MCP 管理界面 api.ts # fetch 客户端 locales.ts # 双语字典 settings-card.module.css scripts/wrap-client.mjs # 把浏览器半区打成模块加载器格式 cordis.patch.yml # 插件注册行 package.json # dsh.bundle.patch + dsh.client 清单

MCP 真连接原理

Host 半区的 MCP 管理器在启动 / 保存配置时,把「已启用服务器」收敛成一组活跃连接:

- 每个启用的服务器通过 ctx.plugin(@deepseek-ai/dsh-mcp-client, config) 挂载一个实例,工具注册为 mcp__<server>__<tool>。
- 连接失败会在页面显示原因,点「测试连接」或重新保存可重试。
- 禁用 / 删除会断开连接并注销该服务器的全部工具。

服务器名(name)即 mcp-client 的命名空间,受 [A-Za-z0-9_-]{1,32} 约束且需全局唯一。

已知限制

- 只扫描四个可管理的技能根目录,不展示内置 / 运行时技能。
- 导入目的地固定为 ~/.dsh/skills,按目录名 / 文件名去重。
- MCP 服务器凭证(env / headers)以明文存于 ~/.dsh/mcp.json,请自行保证该文件权限(建议 0600)。
预览分享卡片长什么样 ↓zebbkira/dsh-skills-mcp-manager
分享 · DeepSeek Harness Hub
zebbkira/dsh-skills-mcp-manager

面向 DeepSeek Harness Web GUI 的正式插件包:在设置页的「Web UI…

回到顶部