AB
AiBoss站
project

sandbox-mcp - 给 AI 代理一台用完即弃的 Windows 11 干净机器

sandbox-mcp 是一个围绕 Windows Sandbox 构建的自动化工具:每次启动一台全新的 Windows 11 干净机器,部署应用、驱动界面、收集证据,然后销毁。项目自述提供 CLI 与可选 MCP 适配器两套入口,采用 MIT 许可。

sandbox-mcp 是一个面向 Windows 应用验证场景的自动化工具。按项目自述,它要解决的问题是「在我机器上能跑」:开发机装满了运行时、SDK、可再发行组件、字体和注册表项,而用户的机器往往没有。sandbox-mcp 的做法是每次拉起一台全新的 Windows Sandbox 虚拟机——一台真实、可丢弃的 Windows 11 机器,部署应用、操作界面控件、捕获崩溃、保留证据,然后把这台机器删掉。它适合需要反复验证 Windows 桌面应用安装与启动行为的开发者,以及希望让 AI 代理自己动手做这类验证的团队。

维护者与状态

仓库由 shanselman 维护,创建于 2026-11-06,最后一次提交在 2026-11-07,最新正式版本为 v1.2.0(2026-11-07)。截至 2026-11-09,仓库获得 363 个星标。项目同时提供官网页面,用于展示说明与示例。

主要能力

以下能力均据项目 README 自述整理,未经本站独立验证。

  • 干净机器默认开启:每次启动都是全新环境,不会隐式安装应用运行时;网络可设为关闭、防火墙或开启三种状态。
  • 真实桌面自动化:通过原生 UI Automation 检查控件、输入文本、点击、切换开关与等待,覆盖 WinUI、WPF、WinForms、Win32,以及 MSIX/AUMID 激活方式。
  • 依赖诊断:sbx deps(MCP 侧为 sandbox_deps)在宿主机上静态扫描 PE 架构与导入表、应用本地 VC++ DLL、.NET 与 .NET Framework 运行时配置、包依赖和脚本解释器,不运行也不安装任何东西。README 称这是保守的静态扫描,不能证明所有动态依赖都已就位。
  • 显式供给运行时:默认从不安装依赖;只有显式指定 sbx run --provision auto 或列出具体组件(如 dotnet、desktop、aspnetcore、vcredist、windows-app-runtime)时才会安装。下载在宿主机完成,缓存后校验 SHA-512 或 Microsoft Authenticode 签名,再复制进客户机静默安装,客户机网络可以保持关闭。此类报告会标注为「PROVISIONED(非干净机器测试)」。
  • 证据留存:输出 PNG 截图、有长度上限的录屏、自包含 HTML 报告,可选 MP4;同时记录进程状态、退出码、崩溃事件,以及安装器/卸载器的差异。
  • 双入口同引擎:命令行工具 sbx 可独立使用,可选的 MCP 适配器为需要该接口的客户端暴露可发现工具与内联图片,两者共享状态。

README 中给出的示例是一段实测记录:某原生程序在全新、断网的 Windows Sandbox 中 29.8 秒后失败,退出码 -1073741515,诊断为缺少 VC++ 可再发行组件;显式开启供给后,在另一台全新客户机上 30.9 秒通过,并标注为已供给而非干净机器通过。项目说明这些是实际测量结果,不是示意输出。README 还提到,带界面的 GUI 样例端到端大约需要 40 至 50 秒。

使用入口

代码仓库位于 shanselman/sandbox-mcp,项目说明与示例见 官网。

据 README,v1.2.0 提供便携版 CLI 加可选 MCP 服务器,捆绑 Node.js、客户机代理与安装说明,无需自行安装 Node/npm。命令行工具可直接使用;只有代理确实需要 MCP 接口时才需配置适配器。README 还给出了一段可交给机器人执行的安装提示词,其中要求先检查机器、校验下载内容,并在做管理员级改动或重启前询问用户。常用命令包括 sbx deps app.exe 做依赖诊断、sbx run app.exe --provision auto 在显式请求时安装运行时,以及 sbx provision 在已启动的沙箱中执行同样的供给操作。

许可与限制

项目采用 MIT 许可证。

README 中列出的边界条件包括:它依赖 Windows Sandbox,因此需要 Windows 专业版或企业版环境;同一时间只能运行一个实例,不支持并行;环境不持久,也不支持 Linux。项目明确表示,并非所有 Windows 应用或依赖硬件的工作负载都能在 Sandbox 中运行,实际验证过的配置以仓库中的兼容性矩阵为准。依赖诊断只是静态扫描,像 WebView2 这类可选客户机组件必须在真实客户机中检查;Java 与 Python 需要应用自行准备环境。若需要大量机器、持久环境或 Linux,README 建议改用虚拟机或云主机。此外,需要重启才能完成的安装器结果会被判定为运行失败。