DSH Hub
dsh-mcp-studio cover

functy23/dsh-mcp-studio

dsh-mcp-studio

UIWorkflow30 GitHub stars· updated 2026-10-06

dsh-mcp-studio is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile desktop add dsh-mcp-studio@latest

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-mcp-studio DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-mcp-studio.svg)](https://dshhub.dev/plugins/dsh-mcp-studio)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from functy23/dsh-mcp-studio, cleaned of badges and images.

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 / 启动参数里的 <DSH_HOME>/profiles/<name>, 否则 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: ["skills"] 打包了 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 上同样工作。

…

Related plugins