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

Windows 桌面控制桥 sheilacraig/dsh-windows-mcp-lite

DeepSeek Harness
sheilacraig20 天前有提交已提供中文文档扫描:无法判定

让智能体直接操作 Windows 桌面完成点击输入

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add sheilacraig/dsh-windows-mcp-lite
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · desktop
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 20 天前
档位由哪些信号合成

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

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

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/1(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 桥接内置MCP客户端
  • 默认启用16个工具
  • 操作Windows桌面

纯配置的 DeepSeek Harness 打包,把内置 MCP 客户端桥接到 CursorTouch/Windows-MCP:不含插件代码,默认启用上游 21 个工具中的 16 个。

README

由 DeepSeek 最新模型翻译生成
dsh-windows-mcp-lite 从 DeepSeek Harness 到 CursorTouch/Windows-MCP 的纯配置型桥。 它挂载 DSH 本体自带的 MCP 客户端桥,用 stdio 指向上游 Windows-MCP 服务器。整个集成就只有 cordis.patch.yml 一个文件——约 25 行,没有 JavaScript,装之前你能整屏读完。 DSH agent └─ mcp__windows__Snapshot / Click / Type / ... └─ @deepseek-ai/dsh-mcp-client (DSH 自带) └─ uvx windows-mcp@0.8.8 serve (stdio 子进程) └─ 你的桌面:UIA 树 / Win32 输入 / 屏幕采集 它刻意不做的事 这是设计取舍,不是"功能缺失清单": - 没有宿主插件。 没有 index.js,我们没有任何代码跑在你的 harness 进程里。 - 没有 web 路由。 不新增任何 HTTP 端点,因此不新增未鉴权的攻击面,也不会给你多一个"必须绑回环"的理由。 - 没有状态文件。 不写 ~/.dsh/...state.json,不占浏览器存储。 - 没有会改你 profile 的安装器。
展开完整文档(README 剩余 1 节)
dsh-windows-mcp-lite

从 DeepSeek Harness 到 CursorTouch/Windows-MCP 的纯配置型桥。

它挂载 DSH 本体自带的 MCP 客户端桥,用 stdio 指向上游 Windows-MCP 服务器。整个集成就只有 cordis.patch.yml 一个文件——约 25 行,没有 JavaScript,装之前你能整屏读完。

DSH agent
└─ mcp__windows__Snapshot / Click / Type / ...
└─ @deepseek-ai/dsh-mcp-client (DSH 自带) └─ uvx windows-mcp@0.8.8 serve (stdio 子进程) └─ 你的桌面:UIA 树 / Win32 输入 / 屏幕采集

它刻意不做的事

这是设计取舍,不是"功能缺失清单":

- 没有宿主插件。 没有 index.js,我们没有任何代码跑在你的 harness 进程里。
- 没有 web 路由。 不新增任何 HTTP 端点,因此不新增未鉴权的攻击面,也不会给你多一个"必须绑回环"的理由。
- 没有状态文件。 不写 ~/.dsh/...state.json,不占浏览器存储。
- 没有会改你 profile 的安装器。 npm run prewarm 在你自己的终端里装好并验证上游服务器,绝不替你改 profile patch。
- 没有运行时依赖、没有构建步骤。 dependencies 为空,不需要编译,也不需要你授予 allowBuilds。
- 不含针对某台机器的绝对路径。 桥从 PATH 调 uvx;仓库里的测试会在任何机器相关路径漏进发布文件时让构建失败。
- 没有 peerDependencies。 那一行只是点名 @deepseek-ai/dsh-mcp-client,从不 import 它,而 DSH 会从自己的安装里解析随附包。这与 DSH 官方的 templates/mcp 组合包形态一致——它同样不声明任何 peer。声明 peer 会变成一道硬性激活门禁,而其 SemVer 预发布规则会静默拒掉合法宿主;宿主范围改由 engines.dsh 声明,供市场卡片展示。
- 没有 screenshots.json。 没有界面可拍。给一个配置文件配上"截屏"是装饰,不是证据;市场会回退到它能抽到的内容。

如果你要的是应用内依赖安装器、默认关闭的 Computer Use 开关、或 doctor 诊断工具,这个生态里别的插件提供了。这个插件用它们换的是"小到一屏能审完"——对一个要把键盘、鼠标和屏幕交出去的插件来说,这一点比平时更值钱。

前置条件

- Windows 10 / 11。 上游服务器只支持 Windows。
- 带内置 MCP 客户端桥的 DeepSeek Harness。 声明范围 >=0.2.0-rc.1 <0.3.0-0;作者在 0.2.0-rc.2(桌面版)上实测通过。声明的是范围,实测的是那一个版本,两者别混。
- 运行 DSH 的那个进程的 PATH 上要有 uv。 uvx 负责拉起上游服务器并为它建隔离环境。用官方安装脚本装过 uv 的话,这一条已经满足。
- 可选:支持图片输入的模型,这样 Screenshot 才会以真正的图片进入对话。不支持时桥会把它退化成文本诊断;Snapshot 返回纯文本,完全不依赖视觉。

安装

应用内:设置 → 插件 → 添加插件,填其中一种:

dsh-windows-mcp-lite # npm 包名 github:sheilacraig/dsh-windows-mcp-lite # GitHub 仓库 C:\path\to\a\local\checkout # 本地绝对路径

CLI 持有的 profile:

dsh plugin --profile <profile> add dsh-windows-mcp-lite

Electron 桌面版的 desktop profile 属于应用本身,请走应用的插件面板。

装完重启 DSH,让新的补丁层在启动时合成。

第一次启动最慢

uvx 第一次会为上游服务器建隔离环境,需要下载几十 MB 的 Python 依赖。慢网下这是好几分钟,而桥等初始连接的时间远不到那么久;依赖缓存好之后就很快了。

所以放到 harness 外面做,那里没有超时:

npm run prewarm

脚本会跑 uvx windows-mcp@0.8.8 serve --exclude-tools ...——与桥完全相同的 argv——对它说 initialize + tools/list,打印服务器身份、耗时和完整工具清单,然后退出。它拉起的正是桥将要拉起的同一个进程,所以这一步成功就说明 harness 那侧再没有要下载或要发现的东西。环境预热后,作者本机实测 initialize 在 2.1 秒内返回。

模型能拿到什么

16 个工具,名字形如 mcp__windows__<工具>。上游 0.8.8 公布 21 个;本插件默认排除 5 个(见「默认最小权限」)。

| 工具 | 作用 |
| Screenshot | 截屏,附光标位置与窗口列表 |
| Snapshot | 完整桌面状态:无障碍树、可交互元素、可滚动区域 |
| DisplayInventory | 显示器布局、工作区、DPI |
| Click、Move、Scroll | 鼠标输入,含显式拖拽 |
| Type、Shortcut | 键盘输入 |
| Wait、WaitFor | 固定等待,或轮询直到界面条件成立 |
| MultiSelect、MultiEdit | 批量选中 / 批量输入 |
| Clipboard | 读写剪贴板 |
| Notification | Windows 通知 |
| App | 启动应用、调整或聚焦窗口 |
| ControlStatus | 当前谁在控制桌面——上游不提供排除它的方式 |

验证

1. 先跑一次 npm run prewarm(见上),它同时验证服务器与钉住的版本。
2. 在 DSH 里让 agent 调 mcp__windows__DisplayInventory。它只读显示几何,不点不敲。
3. 再调 mcp__windows__Snapshot 拿无障碍树文本。

默认最小权限

--exclude-tools PowerShell,Registry,FileSystem,Process,Scrape —— 上游这 5 个工具默认关闭,因为 DeepSeek Harness 已经有一套受自身审批策略与沙箱约束的 shell、文件、注册表、进程能力。再开一份上游的等价物,等于给同样的能力多开一条完全没有这些控制的路径。

要改这套集合,就在你自己的 profile patch 里覆盖那一行(见下)。去掉 --exclude-tools 即恢复全部 21 个工具。

配置

所有默认值都在 cordis.patch.yml。要改,请在你自己的 profile里覆盖那一行——不要改装好的那份:

$DSH_HOME/profiles/<profile>/cordis.patch.yml
- id: windows-mcp-lite
config:
serverName: windows
transport: stdio
command: uvx
args: [windows-mcp@0.8.8, serve, --exclude-tools, "PowerShell,Registry,FileSystem,Process,Scrape,App"]
toolCallTimeoutMs: 120000
failOnStartupError: false
env:
ANONYMIZED_TELEMETRY: "false"
WINDOWS_MCP_DISABLE_FLASH: "1"

关于这个覆盖,有两点最容易让人踩坑:

- 补丁是整块替换 config,不是深合并。 你漏写的每个键都等于删掉它。serverName、transport 必填,stdio 形态下 command 必填,streamable-http 形态下 url 必填。
- serverName 决定所有工具名(mcp__<serverName>__<工具>)。改了它等于改掉整套工具名,并且会让 prompt 缓存前缀失效。

一个 profile 只能有一份 Windows-MCP 桥。 两行用同一个 serverName 会冲突,后加载的那行在加载时失败。启用本插件前,请先停用同一 profile 里其它的 Windows-MCP 插件。

想用预装好的解释器而不是 uvx?先 uv tool install windows-mcp,然后把 command 设为 windows-mcp、args 设为 [serve, --exclude-tools, ...]。想用常驻 HTTP 服务?把 transport 换成 streamable-http 并给 url——注意 HTTP 形态没有 env,遥测与闪框的设置就归启动那个服务的方式管了。

安全

装上它,等于把你的鼠标、键盘、剪贴板和屏幕交给一个以你自己权限运行的进程里的 agent。请按"交出这个桌面会话"来评估。

- stdio,不是监听端口。 桥启动的是管道连接的子进程,不绑任何端口。
- 默认最小权限,见上。
- 上游遥测默认关闭(上游默认向 PostHog 匿名上报);同时关掉了那圈橙色截屏边框。
- Harness 的文件沙箱管不到它。 MCP 工具调用是普通工具调用,审批策略能拦;沙箱实现在 harness 自己的文件与 shell 工具里,不约束这个子进程。
- 控制权交还是尽力而为,不是边界。 上游允许真人通过明显移动物理鼠标或按 Ctrl+Alt+Shift+Backspace 夺回桌面;它已经启动的外部命令在夺权后仍会继续跑。
- 钉住上游版本。 windows-mcp@0.8.8 是固定版本,上游发版不会悄悄改变这座桥的行为。要升级就显式改这一行并重跑 npm run prewarm。
- 装之前请读 cordis.patch.yml。 那个文件就是插件本体,其余都是元数据、文档和测试。

排障

| 现象 | 原因与处理 |
| 工具调用返回 USER_CONTROL,或 ControlStatus 报 state: "user" | 上游把桌面优先给人,只有约 10 秒没有物理输入后才交给 agent。此刻控制权在你手里,wait_seconds 是它还在等的空闲时长。明显移动鼠标或按 Ctrl+Alt+Shift+Backspace 可以主动夺回控制权。ControlStatus 在其它调用全被拦下时仍然可用——工具被拒时先调它。 |
| 完全没有 mcp__windows__* 工具 | 桥没能拉起服务器。在终端里跑 npm run prewarm,它会以同样的原因失败并给出提示。最常见的原因是运行 DSH 的那个进程的 PATH 上没有 uvx:桌面快捷方式或编辑器带的 PATH 可能和你装 uv 的那个终端不一样。harness 日志里有 mcp-client(windows) 那一行。 |
| 升级后工具全变名字了 | 工具名是 mcp__<serverName>__<工具>。改 serverName,或者把钉住的上游版本换成一个工具名不同的版本,都会重命名整套工具。 |
| Screenshot 返回的是文本 | 当前模型不接受图片输入。改用 Snapshot:它抽的是无障碍树,不是像素。 |
| 所有桌面工具一起被拒 | 同一 profile 里有第二行 Windows-MCP 用了相同的 serverName,只有先加载的那行生效。停用另一个插件。 |

开发

npm install # 唯一的 devDependency:js-yaml,只给测试用
npm test # node --test,校验桥的各项不变量
npm run prewarm # 安装并验证上游服务器

npm test 会强制检查:有且只有一行 insert 指向 @deepseek-ai/dsh-mcp-client;serverName 符合工具名命名规则;args 里是钉住的 windows-mcp@x.y.z;排除清单与文档一致;工具数量与文档一致;以及任何发布文件里都不允许出现绝对路径或盘符。

卸载

在设置 → 插件里移除这个 bundle,或删掉 profile patch 里的那一行。停用 bundle 会连同整行配置一起撤掉。不会留残留:本插件不写任何文件。

许可与致谢

MIT —— 见 LICENSE。

- 真正干活的桌面自动化全部来自 CursorTouch/Windows-MCP(MIT),本仓库只负责接线。
- MCP 客户端桥属于 DeepSeek Harness,本仓库不分发它。
- 与 DeepSeek 官方及 Windows-MCP 作者均无隶属关系。
预览分享卡片长什么样 ↓sheilacraig/dsh-windows-mcp-lite
分享 · DeepSeek Harness Hub
sheilacraig/dsh-windows-mcp-lite

让智能体直接操作 Windows 桌面完成点击输入

回到顶部