mcpField
M
MCP Virtual Computer

MCP Virtual Computer

本地服务
github.com开发工具36 天前更新

关于 MCP Virtual Computer

MCP Virtual Computer 为 Agent 提供持久化的 Docker 或 Fly 计算机,并可选配实时 Xfce 桌面和 Three.js 视图。它适用于需要运行命令、管理文件或操作桌面环境的 Agent 和用户。

主要功能

  1. 01Docker 和 Fly 计算机后端
  2. 02终端与文件操作
  3. 03实时 Three.js 计算机视图
  4. 04可选的 Xfce 桌面交互
  5. 05网络访问控制

适用场景

  1. 01在计算机环境中运行 Agent 命令
  2. 02读取、写入和编辑工作区文件
  3. 03查看并操作 Xfce 桌面

MCP 相关

它向 MCP 客户端提供终端与文件工具、计算机界面,以及启用时的桌面交互工具和屏幕资源。MCP App 还可控制网络访问和桌面环境的启用状态。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"flujo-app-mcp-virtual-computer": {
"command": "uvx",
"args": [
"mcp-virtual-computer"
],
"env": {
"BACKEND": "<BACKEND>",
"COMPUTER_ID": "<COMPUTER_ID>",
"DESKTOP_ENVIRONMENT": "<DESKTOP_ENVIRONMENT>",
"NETWORK_ACCESS": "<NETWORK_ACCESS>",
"AUTO_INSTALL_DOCKER": "<AUTO_INSTALL_DOCKER>",
"AUTO_INSTALL_FLYCTL": "<AUTO_INSTALL_FLYCTL>",
"FLY_API_TOKEN": "<FLY_API_TOKEN>",
"EXPOSE_LIFECYCLE_TOOLS": "<EXPOSE_LIFECYCLE_TOOLS>"
}
}
}
}
启动命令uvx mcp-virtual-computer
需要配置的环境变量
BACKENDComputer 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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-virtual-computer0.2.11

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Virtual Computer

image

为你的 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 App resource_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,即可额外向模型提供这些生命周期控制工具;默认情况下,模型无法看到这些工具。

架构

image

演示:FLUJO

image

演示:Claude Desktop

image

演示:Goose

image ## 永久 Fly Machine

Fly 模式使用 Fly 的远程构建器构建捆绑的 Xfce 镜像,并将其部署为一个永久 Machine。根文件系统和 /workspace 会在 MCP 重启后保留,Three.js 屏幕通过 Fly 的 HTTPS/WebSocket 代理使用同一个 noVNC 桌面。

这是从已部署的 Fly Machine 上通过 look_at_screen 返回的 Xfce 帧缓冲画面。客户端通过 computer_ui 连接到 VNC 后,渲染出的计算机上会显示同一个实时桌面:

运行在永久 Fly Machine 上的 Xfce 桌面

无需指定应用名称、区域、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 后端。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。