关于 MCP Virtual Computer
MCP Virtual Computer 为 Agent 提供持久化的 Docker 或 Fly 计算机,并可选配实时 Xfce 桌面和 Three.js 视图。它适用于需要运行命令、管理文件或操作桌面环境的 Agent 和用户。
主要功能
- 01Docker 和 Fly 计算机后端
- 02终端与文件操作
- 03实时 Three.js 计算机视图
- 04可选的 Xfce 桌面交互
- 05网络访问控制
适用场景
- 01在计算机环境中运行 Agent 命令
- 02读取、写入和编辑工作区文件
- 03查看并操作 Xfce 桌面
MCP 相关
它向 MCP 客户端提供终端与文件工具、计算机界面,以及启用时的桌面交互工具和屏幕资源。MCP App 还可控制网络访问和桌面环境的启用状态。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx mcp-virtual-computerBACKENDComputer provider. Use docker for a local container or fly for a permanent Fly Machine.COMPUTER_IDStable identity of the one persistent computer.DESKTOP_ENVIRONMENTStart the real Xfce desktop instead of the virtual desktop.NETWORK_ACCESSAllow outbound network access from the computer.AUTO_INSTALL_DOCKEROn Windows, install and start Docker Desktop lazily when needed.AUTO_INSTALL_FLYCTLDownload flyctl into the user profile when it is missing.FLY_API_TOKEN密钥Optional Fly API token. A cached flyctl login is also supported.EXPOSE_LIFECYCLE_TOOLSAlso expose runtime status and network/desktop switching tools to the model. The MCP App can always use them.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Virtual Computer
为你的 Agent,也为你准备的虚拟机。
- 点击马克杯,在虚拟桌面和真实桌面之间切换
- 拔掉网线,切断网络访问
- 像使用普通屏幕一样使用电脑屏幕
- 在主机浏览器和 Xfce 桌面之间复制和粘贴文本
- 模型可以使用终端、创建/读取/编辑文件、查看屏幕、点击和输入
- 一个有趣的小功能:无论你还是大模型输入文本,你都能在键盘上看到相应的按键;只要有人移动光标,你就能看到桌面上的鼠标移动。
- 本地模式下会自动在 Windows 上安装 Docker Desktop,Fly 模式下则会自动安装 flyctl
MCP 客户端示例
本地 Docker(默认)
未指定时,COMPUTER_ID 默认为 agent-workstation。请显式设置它,以便继续使用已命名的电脑或创建一台单独的电脑。在全新的 Windows 电脑上,安装程序会在安装 Docker Desktop 前先准备 WSL 2。如果出现 Windows 管理员权限提示,请予以批准;如果需要重启,请重启 Windows,重新打开 MCP 客户端,然后重试。请参阅Windows 首次使用验证。
{
"mcpServers": {
"virtual-computer": {
"command": "uvx",
"args": ["mcp-virtual-computer"],
"env": {
"COMPUTER_ID": "agent-workstation",
"DESKTOP_ENVIRONMENT": "true",
"NETWORK_ACCESS": "true",
"AUTO_INSTALL_DOCKER": "true",
"EXPOSE_LIFECYCLE_TOOLS": "false"
}
}
}
}
Fly.io Machine
在全新机器上,先启动一次 MCP,运行错误信息中显示的确切 flyctl auth login 命令,然后重启 MCP 客户端
{
"mcpServers": {
"virtual-computer-fly": {
"command": "uvx",
"args": ["mcp-virtual-computer", "--backend", "fly"],
"env": {
"COMPUTER_ID": "agent-workstation",
"DESKTOP_ENVIRONMENT": "true",
"NETWORK_ACCESS": "true",
"AUTO_INSTALL_FLYCTL": "true",
"EXPOSE_LIFECYCLE_TOOLS": "false"
}
}
}
}
提供的功能
terminal_execute— 在已配置的 Docker 容器或 Fly Machine 中运行命令。read_file— 读取相对于/workspace的 UTF-8 文本文件,或通过绝对路径读取。write_file— 原子写入 UTF-8 文本文件。edit_file— 替换一处完全匹配的文本,或按要求替换所有匹配项。computer_ui— 打开或连接 Three.js 电脑视图。其结果包含 MCP Appresource_uri,以及可在外部浏览器中打开的真实环回url/dashboard_url,也适用于 stdio 客户端。
DESKTOP_ENVIRONMENT 默认为 true。启用真实桌面后,还会提供以下功能:
look_at_screen— 返回当前 PNG 帧缓冲区、AT-SPI 快照,或两者兼有。click、type和scroll— 通过 AT-SPI 元素引用或坐标进行交互。list_windows和switch_window— 枚举并激活真实的 Xfce 窗口。move_window、maximize_window、restore_window、minimize_window和close_window— 按 ID、标题或类控制选定窗口。computer://screen/current.png— 当前实时帧缓冲区资源。computer://screen/accessibility.json— 类似 Playwright 的 AT-SPI 树,包含元素引用、角色、名称、操作、焦点状态和屏幕边界。
MCP App 始终可以调用 runtime_status、set_network_access 和 set_desktop_environment。将 EXPOSE_LIFECYCLE_TOOLS=true 设置为 true,即可额外向模型提供这些生命周期控制工具;默认情况下,模型无法看到这些工具。
架构
演示:FLUJO
演示:Claude Desktop
演示:Goose
Fly 模式使用 Fly 的远程构建器构建捆绑的 Xfce 镜像,并将其部署为一个永久 Machine。根文件系统和 /workspace 会在 MCP 重启后保留,Three.js 屏幕通过 Fly 的 HTTPS/WebSocket 代理使用同一个 noVNC 桌面。
这是从已部署的 Fly Machine 上通过 look_at_screen 返回的 Xfce 帧缓冲画面。客户端通过 computer_ui 连接到 VNC 后,渲染出的计算机上会显示同一个实时桌面:

无需指定应用名称、区域、CPU 规格、内存大小、Docker 安装或 VNC 配置。
该软件包的 MCP Registry 声明(包括 docker 和 fly 后端选项)位于 server.json 中。完整的首次运行和身份验证流程请参阅 Fly 设置。
首次使用时,virtual-computer 会查找 fly/flyctl,或将当前官方版本下载到 ~/.fly/bin。它会使用缓存的 fly auth login 会话或 FLY_API_TOKEN,在可用时选择个人组织,创建并记住一个自动生成的应用,让 Fly 选择最近的部署位置,并默认使用一个共享 CPU 和 1 GB RAM。
身份验证是唯一无法避免的账户操作。在全新机器上,先启动一次 MCP,然后运行错误信息中显示的准确 flyctl auth login 命令,并重启 MCP 客户端。Fly 远程构建 Xfce 时,首次计算机调用可能需要几分钟。之后的启动都会连接到同一个 Machine。
仍可使用可选覆盖项 FLY_ORG、FLY_APP_NAME、FLY_REGION、FLY_API_TOKEN 和 --fly-* 标志。设置 AUTO_INSTALL_FLYCTL=false 可要求预先安装 CLI。删除计算机或将其恢复出厂设置会销毁其持久化的 Fly 根文件系统;正常关闭 MCP 不会停止永久 Machine。如果不再希望产生用量费用,请从 Fly 停止或删除它。
许可证和来源
采用 MIT 许可证。本项目是 Kilntainers 的持久化计算机分支,支持 Docker 和 Fly 后端。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。