Back to Browse

Virtual Computer MCP Server

Developer ToolsModerate7.3MCP RegistryLocal
Free

Server data from the Official MCP Registry

A persistent Docker computer rendered as a Three.js laptop, with an optional live Xfce desktop.

About

A persistent Docker computer rendered as a Three.js laptop, with an optional live Xfce desktop.

Security Report

7.3
Moderate7.3Low Risk

Valid MCP server (3 strong, 0 medium validity signals). 3 known CVEs in dependencies (0 critical, 3 high severity) Package registry verified. Imported from the Official MCP Registry. Trust signals: trusted author (9/10 approved).

6 files analyzed · 4 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

Shell Command Execution

Runs commands on your machine. Be cautious — only use if you trust this plugin.

file_system

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Stable identity of the one persistent Docker computer.Optional

Environment variable: COMPUTER_ID

Start the real Xfce desktop instead of the virtual desktop.Optional

Environment variable: DESKTOP_ENVIRONMENT

Allow outbound network access from the Docker computer.Optional

Environment variable: NETWORK_ACCESS

On Windows, install and start Docker Desktop lazily when needed.Optional

Environment variable: AUTO_INSTALL_DOCKER

Also expose runtime status and network/desktop switching tools to the model. The MCP App can always use them.Optional

Environment variable: EXPOSE_LIFECYCLE_TOOLS

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-flujo-app-mcp-virtual-computer": {
      "env": {
        "COMPUTER_ID": "your-computer-id-here",
        "NETWORK_ACCESS": "your-network-access-here",
        "AUTO_INSTALL_DOCKER": "your-auto-install-docker-here",
        "DESKTOP_ENVIRONMENT": "your-desktop-environment-here",
        "EXPOSE_LIFECYCLE_TOOLS": "your-expose-lifecycle-tools-here"
      },
      "args": [
        "mcp-virtual-computer"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

MCP Virtual Computer

A VM for your agent. And for you.

  • click the mug to switch between a virtual desktop or a real one
  • unplug the network cable and cut network access
  • use the computer screen like a normal screen
  • copy and paste text between the host browser and the Xfce desktop
  • model can use terminal, create/read/edit files, see the screen, click, type
  • little fun thing: if either you or the llm types text, you see that on the keyboard; if one uses the cursor, you see the mouse move on the table.
  • auto installs docker and all prerequresits (hopefully)

MCP client example

{
  "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"
      }
    }
  }
}

Demo: FLUJO

Demo: Claude Desktop

Demo: Goose

What it exposes

  • terminal_execute — run a command in the configured Docker computer.
  • read_file — read a UTF-8 text file relative to /workspace or by absolute path.
  • write_file — atomically write a UTF-8 text file.
  • edit_file — replace one exact text match, or all matches when requested.
  • computer_ui — open or attach the Three.js computer view. Its result includes both the MCP App resource_uri and a real loopback url/dashboard_url that opens in an external browser, including for stdio clients.

DESKTOP_ENVIRONMENT defaults to true. With the real desktop enabled it additionally exposes:

  • look_at_screen — return the current PNG framebuffer, AT-SPI snapshot, or both.
  • click, type, and scroll — interact by AT-SPI element reference or coordinates.
  • list_windows and switch_window — enumerate and activate real Xfce windows.
  • move_window, maximize_window, restore_window, minimize_window, and close_window — control a selected window by ID, title, or class.
  • computer://screen/current.png — current live framebuffer resource.
  • computer://screen/accessibility.json — Playwright-like AT-SPI tree with element refs, roles, names, actions, focus state, and screen bounds.

The MCP App can always call runtime_status, set_network_access, and set_desktop_environment. Set EXPOSE_LIFECYCLE_TOOLS=true to additionally expose those lifecycle controls to the model; they remain model-hidden by default.

License and origin

MIT licensed. This project is a Docker-only fork of Kilntainers.

Reviews

No reviews yet

Be the first to review this server!