dsh-mcp-studio

DSH PLUGIN开发与运行时

仓库 functy23/dsh-mcp-studio · npm dsh-mcp-studio

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 提供 MCP 服务与 Skills 管理面板:在侧边栏增删改 MCP 行、扫描导入其他 Agent 配置,并统一管理技能启停与编辑。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 18 复刻 2 · 未关闭 issue 3
最近更新 2026-10-06 创建于 2026-09-26
README 11.6 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add [email protected]
兼容 DSH 版本0.2.0-rc.2版本不匹配时安装会报错
Node.js 要求>=20来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@>=4.0.1 <5、react@^18.2.0需要同时安装的同级依赖
npm 包名dsh-mcp-studio可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-mcp-studio:DeepSeek Harness 的 MCP 与 Skills 管理面板

  • MCP 服务器增删改与启停
  • 扫描导入其他 Agent 配置
  • Skills 列表与 SKILL.md 编辑
  • 连接检查与 JSON 导入导出

适用场景

智能体编排联网搜索

上游标签

cordisdeepseek-harnessdshdsh-pluginmcpmodel-context-protocolpluginskillstypescript

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
  • L4.4_RESOLVED_ARTIFACT 安装版本已解析 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方functy23仓库 dsh-mcp-studio · 默认分支 main
分类开发与运行时developer
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue18 / 2 / 3收录时的数值,非实时
创建 / 更新2026-09-26 · 2026-10-06最后推送 2026-10-06
本站收录2026-09-27首次进入本站目录的时间

README 全文

11.6 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-mcp-studio

DeepSeek Harness 的 MCP 服务与 Skills 管理器 —— Tauri 桌面版的扩展面板,整合成一个跨端插件。






Issues • Changelog • English


📦 这是什么

Tauri 桌面版(deepseek-harness-desktop)的扩展面板功能原本分散在三个互相依赖的插件里:

上游包 作用 依赖
dsh-tauri-panel-extension 扩展面板本体:Skills / MCP / 插件市场 三个 tab + host 路由 dsh-tauri、dsh-tauri-ui
dsh-tauri 宿主/客户端框架桥:defineRoutes、defineService、definePanel、defineRegister、locale、store —
dsh-tauri-ui 面板用的组件库:Button/Chip/Modal/SegmentedControl/PanelPage/图标… dsh-tauri

要装 MCP 管理,就得把这三个一起装上,而且只在 Tauri 发行版里可用。

dsh-mcp-studio 把它们整合成一个包:上游源码原样搬运(src/panel、src/vendor/dsh-tauri、src/vendor/dsh-tauri-ui),
用构建期模块映射(src/bridge)把旧的裸包名 dsh-tauri / dsh-tauri/client / dsh-tauri-ui/client 指到本地文件,
再补上通用化所需的最小改造 —— 界面本身一行 UI 都没重写。

✨ 整合方式

src/                          ← 活代码:从产物入口走得到的部分
├── panel/                    ← dsh-tauri-panel-extension(原样搬运)
│   ├── host/                 service(mcp / skills / agents / repos / restart / rmtree)、routes(mcp / skill / import / roots / host)
│   ├── client/               components(mcp-tab / mcp-editor-form / mcp-import-dialog / skills-tab / extension-panel / market-tab)、
│   │                         register(extension-panel / skill-creator-prefill / styles)、locales、styles、store、apis
│   └── shared/
├── vendor/
│   ├── dsh-tauri/            ← dsh-tauri(host 框架工具 + client 框架桥;Tauri 专属的 invoke/iframe 桥保留但不进产物)
│   └── dsh-tauri-ui/         ← dsh-tauri-ui(面板用到的组件与样式工具)
└── bridge/                   构建期模块映射:旧裸包名 → 本地源码

vendor-archive/               ← 走不到产物入口的 vendor 子树(Tauri 专属桥、未搬运模块的测试)
不参与构建 / typecheck / 测试,只作上游对照

skills/                       ← 随包发布的技能(host 半按 package.json 的 files 一起带上)
skill-creator/                「新建技能」预填的 /skill-creator 靠它成立,见下
find-skills/                  与上游发布产物逐字节相同

产物只有两个文件:lib/index.js(host 半,ESM)与 lib/client.js(client 半,DSH ModuleLoader CJS)。

通用化改造(三处适配 + 行为修复)

  1. 模块映射:dsh-tauri、dsh-tauri/client、dsh-tauri-ui/client → src/bridge/*,因此上游源码不需要改 import。
  2. profile 探测(src/panel/host/service/profile.ts):上游只认 --profile 开关(Tauri 壳会传),
    嵌入 Web / Desktop 后必须补上 DSH_PROFILE / DSH_PROFILE_DIR / 启动参数里的 /profiles/,
    否则 MCP 行会写错 profile。
  3. 独立标识:插件 id 与路由前缀从 dsh-tauri-panel-extension 改为 dsh-mcp-studio(/dsh-mcp-studio/api/*),
    可与 Tauri 版共存、互不覆盖。

此外还有面板行为修复(依赖新版核心的导航能力变化,见 CHANGELOG.md):

  1. 「新建技能」开新对话:上游只走「工作区 → connectWorkspace 开新会话」,而 0.1.7 起导航搬到了 uiWorkspace。
    现在按四级退级:官方 sessions.create({ workspaceId }) 在当前会话所属工作区新建一条对话 → 适配层投影回的
    workspaces.connectWorkspace → 会话不属于任何工作区时按它的 cwd 建 → 实在无处可建才复用活跃会话。
    点一次「新建技能」不再抢走你正在写的那条对话。
  2. 随包技能 skills/:/skill-creator 是一条技能,不是内置命令——宿主只把技能目录里真实存在的条目
    认成 /名字。上游用 files: [&quot;skills&quot;] 打包了 anthropics/skills 的 skill-creator 与 vercel-labs/skills 的
    find-skills,本仓库按上游发布产物逐字节补回;缺了它,输入框里预填的 /skill-creator 就是普通文本:
    不高亮、点不开、发送后也不会加载任何技能。
  3. 插件市场 tab(Issue #1):上游用 iframe(window.parent !== window)才收编 dshmarket,那是给 Tauri 壳用的。本插件就是扩展面板宿主,Web / Desktop 上只要 dshmarket 发布了 render 就嵌进「市场」tab,并撤下设置页重复入口。

Tauri 专属部分(dsh-tauri/client 的 invoke / listen / iframe 消息桥、桌面侧边栏注入)保留在 vendor 里但不被引用,
所以产物不会访问 window.__TAURI__,在 Web 与 Desktop 上同样工作。

🚀 安装

装到你想用的那个 profile 上:

dsh plugin --profile web     add dsh-mcp-studio@latest   # DSH Web 版
dsh plugin --profile desktop add dsh-mcp-studio@latest   # DSH 桌面版

包内声明了 dsh.bundle.patch,安装即自动挂载;host 半更新后重启一次 DSH,然后硬刷新浏览器(Cmd/Ctrl+Shift+R)。

> 关于 dsh.client.platform: web:这里的 web 指客户端类型(Web GUI),不是 profile 名字。
> Web 与 Desktop 两个 profile 跑的都是 @deepseek-ai/dsh-web-app,同一个客户端,所以两端都能用;
> 本插件的客户端半依赖它的官方模块(ui-layout / ui-primitives / ui-renderer / locale)。
>
> Tauri 版不在范围内:Tauri 发行版有自己的原生扩展面板插件。本仓库只是把那三个包搬过来整合成
> 跨端插件,产物里没有任何 Tauri 运行时依赖,也不反过来替换 Tauri 版的原生插件。

本地开发(link):

pnpm install &amp;&amp; pnpm build
# ~/.dsh/profiles//package.json
#   &quot;dependencies&quot;: { &quot;dsh-mcp-studio&quot;: &quot;link:/abs/path/to/dsh-mcp-studio&quot; }
#   &quot;dsh&quot;: { &quot;profile&quot;: { &quot;bundles&quot;: [ ..., &quot;dsh-mcp-studio&quot; ] } }
pnpm install --dir ~/.dsh/profiles/

🧭 界面

装好后侧边栏出现 扩展(Puzzle 图标),点开就是原来的三 tab 面板:

Tab 能力
MCP 服务器列表(项目级 / 全局、启用状态、传输方式、URL / 命令)、新增与编辑表单、启用 / 停用、重启、连接检查、复制片段、从其他 DSH profile 或 Claude / Cursor / Windsurf / VS Code 配置导入扫描、JSON 导出导入
Skills 技能列表(按来源分组)、搜索、启用 / 停用、查看与编辑 SKILL.md、新建技能(在当前工作区开一条新对话并预填 /skill-creator)、删除、打开目录、刷新
插件市场 已安装 dshmarket 且其客户端提供 render 时,把市场面板嵌进本 tab,并藏掉设置页里的重复入口;未安装或旧版没有 render 时不出现该 tab,设置页入口保留

技能启停沿用上游策略:写 SKILL.md 的 user-invocable 策略位,不新增旁路状态。

🌐 HTTP API

面板的客户端半与脚本共用同源路由(沿用上游的安全闸门:变更方法要求本机回环来源、Origin 与 Host 不符直接 403):

方法 路径
GET /dsh-mcp-studio/api/skills、/api/mcp、/api/skill?name=、/api/roots、/api/import/scan
POST /api/mcp、/api/mcp/toggle、/api/mcp/check、/api/mcp/copy、/api/skills/refresh、/api/skill、/api/skill/policy、/api/import/apply、/api/roots、/api/open/dir、/api/host/restart
DELETE /api/mcp、/api/skill、/api/roots

🛠 开发

pnpm install
pnpm typecheck     # tsc --noEmit,解析宿主真实类型(当前全绿)
pnpm build         # node scripts/build.mjs → lib/index.js + lib/client.js
pnpm test          # node scripts/run-tests.mjs(vitest;见下方说明)

> 本仓库没有 CI:验证依赖 DSH 宿主与 macOS 签名,跑在干净 runner 上只能验一半,
> 所以 typecheck / test / build 一律以本地为准。

> pnpm test 不是裸 vitest run:vite 加载的 rollup 原生绑定既没签名,DSH 自带 Node 又带
> hardened runtime,两处都会让 dlopen 失败。包装脚本 scripts/run-tests.mjs 会先补一次 ad-hoc 签名,
> 再挑一个不带 hardened runtime 的 Node 跑 vitest(找不到会给出下一步)。
>
> 旧裸包名的映射共三处,改一处要三处同改:scripts/build.mjs(esbuild alias)、tsconfig.json(paths)、
> vitest.config.ts(resolve.alias)。

> 构建用 esbuild:DSH 运行时的 Node 开启了 macOS 库验证(library validation),
> rollup/rolldown 的 .node 绑定因 Team ID 不同会 dlopen 失败。详见 AGENTS.md。

🙏 鸣谢

  • deepseek-harness-desktop(Tauri 桌面版,作者 Hairyf 与贡献者)——
    本项目搬运的 dsh-tauri-panel-extension、dsh-tauri、dsh-tauri-ui 三个包全部来自该仓库,
    界面、交互与 host 服务逻辑均为其原始实现;没有它就没有这个插件。请优先支持上游与 Tauri 桌面版。
  • 官方插件开发文档:

📄 License

MIT(见 LICENSE)。搬运的上游代码同样以 MIT 发布,并附带
Additional Terms — No Commercial Secondary Development:
不得用于商业性二次开发,本项目亦以非商业开源形式分发。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-mcp-studio 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add [email protected]` 即可。对应的 npm 包名是 `dsh-mcp-studio`。

dsh-mcp-studio 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-mcp-studio 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-mcp-studio 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2。

dsh-mcp-studio 需要什么运行环境?

Node.js >=20;需要同时安装 @deepseek-ai/cordis@>=4.0.1 <5、react@^18.2.0。环境不满足时安装会失败,建议先确认本机版本。

dsh-mcp-studio 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-mcp-studio 有哪些功能?

MCP 服务器增删改与启停、扫描导入其他 Agent 配置、Skills 列表与 SKILL.md 编辑、连接检查与 JSON 导入导出。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

functy23 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。