dsh-mcp-status

DSH PLUGIN浏览器与联网

仓库 my-dsh/dsh-mcp-status

浏览器与联网 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-mcp-status 是 my-dsh 维护的 浏览器与联网 类 DSH 可安装插件, 仓库为 my-dsh/dsh-mcp-status,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-mcp-status 是浏览器与联网类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类浏览器与联网 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-28 创建于 2026-10-26
README 8.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:my-dsh/dsh-mcp-status
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

浏览器与联网
字段来自项目仓库与公开索引,中文说明由本站标注

上游标签

cordisdeepseek-harnessdsh-bundledsh-pluginmcpmodel-context-protocol

验证等级与安全审查

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

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在浏览器与联网场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-mcp-status当前 L5 · 运行验证通过 低风险 0 未标注 有
dsh-our-free-model L3 · 安装规范通过 低风险 8,796 未标注 有
dsh-web L3 · 安装规范通过 低风险 8,549 未标注 无
BrowserSkill L4 · 沙盒安装通过 低风险 8,456 未标注 有
dsh-pocket L5 · 运行验证通过 低风险 1,656 0.2.0-rc.2 等 12 个 有
Browser4 L4 · 沙盒安装通过 中风险 1,152 未标注 有

仓库档案

浏览器与联网
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方my-dsh仓库 dsh-mcp-status · 默认分支 main
分类浏览器与联网network
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-26 · 2026-10-28最后推送 2026-10-28
本站收录2026-10-30首次进入本站目录的时间

README 全文

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

dsh-mcp-status

English | 中文

DeepSeek Harness 的 MCP 连接面板插件。

它在对话输入框下方的工具栏里加一个按钮,列出本机所有 MCP 服务器,并逐个开关连接。
不存任何东西:每次启动都是全关,你手动开这一轮要用的那几个。关掉 DSH 就全断,
下次启动重新从零开始。

为什么需要它

DSH 里每个 MCP 服务器都是一行 @deepseek-ai/dsh-mcp-client。这些行一旦启用,Loader
在启动时就会逐个拉起连接;连不上时 supervisor 进入重连退避(500ms → 30s,最多 10 次),
于是后台每几十秒就重试一次。对不常用的服务器来说,这既拖慢启动,也一直在烧子进程和
连接尝试。

本插件把「要不要连」这件事从启动时挪到用户手上:行保留为纯配置,连接由面板按需建立,
而且只在本次运行内有效——不存在「上次开着的这次自动连上」这种事。

安装

需要一个 web surface profile(dsh web 的默认 profile 名是 web)。git 和 pnpm
都要在 PATH 上。

# 从 GitHub 直装
dsh plugin --profile web add github:my-dsh/dsh-mcp-status

# 或安装已发布到 npm 的版本
dsh plugin --profile web add @my-dsh/dsh-mcp-status

包声明了 dsh.bundle,安装后自动加入 profile 的 bundle 层栈,重启 DSH 生效。

装完之后要做的一件事

把已有的 MCP 行关掉,让 disabled: true 写进 profile,这样下次启动才不会自动连。
在 GUI 里点一下对应的开关即可(关闭会写回 profile),或者直接改
~/.dsh/profiles//cordis.patch.yml:

- id: mcp-chrome
disabled: true
- id: mcp-mysql
disabled: true

界面

位置在输入框下方那行工具栏:和「+」号、「工作区内修改」在同一个 flex 容器(.tools)里,
紧挨「工作区内修改」右侧。

  • 按钮只显示 MCP 2/3(已连接数/总数),左侧圆点表示是否有连接(有连接=绿色,读取失败=红色)。
  • 点开是一个 320px 面板,列表按「已连接 / 未连接」分组:打开的第一眼就能看到谁在
    跑,不必逐行读状态。分组标题右侧是这一组的条数。
  • 每行 44px:状态点、服务器名、一行元信息、工具数、开关。工具数单独占一列(右对齐、
    等宽数字),因为它是「这条连接真的通到了东西」的唯一证据;没工具时显示 —。
  • 元信息只放能区分这台服务器的那一点(URL 的 host、脚本名或传输方式),完整命令行
    在 title 里悬停可见,不在 320px 里挤成一坨截断的碎片。
  • 字号已按可读性下限校准:服务器名 13px、其余正文与标签 12px(原本有 10px/11px 的)。
  • 面板打开时每 4 秒刷新一次;关闭时不发请求。刷新只是读状态,不会动任何连接。
  • 尺寸与相邻 chip 一致:高 28px、radius-sm、13px/20px、同样的 hover 底色。
  • 亮色与暗色都只用 DSH 主题令牌,切主题不会花;正文对比度实测 ≥5.6:1。
  • 中英文案跟随界面语言。

设计过程留档在 spec.md、directions.md、direction-approved.md,三方向初稿与截图在
design-demos/(thumbs.html 六格候选、dir-1/2/3.html 三个完整方向、index.html
并排对比)。最终采用的是方向 C:按连接状态分组,而不是按名字排序。

它是怎么工作的

行是纯配置。 每个 @deepseek-ai/dsh-mcp-client 行继续作为服务器配置的唯一来源
(transport / command / args / env / url),但被置为 disabled: true,Loader 不再挂载它们,
所以启动时零连接、零重连计时器。

不存任何东西。 开着的服务器集合只活在这个插件实例的内存里。重启、重载插件、改 profile,
都会让集合清空——每次启动都是零连接,你要用哪个就开哪个。

这条是刻意的。MCP 服务器一旦连上就是常驻子进程 + 一条长连接,还要占着 serverName(同一个
名字同一时刻只能有一个活着的实例)。把「上次开着的这次自动连上」做出来,等于把启动期的连接
成本又搬回来了,只是换了个人决定。所以这里干脆不记:只有你在这一轮里亲手打开的东西才连。

连接由面板接管。 打开开关时,插件用该行的配置在自己的 context 里挂载官方
dsh-mcp-client 插件,工具与资源照旧注册到 ctx.tools;关闭开关时 dispose 掉挂载,传输关闭、
工具注销。面板不写 profile:开关是运行时动作,不是配置编辑,所以它不会改你的
cordis.patch.yml,也不会触发重新组合插件树。

读列表不会重连。 面板的 list 路由是纯投影:它报告每一行此刻的 phase、工具数和开关状态,
不做任何连接动作。只有开关操作会真的挂载或卸载——这是关键,否则第二个窗口、第二个会话
每读一次列表就把别人正在用的连接拆掉一次(早期按工作区协调的版本正是这样,表现为工具在
会话中途反复「新增/移除」,甚至调用时报 unknown tool)。

一条兼容路径。 如果某个行在 profile 里仍是启用状态,面板会如实显示为「已连接(由该行
自己维护)」。想让它回到「启动时不连」,关闭开关即可——那条路径会走 Plugin Manager 把
disabled: true 持久化进 profile。这是面板唯一会写配置的地方,而且只在你明确关它时发生。

Host 路由

两条都在需要认证的 /api 通道上,客户端用同源 fetch('api/...') 调用。

  • GET api/mcp-status.list → { servers: [{ entryId, serverName, transport, target, enabled, connected, phase, tools, managedBy, editable }] }
  • POST api/mcp-status.set { entryId, enabled } → { ok, application, status };
    连不上时 { ok: false, reason: 'connect-failed', diagnostic }

两条都不需要 sessionId:面板没有「按会话」的语义,读也只是一次投影。

配置

cordis.patch.yml 里的行可以带可选配置,通过用户 patch 层覆盖:

- id: mcp-status
name: '@my-dsh/dsh-mcp-status'
config:
# 单次连接的等待上限毫秒(默认 8000)。超时后面板显示「连接中」并继续等,
# 不会把还在连的服务器判成失败。
connectTimeoutMs: 8000

没有数据库,也没有要清理的状态。从带数据库的旧版本升级时,那个
$DSH_HOME/mcp-status/mcp-status.db 已经不再被读取,可以直接删掉:

rm -rf ~/.dsh/mcp-status

依赖

运行时不 import 任何第三方包:MCP 插件通过
ctx.loader.import('@deepseek-ai/dsh-mcp-client') 从 Loader 取,所以这个 bundle 不需要
声明 dependencies。Host 半连 Node 内置模块都不 import——没有文件系统、没有 SQLite。

Client 半是纯 JavaScript(React.createElement,无构建步骤),只 require 平台模块表里的
react 和 react-dom。

源码布局

dsh-mcp-status/
├── index.js            # Host 半:读 MCP 行、挂载/卸载连接、两条 /api 路由(无持久化)
├── client.js           # Client 半:工具栏按钮与面板
├── cordis.patch.yml    # bundle 补丁:插入 mcp-status 行
├── locale/
│   ├── zh.json         # 插件列表里的标题与描述
│   └── en.json
├── icon.svg            # 插件图标
└── package.json        # dsh.bundle + dsh.client 声明

发布到 npm

需要一个能写 @my-dsh scope 的 npm 账号。package.json 里已设好
publishConfig.access: public,维护者执行:

npm login                       # 用 @my-dsh scope 对应的账号
npm publish

仓库根的 .npmrc 把 registry 钉在 https://registry.npmjs.org/,发布机器无需手工切换。
npm pack --dry-run 可预览实际 tarball 内容。

License

MIT

常见问题

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

在 DSH 里执行 `dsh plugin --profile web add github:my-dsh/dsh-mcp-status` 即可。

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

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

dsh-mcp-status 安全吗?

低风险。

dsh-mcp-status 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

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

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

这条记录的数据可靠吗?

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

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
浏览器与联网
按星标排序,可作替代方案

dsh-our-free-model

dsh-our-free-model

在 DeepSeek Harness 中装上这个 DSH plugin,无需登录、注册或填 API Key,即可直接调用 DeepSeek

L3 · 安装规范通过 8,796 星

dsh-web

dsh-web

侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。

L3 · 安装规范通过 8,549 星

BrowserSkill

BrowserSkill

BrowserSkill 的 DeepSeek Harness 浏览器自动化桥接插件,通过原生浏览器工具控制可见的 Chrome 和 Edg

L4 · 沙盒安装通过 8,456 星

dsh-pocket

dsh-pocket

DSH Pocket 让 DeepSeek Harness 装进口袋:电脑跑 dsh web,手机扫码即实时同步访问(局域网+公网),人在外

L5 · 运行验证通过 1,656 星

Browser4

Browser4

L4 · 沙盒安装通过 1,152 星

agentrq

agentrq

L4 · 沙盒安装通过 1,140 星

my-dsh 的其它插件

5 个

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