Nuphus MCP 桌面自动化
让任何 MCP 客户端控制桌面、键鼠、窗口和 Chrome。
按维度查看评分与理由
项目明确披露其可获得近似远程操作者的整机控制权,并建议避免提权、限制 stdin 访问;stdio、本地 OCR、可选外部视觉 API、模型下载位置和浏览器连接方式也有说明。路径校验、破坏性工具标注、剪贴板清理及依赖审计是实质保护,因此数据流、敏感数据处理、依赖安全和外部影响获中等分。但权限范围本质上极广,写操作默认无需确认,严格确认仅为可选配置;桌面点击、输入、导航、Cookie 修改等普遍缺乏通用回滚机制。归属可追溯到仓库、npm 包和“Nuphus Team”,但发布者身份未经验证且个人维护者信息不清晰,故不满分。
README、SECURITY 和工作流对架构、平台支持、安全模式及测试范围基本一致;缺少浏览器时、视觉未配置、模型下载失败和外部 CDP 失效均声明会返回明确错误。依赖与运行前提、自动探测、预构建平台包及发布前版本一致性检查处理得较好。扣分在于 Linux 桌面能力仅为部分支持、OCR/YOLO依赖首次联网下载、真实 Chrome 集成测试在普通 CI 中仍允许失败,且所述错误质量未由给出的实现代码直接展示。
文档覆盖通用 MCP 客户端、Claude Desktop、DSH、托管或外部 Chrome、指纹浏览器、保留登录状态、视觉模型以及各操作系统,受众和场景非常清楚。能力边界也明确区分桌面与 DOM 自动化、Chrome 136+ 限制、平台差异、BYOK 和外部浏览器所有权。环境适配说明十分具体。触发精度仅获中等分,因为当前材料未包含 TOOLS.md 的完整参数模式和逐工具触发条件,无法确认所有高风险工具的调用约束。
README 的结构、仓库布局、先决条件、平台矩阵、安装方式、客户端配置、演示与测试命令完整;产品名、命令、环境变量和工具前缀保持稳定。限制说明和 MIT 许可证文本充分,发布工作流还校验标签与各包版本一致并生成发行说明。扣分在于没有提供独立 FAQ 或变更日志文件;维护责任主要写作“Nuphus Team”,虽有安全报告渠道、响应承诺和仅支持最新版的策略,但责任主体和长期更新路径仍不够具体。
产品将桌面控制、窗口管理、本地 OCR、可选视觉理解和 Chrome CDP 集成为标准 MCP 工具,较单一浏览器或鼠标自动化具有明显增量价值。输出形式提到 PNG/base64、可访问性树引用、OCR 元素、JSON-RPC 和结构化错误,普通集成可用;但缺少完整工具参考和实际响应样例,无法判定全部输出的一致可消费性。基础桌面与浏览器功能无需 API 密钥,但视觉调用、模型下载、存储、首次启动和机器控制风险均有成本,“zero-cost”仅适用于较窄含义,因此未给满分。
README 的若干安全、平台、测试和发布主张可由 SECURITY、Cargo 工作区及 CI/发布工作流交叉支持,许可证也由元数据和 LICENSE 双重支持。工作流展示了静态可检查的测试、审计和发布门禁,但材料未包含核心实现、Cargo.lock、审计例外文件、TOOLS.md 或测试源码,因此38项工具、60项测试、路径校验细节及错误行为仍主要是项目自述。文档通常能区分默认行为、建议、限制和可选功能,但“battle-tested”和本地7/7等主张在所给材料中缺乏独立佐证。
- 该服务器默认允许无需确认的写操作;部署时应显式启用 --confirm-write 或 NUPHUS_MCP_CONFIRM_WRITE=1,并把任何可写入其 stdin 的进程视为拥有整机控制权。
- desktop_vision 会把屏幕内容发送到用户配置的外部模型端点;截图可能包含凭据、私人消息或其他敏感信息,应在调用前审查端点、提示内容和数据保留政策。
- 浏览器工具可读取或修改 Cookie、操作已登录会话;复制真实浏览器配置也会扩大凭据暴露面。建议使用隔离配置文件和低权限专用账户。
- 首次 OCR/YOLO 使用会下载模型,且给出的材料未包含锁文件、审计例外内容或下载完整性机制;上线前应核验依赖、模型来源、校验方式及当前审计结果。
- Linux 桌面功能被明确标为部分支持,macOS 需要 Accessibility 权限;真实 Chrome 集成测试在普通 CI 中尚非强制门禁。
这个 Agent 能做什么,适合哪些场景?
nuphus-mcp 是一个轻量、跨平台的桌面与浏览器自动化 MCP 服务器,提供 38 个工具,其中包含 15 个桌面工具和 23 个浏览器工具。它以单个二进制进程运行,通过标准输入输出传输逐行 JSON-RPC 2.0,不启动守护进程或 HTTP 服务。工作区由 nuphus-mcp 服务器、基于 chromiumoxide CDP 的 nuphus-browser,以及负责桌面控制的 desktop-api 三部分组成。它可以截取屏幕、操作窗口与键鼠、写入或清理剪贴板,并通过 Chrome DevTools Protocol 导航、读取无障碍树、点击、输入、执行脚本和管理标签页、Cookie、上传及下载。基础桌面和浏览器自动化不需要 API 密钥;OCR 使用本地 PaddleOCR,语义视觉功能则连接用户自己的 OpenAI 兼容或 Anthropic 原生视觉接口。Windows 提供完整桌面能力,macOS 需要授予辅助功能权限,Linux 的窗口和输入能力仅为部分支持。
MCP 客户端通过 stdio 启动 nuphus-mcp,并调用 initialize、tools/list 和 tools/call。桌面链路由 desktop-api 读取屏幕和窗口状态,生成 PNG/base64 截图,控制窗口位置与尺寸,执行鼠标点击、拖动、滚动、键盘输入和快捷键,并处理剪贴板。desktop_perceive 使用本地 PaddleOCR 返回文字元素及像素坐标,还可调用可选的 YOLO 图标检测;desktop_vision 把截图发送给配置好的 OpenAI 兼容或 Anthropic 原生视觉模型,产生语义理解结果。浏览器链路由 nuphus-browser 通过 CDP 启动或连接 Chrome/Edge,执行导航、无障碍树快照、点击、输入、提取、截图、JavaScript 求值、等待、历史跳转、Cookie、文件上传、标签页和下载操作。服务从 stdin 读取单行 JSON,并把 JSON-RPC 响应写入 stdout,日志写入 stderr;开启 --confirm-write 后,写操作必须收到显式的 confirm: true。
- 使用 Claude Desktop、Cursor、VS Code、Copilot 或其他 MCP 客户端的团队,需要让智能体在本机完成跨应用点击、输入、窗口切换和截图。
- 浏览器测试或运营人员需要通过 Chrome CDP 自动导航网页、读取无障碍树、填写表单、管理 Cookie、上传文件或获取下载结果。
- 处理缺少 DOM 接口的桌面软件时,自动化开发者可组合 desktop_perceive、鼠标和键盘工具,根据本地 OCR 坐标执行视觉操作。
- 需要理解复杂界面的用户可将 desktop_vision 接入自己的 OpenAI 兼容或 Anthropic 视觉模型,再用 desktop_perceive 获取精确坐标。
- 使用反检测或指纹浏览器的团队可通过 NUPHUS_MCP_BROWSER_CDP_URL 连接外部 CDP 端点,并配置浏览器身份实现端口重新解析。
- DeepSeek Harness 用户若需要原生工具挂载,应采用专用的 dsh-nuphus-mcp 插件,而不是把本仓库误当作 DSH/Cordis 插件。
这个 Agent 有哪些优点和局限?
- 一个 stdio MCP 服务器同时提供 15 个桌面工具和 23 个浏览器工具,可覆盖原生界面与基于 CDP 的网页操作。
- 桌面及浏览器基础功能无需 API 密钥,OCR 在本地运行;只有语义视觉分析需要用户自备模型凭据。
- 支持 OpenAI 兼容和 Anthropic 原生两种视觉协议,不把 desktop_vision 锁定到单一模型供应商。
- 可连接自管 Chrome 或指纹浏览器,并能通过可执行文件路径、配置目录和 DevToolsActivePort 重新解析失效端口。
- 提供写操作严格确认、MCP 破坏性工具注解,以及截图、上传和文件拖放路径校验。
- 完整桌面控制以 Windows 为最佳环境;macOS 需要额外权限,Linux 的窗口和输入能力有限。
- 浏览器工具依赖 Chrome 或 Edge;Chrome 136+ 无法对默认用户数据目录启用远程调试,因此保留真实配置时需要专用配置目录或复制资料。
- desktop_vision 需要外部视觉服务、API 密钥和模型 ID,可能产生供应商费用并需要网络连接。
- 本地 OCR 模型和可选 YOLO 模型会在首次调用时下载;下载失败需要手工处理,且 YOLO 失败时只能返回 OCR 元素。
- 默认情况下写工具不要求确认,部署者必须主动启用 --confirm-write 或 NUPHUS_MCP_CONFIRM_WRITE=1 来降低误操作风险。
- 外部浏览器连接失败时不会退回托管 Chrome;未配置浏览器身份的用户必须手动更新失效的 CDP URL。
如何安装或部署这个 Agent?
推荐使用预编译 npm 包:
npm install -g @nuphus/nuphus-mcp
nuphus-mcp --confirm-write该方式支持 Windows x64/arm64、macOS arm64 和 Linux x64/arm64,不要求 Rust。浏览器工具需要安装 Chrome 或 Edge。也可从源码构建:
cargo build --release -p nuphus-mcp产物位于 target/release/nuphus-mcp(Windows 为 .exe)。desktop_perceive 首次运行会把 PaddleOCR 模型和 icon_detect.onnx 下载到 %APPDATA%\Nuphus\models 或 NUPHUS_MODELS_DIR。只有调用 desktop_vision 时才需要设置 NUPHUS_MCP_VISION_API_KEY 和 NUPHUS_MCP_VISION_MODEL;可按需设置 NUPHUS_MCP_VISION_BASE_URL 与 NUPHUS_MCP_VISION_PROVIDER。
如何使用这个 Agent?
在 MCP 客户端的 mcpServers 配置中加入:
{
"mcpServers": {
"nuphus-mcp": {
"command": "nuphus-mcp",
"args": ["--confirm-write"]
}
}
}
安装后可先执行冒烟测试:
echo '{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test"}}}' | nuphus-mcp客户端完成 initialize 和 notifications/initialized 后,可通过 tools/list 查看工具,再用 tools/call 调用 desktop_* 或 browser_*。若连接用户管理的外部浏览器,设置 NUPHUS_MCP_BROWSER_CDP_URL,例如 http://127.0.0.1:9222;Chrome 136+ 必须同时使用指向非默认目录的 --user-data-dir。macOS 桌面输入需要在“系统设置 → 隐私与安全性 → 辅助功能”中授权。
这个 Agent 与同类方案有什么区别?
与 dsh-nuphus-mcp 不同,nuphus-mcp 是通用的 stdio MCP 服务器,并不是 DeepSeek Harness/Cordis 插件;DSH 用户若要零配置原生挂载,应安装专用插件。浏览器自动化有两条边界明确的路径:CDP 提供 DOM、无障碍树、Cookie 和标签页等浏览器级能力,但要求可调试的 Chrome/Edge 配置;desktop_perceive 配合键鼠则能操作正在运行的真实浏览器或其他桌面程序,但没有 DOM 访问能力。对于登录状态,托管浏览器配置最简单;复制真实配置可保留更多扩展和会话,但占用空间且不能与原配置同时运行。