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

智能体协作桥 qian-dsh/dsh-as-mcp-server

MCP
qian-dsh10 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

让外部客户端实时观察并干预智能体工作

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

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

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/qian-dsh/dsh-as-mcp-server.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
  • 读取本地文件
    dsh/index.js:43
    const saved = JSON.parse(readFileSync(STORE_PATH, 'utf8').replace(/^ FEFF/, ''))
  • 写入本地文件
    dsh/index.js:78
    const ensureInbox = () => mkdirSync(inboxRoot, { recursive: true })
  • 读取本地文件
    dsh/index.js:87
    if (existsSync(path)) return
  • 写入本地文件
    dsh/index.js:88
    writeFileSync(path, `${JSON.stringify({
  • 写入本地文件
    dsh/index.js:114
    writeFileSync(join(inboxRoot, `${id}.json`), `${JSON.stringify(manifest, null, 2)}\n`)
  • 读取本地文件
    dsh/mcp.js:38
    const PKG_VERSION = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf8')).version
  • 发起网络请求
    dsh/mcp-test.js:17
    const res = await fetch(base, {
  • 发起网络请求
    dsh/mcp-test.js:42
    const res = await fetch(base, {
扫描于 2026/11/1(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

把 DSH 暴露成 MCP 服务器:流式推送思考、工具、文件通知,共享意图,持有地板锁期间拒绝 DSH 写入,回合中注入提醒,并委派评审。

README

由 DeepSeek 最新模型翻译生成
dsh-as-mcp-server 把 DSH 变成一个 MCP server,让任何 MCP 客户端都能看见 agent 正在做什么,并在过程中干预它。 两个 agent 共用一份工作区,通常的结局是互相覆盖。这个桥给它们一套共享协议:对方在想什么、正在动哪个文件、谁占着工作区,以及怎么打断。 连上来之后对方能拿到什么 | 能力 | 机制 | | 看见 agent 在想什么 | LLM 流式增量 → notifications/dsh/thinking(200 ms 节流) | | 看见它在动什么 | 工具调用 → notifications/dsh/tool;write/edit 目标 → notifications/dsh/file | | 共享意图 | dsh_set_intent / dsh_get_intent,每轮自动注入 DSH 的 system prompt | | 同一时间只许一个写 | dsh_lock_acquire / dsh_lock_release 地板锁——持锁期间 DSH 的 write/edit/git 被物理拒绝 | | 打断当前这一轮 | dsh_inject_alert → 经 agent/pre-step 插进正在执行的步骤 |
展开完整文档(README 剩余 1 节)
dsh-as-mcp-server

把 DSH 变成一个 MCP server,让任何 MCP 客户端都能看见 agent 正在做什么,并在过程中干预它。

两个 agent 共用一份工作区,通常的结局是互相覆盖。这个桥给它们一套共享协议:对方在想什么、正在动哪个文件、谁占着工作区,以及怎么打断。

连上来之后对方能拿到什么

| 能力 | 机制 |
| 看见 agent 在想什么 | LLM 流式增量 → notifications/dsh/thinking(200 ms 节流) |
| 看见它在动什么 | 工具调用 → notifications/dsh/tool;write/edit 目标 → notifications/dsh/file |
| 共享意图 | dsh_set_intent / dsh_get_intent,每轮自动注入 DSH 的 system prompt |
| 同一时间只许一个写 | dsh_lock_acquire / dsh_lock_release 地板锁——持锁期间 DSH 的 write/edit/git 被物理拒绝 |
| 打断当前这一轮 | dsh_inject_alert → 经 agent/pre-step 插进正在执行的步骤 |
| 委托一次审查 | dsh_review_request → 落盘到收件箱(inbox/<id>.json),结果回写 inbox/done/ |

8 个 MCP 工具

dsh_get_status · dsh_get_intent · dsh_set_intent · dsh_lock_acquire · dsh_lock_release · dsh_lock_status · dsh_inject_alert · dsh_review_request

通知事件(server → client,SSE)

notifications/dsh/status · thinking · tool · file · intent · lock · alert-queued · review

安装

dsh plugin --profile web add dsh-as-mcp-server

然后在你的 MCP 客户端里加上这个桥——任何支持 Streamable HTTP 的客户端都行(WorkBuddy、Claude Desktop 配 MCP-HTTP 适配器、Cursor、Cline……):

{
"mcpServers": {
"dsh-bridge": {
"type": "streamableHttp",
"url": "http://127.0.0.1:51630/mcp",
"timeout": 60000
}
}
}

重启 DSH。日志里应该出现:

[dsh-as-mcp-server] MCP server 就绪: http://127.0.0.1:51630/mcp

日志前缀是 [dsh-mcp-bridge](内部标识,历史原因),和包名不一致,但确实是这一行。

不装也能先自测

终端 A —— 起一个演示服务(51999 端口)
node dsh/mcp.js 51999

终端 B —— 握手、8 个工具、地板锁、SSE 通知流
node dsh/mcp-test.js http://127.0.0.1:51999/mcp

预期:13 项检查全过,最后一行是 全部通过 ✅。

另有一套不需要起服务的单元回归:

node dsh/bridge-regression.test.mjs # 13 通过 / 0 失败

配置

~/.dsh-mcp-bridge/config.json(全部可选):

{
"port": 51630,
"host": "127.0.0.1",
"token": "",
"lockTtlMs": 300000,
"denyTools": ["write", "edit", "git"],
"alertInjection": true,
"inboxRoot": ""
}

inboxRoot 默认 ~/.dsh-mcp-bridge/inbox。

诚实边界

- 默认只监听 loopback。 绑 127.0.0.1;支持 token 但默认为空。不要把这个端口暴露到公网。
- 锁只在 DSH 一侧被强制执行。 持锁期间,DSH 的 write/edit/git 在 tools/pre-execute 被拒绝。远端客户端是靠约定守锁的——这是一个协作原语,不是防恶意对手的安全边界。
- 提醒注入是尽力而为。 走 agent/pre-step。如果当轮插不进去,提醒留在队列里,下一轮必达。
- 每个客户端一套 Server + transport。 这是 MCP SDK 的限制;多个客户端(比如一个记录器加一个 agent)各拿各的。重连必须换新 sessionId(旧 id 会 400 死循环)。
- 思维流只转发文本增量,工具参数截断到前 120 字符——这是可见性通道,不是完整对话录制。

许可

MIT
预览分享卡片长什么样 ↓qian-dsh/dsh-as-mcp-server
分享 · DeepSeek Harness Hub
qian-dsh/dsh-as-mcp-server

让外部客户端实时观察并干预智能体工作

回到顶部