io.github.flujo-app/mcp-virtual-computer
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COMPUTER_ID | Yes | Required. The ID of the persistent Docker computer to use. | |
| NETWORK_ACCESS | No | Whether the Docker container has outbound network access. Accepts true, false, 1, 0, yes, no, on, or off. Defaults to true. | true |
| AUTO_INSTALL_DOCKER | No | Whether to automatically install Docker Desktop on Windows if Docker is missing. Accepts true, false, 1, 0, yes, no, on, or off. Defaults to true. | true |
| DESKTOP_ENVIRONMENT | No | Whether to enable the real desktop environment. Accepts true, false, 1, 0, yes, no, on, or off. Defaults to false. | false |
| DOCKER_START_TIMEOUT | No | Timeout in seconds for Docker Desktop to start. Defaults to 240. | 240 |
| DOCKER_INSTALL_TIMEOUT | No | Timeout in seconds for the Docker installation process. Defaults to 1200. | 1200 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {
"mimeTypes": [
"text/html;profile=mcp-app"
]
}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| terminal_executeA | Execute a shell command in one persistent Debian Docker computer. Commands run in bash. Each call is independent — no state (shell variables, working directory) persists between calls (however filesystem does persist). Use the working_directory parameter or chain commands with && to control execution context. To write files or pass data without shell escaping, use the stdin parameter (e.g., command="cat > file.txt" with content in stdin). Commands time out after 120 seconds by default (override with the timeout parameter for long-running operations). |
| computer_uiB | Open the interactive Three.js laptop and its computer screen. |
| runtime_statusC | Read genuine lazy container-runtime setup progress. |
| set_network_accessC | Change the running Docker computer's real network access. |
| set_desktop_environmentB | Switch the running computer between virtual and Xfce desktops. |
| list_directoryB | List a Docker directory for the interactive virtual Explorer. |
| read_fileB | Read a UTF-8 text file and show it being opened and scrolled on the virtual computer. |
| write_fileA | Write a UTF-8 text file and show it being typed and saved on the virtual computer. |
| edit_fileB | Replace exact UTF-8 text and show it being selected, overwritten, and saved. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Virtual Computer | Three.js laptop-on-desk view for terminal and file operations. |
TDQS
Scored across 9 tools
Most tools target clearly distinct actions: shell execution, file read/write/edit/list, network, desktop, UI, and status. Some overlap exists between terminal_execute and the dedicated file tools, since terminal commands can also create and edit files, but the descriptions clarify their intended specializations.
The majority follow a verb_noun pattern (read_file, write_file, list_directory, edit_file, set_network_access, set_desktop_environment), but terminal_execute, computer_ui, and runtime_status break that pattern with noun-first or noun-only names. The inconsistency is noticeable but not chaotic.
Nine tools is a well-scoped set for a virtual computer MCP server. Each tool addresses a distinct part of the workflow: terminal access, file operations, runtime status, UI launch, and configuration switches, with no obvious bloat.
The tool surface covers the main lifecycle: executing commands, reading/writing/editing/listing files, controlling network and desktop environment, and checking runtime status. Missing file operations like delete or rename are not critical because terminal_execute can handle them, but they are minor gaps in the dedicated file-tool set.