MCP 服务器管理插件:在 DeepSeek Harness 设置界面的左侧边栏新增「MCP…
35.4/100
综合分
8
GitHub 星标
760
npm 周下载
—/5
用户评分
数据截至 2026/10/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-mcp-manager-plusnpm 源 · dsh-mcp-manager-plus 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 19 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-mcp-manager-plus @ 0.4.4
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖要求 >=0.1.6-alpha.1 <0.2.0-0 || >=0.2.0-rc.1 <0.3.0-0 · 最新 0.2.1-rc.5 兼容
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/3 17:53:25
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
- 写入本地文件lib/index.js:623
mkdirSync(dirname(patchPath), { recursive: true }); - 写入本地文件lib/index.js:625
writeFileSync(temp, text); - 写入本地文件lib/index.js:626
renameSync(temp, patchPath); - 读取本地文件lib/index.js:1006
if (existsSync(patchPath)) accessSync(patchPath, constants.W_OK); - 读取本地文件lib/index.js:1006
if (existsSync(patchPath)) accessSync(patchPath, constants.W_OK); - 读取本地文件lib/index.js:1007
else accessSync(dirname(patchPath), constants.W_OK); - 发起网络请求lib/client.js:431
return fetch(API_PREFIX + '/' + route + query, { - 读取本地文件lib/patch.js:520
return readFileSync(patchPath, 'utf8');
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
5 张 · 点击查看大图功能亮点
- 新增MCP管理页面
- 查看与启停服务器
- 编辑重启删除添加
展开完整介绍(86 字)↓
MCP 服务器管理插件:在 DeepSeek Harness 设置界面的左侧边栏新增「MCP 管理」页面,让你直接查看、启用/停用、编辑、重启、删除和添加 MCP 服务器。
最近更新
在 GitHub 查看全部 →v0.4.42026-10-15
· dsh-mcp-manager-plus v0.4.4
· Fixed
· profile 顶层被提升到 js-yaml v5 时整页「加载失败:yaml.Type is not a constructor」:
loadYaml() 用 v3/v4 的自定义类型 API(new yaml.Type(...) + schema.extend(...))
承载 !!js 标签,而 js-yaml 一直是按 profile 锚点解析的——任何别的插件
(如声明 js-yaml@^5 的插件)把 v5 提升到 profile 顶层后,new yaml.Type(...)
就抛错,所有路由 500、面板完全不可用(感谢 @asfre 的报告与定位)。
现在不再「谁先解析到就用谁」,而是在新增的 lib/yaml.js 里探测能力:
一个副本构造不出 !!js 类型就跳过、继续沿锚点往下找,于是插件在
dependencies 中钉住的 js-yaml@^4.1.0 会接管,而不是被顶层提升的 v5 拖垮
· 所有副本都不兼容时仍有兜底:若插件目录与 profile 里没有任何能构造自定义类型的
副本,也不再抛错,而是改用兼容解析——解析前把 !!js 标签替换成占位符、解析后再
还原为表达式节点(扫描会跳过引号与注释内的文本,args: ["echo !!js x"]、
PLAIN: "!!js not a tag" 这类值不会被误判成表达式)。面板因此照常加载与管理,
且 !!js 语义不被改写:降级解析与快路径读出的值完全相同,回写的字节也完全一致
· 降级时在页面「配置提示」里写明实际解析到的 js-yaml 与降级状态,不再静默降级
· Added
· dependencies 新增 js-yaml: ^4.1.0:插件自带确定的副本,不再依赖 profile 顶层
提升结果;解析顺序仍是 profile 锚点优先(与载入器 include 插件一致),只是不再
接受一个无法承载 !!js 的副本
· 回归用例 test/yaml.test.mjs(11 项):能力探测(Type 抛错、缺 extend、
非对象等形态)、注入加载器验证「profile 锚点的不兼容副本让位于插件的可用副本」、
完全没有可解析副本时报出明确错误,以及降级解析下 !!js 的行内 / 块 / 流式三种
写法、「与快路径逐字节一致」、「回写后仍能通过校验并往返」
· 回归用例 test/host.test.mjs:在临时 profile 里放一个「v5 形状」(可解析、无自定义
类型)的 js-yaml,GET /servers 必须仍返回 200 并列出种子行,而不是整页不可用
(测试总数 115 → 127)
v0.4.32026-10-10
## dsh-mcp-manager-plus v0.4.3
· Fixed
· 安装路径含空格时补丁文件被误判为「不可写」(DSH Desktop / Windows,#3):
fromFileUrl() 用 new URL().pathname 读取 include 路径,会保留百分号编码,
D:\DeepSeek Harness\ 因此变成 DeepSeek%20Harness,指向一个并不存在的文件,
W_OK 探测失败后页面报「配置文件不可写」并拒绝保存。
现在改用 fileURLToPath()(解码 %20 等转义,并正确处理 Windows 盘符前导斜杠
与 UNC 主机),手动解析仅作兜底。感谢 @Lzh3070。
· 暗色主题主按钮白底白字、文字不可读(#1):
.mcpmp-btn-primary 把前景硬编码成 #fff,而背景用的
--dsw-alias-brand-primary 会随主题翻转(亮色 #0f1115、暗色 #f9fafb)。
现在按 harness 自身主按钮的配对改用 --dsw-alias-button-primary-fill +
--dsw-alias-label-primary-foreground(分别以 brand-primary /
label-primary-inverted / #fff 兜底),hover 换成官方
--dsw-alias-button-primary-hover,取代在近白底上几乎无效的
filter:brightness(1.08)。感谢 @OTH-C3。
· Added
· 回归用例:file:// include 路径含 %20 时 patchPath 必须指向真实文件且
writable 为 true
· 回归用例:任何把会随主题翻转的填充色(brand-primary / button-primary-fill)
与字面前景色写进同一规则的样式都会被判失败
测试总数 113 → 115。
v0.4.22026-09-30
## dsh-mcp-manager-plus v0.4.2
· Fixed
· peerDependencies 版本范围在预发布版本上不成立:上一版 >=0.1.6-alpha.1 =0.1.6-alpha.1 =0.2.0-rc.1 <0.3.0-0,
在 pnpm 与 harness 兼容门禁两种语义下均满足 0.1.6-alpha.1 与 0.2.0-rc.x,仍拒绝 0.3.0。
附:0.4.1 发布后 registry.npmmirror.com 镜像未同步该版本,更新失败的另一半原因是
镜像缺版本;本版已重新发布并触发镜像同步。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-mcp-manager-plus
MCP 服务器管理插件:在 DeepSeek Harness 设置界面的左侧边栏新增「MCP 管理」页面,可直接查看、启用/停用、编辑、重启、删除与添加 MCP 服务器。
为什么要开发这个插件?
- 为了方便管理 DeepSeek Harness 中的 MCP 服务器,无需打开配置文件。
- 插件市场中的其他 MCP 插件大多只支持旧版 DSH,装到新版 DSH 上根本没法用,我不得不自己写一个。
如果你发现本插件在新版 DSH 上无法正常工作,请提交一个 issue。
截图
设置 → MCP 管理:服务器列表、连接状态与启停开关。
MCP 管理主页面
展开服务器:查看该服务器当前注册到模型的全部工具及描述。
展开查看工具列表
添加:直接粘贴任意工具的 MCP 配置,自动识别格式(含 Codex 的 TOML 与带注释的 JSON)。
粘贴导入配置
编辑 · 表单模式:逐字段修改,弹窗顶部可随时切换到 JSON 模式。
表单模式编辑
编辑 · JSON 模式:打开即预填该服务器当前配置,可整段粘贴替换;改服务名即为重命名。
JSON 模式编辑
安装说明
版本要求: DSH >= 0.1.6-alpha.1 且 < 0.3.0(已在 0.1.6-alpha.1 与 0.2.0-rc.2 上测试)。
展开完整文档(README 剩余 1 节)
dsh-mcp-manager-plus MCP 服务器管理插件:在 DeepSeek Harness 设置界面的左侧边栏新增「MCP 管理」页面,可直接查看、启用/停用、编辑、重启、删除与添加 MCP 服务器。 为什么要开发这个插件? - 为了方便管理 DeepSeek Harness 中的 MCP 服务器,无需打开配置文件。 - 插件市场中的其他 MCP 插件大多只支持旧版 DSH,装到新版 DSH 上根本没法用,我不得不自己写一个。 如果你发现本插件在新版 DSH 上无法正常工作,请提交一个 issue。 截图 设置 → MCP 管理:服务器列表、连接状态与启停开关。 MCP 管理主页面 展开服务器:查看该服务器当前注册到模型的全部工具及描述。 展开查看工具列表 添加:直接粘贴任意工具的 MCP 配置,自动识别格式(含 Codex 的 TOML 与带注释的 JSON)。 粘贴导入配置 编辑 · 表单模式:逐字段修改,弹窗顶部可随时切换到 JSON 模式。 表单模式编辑 编辑 · JSON 模式:打开即预填该服务器当前配置,可整段粘贴替换;改服务名即为重命名。 JSON 模式编辑 安装说明 版本要求: DSH >= 0.1.6-alpha.1 且 < 0.3.0(已在 0.1.6-alpha.1 与 0.2.0-rc.2 上测试)。DSH 自身依赖 Node.js >= 24.2.0 与 Git >= 2.31.0。 方式一:插件市场一键安装 已安装 dshmarket 的话,打开 设置 → 插件市场,搜索 dsh-mcp-manager-plus,点一下安装即可。 方式二:命令行安装 三种来源任选其一(--profile web 表示装进 web profile,其他 profile 同理替换): npm 包(发布后可用) dsh plugin --profile web add dsh-mcp-manager-plus GitHub 仓库 dsh plugin --profile web add https://github.com/appthin/dsh-mcp-manager-plus.git 本地目录(先把仓库 clone 到本地;以 link 方式安装,改动即时生效,适合开发调试) dsh plugin --profile web add <clone 下来的本仓库目录> 随后重启 dsh(或等待 profile 热重载),在「设置 → MCP 管理」即可看到页面。 验证 打开 dsh web,进入 设置 → MCP 管理(侧边栏链条图标的那一项)。 页面没有出现时的排查顺序: 1. 换最新版 Chrome/Edge —— 部分插件的 bundle 在 Chromium 122 以下的内核会加载失败; 2. 确认装进了正在使用的 profile(dsh plugin --profile web ls 查看清单); 3. 浏览器控制台有报错时,附上报错内容提交 issue。 更新与卸载 dsh plugin --profile web ls # 查看已装插件 dsh plugin --profile web add dsh-mcp-manager-plus # 更新(重新 add 即覆盖为最新版) dsh plugin --profile web remove dsh-mcp-manager-plus # 卸载 装有插件市场时,更新也可以在市场页一键完成。卸载后 profile 补丁层里由本插件写入的 MCP 服务器行会原样保留——它们是你的配置数据,不会被连带删除。 功能 | 能力 | 说明 | | 列表 | 展示配置文件中的 MCP 服务器 | | 展开 | 点开一行查看该服务器当前注册到模型的所有工具及其描述 | | 启用 / 停用 | 写入补丁层的 disabled 覆盖,约 1 秒内热生效,无需重启 dsh | | 编辑 | 两种模式可随时切换:表单(逐字段)或 JSON(大输入框),见下节 | | 重启 | 就地销毁并重新初始化该服务器的连接(配置不变),用于连接中断后恢复 | | 删除 | 从配置文件中移除该服务器及其所有覆盖行 | | 添加 | 粘贴任意主流工具的 MCP 配置即可,自动识别格式,支持一次导入多个(见下表) | | 多语言 | 中文 / English。默认跟随界面语言(取不到时按浏览器语言探测),页面右上角可随时切换并记住选择;宿主端的错误与提示文案同样跟随 | 编辑时的两种模式 编辑已有服务器时,弹窗标题右侧有一个分段开关(带图标、带滑动指示块,radiogroup 语义,支持左右方向键),随时可来回切换: - 表单模式:逐字段编辑(服务名、连接方式、命令、参数、环境变量、工作目录、URL、请求头)。 - JSON 模式:一个大输入框,打开时已填入该服务器当前的配置(而不是空框或示例),可以直接整段替换粘贴 —— 粘贴别处复制来的配置片段尤其方便。 框上方有一份可折叠的格式说明,列出支持哪些工具、各自的容器键是什么,与「添加」弹窗共用同一个组件。 两种模式最终都写入同一行,因此: - JSON 里改服务名即为重命名,该行会保留原来的 id 与启用/停用覆盖,不会多出一个副本; - JSON 模式同样支持全部导入格式(含 Codex 的 TOML),因为格式解析与编辑/新增无关; - 一次粘贴里出现多个服务器时会被拒绝并列出名字,避免「到底保存了哪个」的歧义; - 切回表单模式时以磁盘上的行为准,不会带过去 JSON 框里改了一半的内容。 只有已存在的服务器才有 JSON 模式:JSON 保存是「更新指定的一行」,需要一个行名。 新增走「添加」按钮,它本来就是 JSON 模式。 格式说明里的容器键表(FORMAT_ROWS)与解析器必须一致,否则说明就是错的 —— test/client.test.mjs 有一条测试把两边对起来验:表里每个键都真的能被解析,解析器支持的 14 个工具名也都必须出现在表里。 支持导入的配置格式 粘贴时不需要改写,插件会识别容器键、字段名与文件语法: | 工具 | 容器键 | stdio | 远程 | 备注 | | Claude Code · Cursor · Windsurf · Qoder · Cherry Studio · CodeBuddy · TRAE · ZCode | mcpServers | command/args | url/headers | 标准格式 | | DeepSeek Harness(本插件自身) | mcpServers | command/args | url/headers | 原生格式 | | VS Code | servers | command/args | type:"http" + url | 外层键不同 | | Codex | mcp_servers | command/args | url | TOML,不是 JSON | | OpenCode | mcp | type:"local",command 是数组 | type:"remote" + url | 结构差异最大 | | Continue | mcpServers 数组 | command/args | — | 名字在条目里 | | Pi | mcpServers + settings | command/args | transport:"streamable-http" | settings 会被忽略 | 另外还兼容这些差异: - TOML 输入:Codex 的 config.toml 直接粘贴即可(含嵌套的 [….env] 表与行内注释)。 - JSON 注释与尾逗号:多个工具的文档示例带 //、/* */ 和尾逗号,均可解析。 - type:"sse":映射到本插件的 streamable-http 传输。 - serverUrl(Windsurf 的远程写法)、http_headers(Codex)、command 数组(OpenCode)都会被正确归位。 - 未知字段:如 enabled、lifecycle、description 等不会导致导入失败,只是不写入配置。 导入时会报出识别到的来源,例如 已识别 Codex 配置;新增 xxx;单条失败只跳过该条,并把它和失败原因一并列出,不会让整段粘贴白费。 配置写在哪里 插件的「唯一真相」是当前 profile 的用户补丁层: $DSH_HOME/profiles/<profile>/cordis.patch.yml 新增一个 MCP 服务器就是向该文件追加一行 loader patch entry: - insert: - id: mcp-github name: '@deepseek-ai/dsh-mcp-client' config: serverName: github transport: stdio command: npx args: ["-y", "@modelcontextprotocol/server-github"] env: GITHUB_TOKEN: "…" 停用则是同级的 disabled 覆盖行: - id: mcp-github disabled: true 因为 profile 使用 patchReload: live,保存后 loader 会在约 1 秒内重新编排插件树,所以配置改动既是持久化的,也是热生效的 —— 插件本身不改动运行中的 loader 树,只写文件,然后由浏览器端短暂轮询观察收敛后的实际状态。 安全约定 - 只响应本机请求。 API 挂在同一个 loopback web server 上,非 loopback 来源直接 403。 - 写入前必校验。 每份候选文件都会重新解析为「顶层 loader patch 数组」,解析失败则拒绝写入,因此一次错误编辑不会让下次启动失败。 - 不碰不归它管的内容。 文件是用户手写的:注释、无关条目、未知字段在改写后原样保留,只重写被改动的那一个块。 - 凭据不外传。 形如 KEY|PASSWORD|SECRET|TOKEN 的配置值在读取时被掩码,浏览器回传掩码时再从原值还原,真实密钥不会出现在页面里。 - 部署内置的服务器只读。 由 bundle 层提供的行可以停用/启用,但不能编辑或删除。 开发 node test/run.mjs # 全部八个测试套件(共 127 项) | 套件 | 覆盖范围 | | test/patch.test.mjs | 补丁层分段、解析、校验、生成与逐字节往返 | | test/yaml.test.mjs | js-yaml 兼容层:能力探测、跳过硬编码不兼容的副本、降级解析下 !!js 的语义保真 | | test/import.test.mjs | 14 种工具的配置格式、TOML 子集、JSON 注释与尾逗号 | | test/editjson.test.mjs | JSON 模式编辑:原地更新、重命名保留 id 与覆盖、多条拒绝 | | test/host.test.mjs | 宿主端全部 HTTP 路由,用假的 Cordis 上下文驱动真实 apply() | | test/client.test.mjs | 浏览器 bundle 能否被 shell 加载并注册设置页,含模式开关 | | test/compose.test.mjs | 用真实的 bundle 层组合 profile,确认本插件的行能挂载 | | test/live.test.mjs | 只读地跑真实 profile,确认线上配置能被正确读出且凭据已掩码 | 测试不依赖任何测试框架,只用 Node 内置的 node:test,并复用 profile 中已有的 js-yaml(与运行时同一条解析路径,含 lib/yaml.js 的兼容层)。 结构 | 文件 | 作用 | | lib/index.js | 宿主端:HTTP API、清单投影、写操作 | | lib/import.js | 导入解析:各工具配置格式 → 本插件的服务器形状 | | lib/patch.js | 补丁层读写:分段、解析、校验、生成 | | lib/yaml.js | js-yaml 兼容层:副本能力探测、跳过硬编码不兼容的副本、无自定义类型时的降级解析 | | lib/client.js | 浏览器端:设置页面 UI(手写 lazy-CJS bundle,无构建步骤) | | cordis.patch.yml | bundle 补丁,把本插件插入 profile 的层栈 | 辅助脚本 | 脚本 | 作用 | | node tools/e2e-import.mjs | 起真实宿主端,把 14 种工具的配置逐个 POST 到 /import,再校验写出的补丁行 | | node tools/roundtrip-json.mjs | 校验 JSON 模式预填的配置能原样往返(不改任何内容点确认不会丢字段) | | node tools/check-client-bundle.mjs | 按 shell 的方式加载客户端 bundle,检查注册结果与导航图标 CSS | | node tools/check-segmented.mjs | 校验分段开关的滑块几何(内缩、半宽、位移)与轨道假设一致 | | node tools/preview-edit-modes.mjs | 用真实组件渲染编辑弹窗的两种模式,生成 edit-modes-preview.html | | node tools/check-nav-icon.mjs | 校验导航图标的 mask 载荷是合法可绘制的 16×16 模板 | | node tools/gen-icon-preview.cjs | 从 dsh 前端 bundle 提取图标,生成 icon-options.html 对照页 | | node tools/dump-icon.cjs <IconName> | 打印某个内置图标的 SVG 路径,便于手写覆盖 | | node tools/verify-release.mjs [版本] | 发布后验证:registry 是否有该版本、全新安装是否带上了自己的 js-yaml、以及「profile 顶层被换成 v5」的两种情形;--sync-mirror 顺带等 npmmirror 同步 | License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
appthin/dsh-mcp-manager-plus
MCP 服务器管理插件:在 DeepSeek Harness 设置界面的左侧边栏新增「MCP…
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,025未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,358已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13938 个插件含 PR 收录与…
★ 350已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目