VirtualBox MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_vmsC | List VirtualBox VMs visible under the current policy, optionally filtered. |
| list_running_vmsB | List running VMs. |
| get_vm_infoC | Detailed configuration and state of one VM. |
| get_vm_stateC | Current power state of a VM. |
| get_host_infoA | VirtualBox host information (CPU, memory, VirtualBox version). |
| start_vmD | Start a VM. |
| shutdown_vmA | Gracefully shut down a VM (ACPI power button). Never forces power-off. |
| pause_vmB | Pause a running VM. |
| resume_vmC | Resume a paused VM. |
| save_vm_stateB | Save the VM state to disk and stop it. |
| poweroff_vmA | Force power-off (like pulling the plug). Unsaved guest data is lost. |
| reset_vmA | Hard reset a VM. Unsaved guest data is lost. |
| discard_saved_stateC | Discard a VM's saved state. |
| wait_for_vm_stateC | Wait until a VM reaches one of the given states. |
| execute_commandC | Run a command in the guest OS and wait for its result. |
| execute_command_asyncB | Start a command in the guest and return immediately with a command ID (poll with get_command_status). |
| get_command_statusA | Status of a command started earlier (output sizes only; use get_command_output for content). |
| get_command_outputC | Page through a command's stdout or stderr. |
| wait_for_commandC | Wait for an async command to finish and return its result. |
| get_command_historyC | Recent commands, optionally for one VM. |
| cancel_commandC | Cancel a running command. |
| detect_guest_osC | Detect the guest OS family and Guest Additions status. |
| list_available_shellsC | Shells available in the guest. |
| list_guest_filesC | List a directory in the guest. |
| read_guest_fileC | Read a file from the guest. |
| write_guest_fileA | Write (or append to) a file in the guest. Protected system paths need approval. |
| delete_guest_fileA | Delete a file or directory in the guest. Recursive deletes and protected system paths need approval. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 27 tools
Most tools target a distinct action+resource, and the async command trio (execute_command_async, get_command_status, get_command_output, wait_for_command) is carefully differentiated in the descriptions. The only real overlap is list_vms vs list_running_vms (the latter is just a filtered view) and get_vm_state vs get_vm_info (state is a subset of info), plus several closely-related power tools whose distinctions are at least spelled out.
All 27 tools use consistent snake_case verb_noun form (list_vms, get_vm_info, start_vm, poweroff_vm, write_guest_file, cancel_command). Even the async variant (execute_command_async) and paging helpers follow the same predictable pattern.
At 27 tools the surface is heavy for a VM manager, split across four sub-domains (VM lifecycle, command execution, guest files, host/info). Each tool is individually justified and not obviously padded, but a few (list_running_vms, get_vm_state) could be folded into broader tools to slim the set.
Power/lifecycle control of existing VMs, guest command execution, and guest file CRUD are well covered, but there is no create/register/clone VM, no unregister/delete VM, no snapshot operations (take/restore/list), and no way to modify VM configuration (CPU, memory, network). An agent asked to provision or snapshot a VM will hit a dead end.