VirtualBox

Provides an MCP server to manage VirtualBox VMs via Vagrant with observability and automation
  • typescript

0

GitHub Stars

typescript

Language

5 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "usemanusai-virtualbox-mcp-server": {
      "command": "node",
      "args": [
        "apps/mcp-server/dist/index.js"
      ],
      "env": {
        "PATH": "C:\\\\Program Files (x86)\\\\Vagrant\\\\bin;C:\\\\Program Files\\\\Oracle\\\\VirtualBox;%PATH%",
        "LOG_LEVEL": "info"
      }
    }
  }
}

You run a dedicated MCP server that lets you manage VirtualBox VMs via Vagrant using code-driven tools. This server provides observability, lifecycle automation, file sync, snapshots, and safe rollback—so you can provision, monitor, and debug development environments with confidence.

How to use

You interact with the MCP server through an MCP client that talks JSON-RPC to the local server. Use the client to list, create, start, stop, and inspect VMs, run commands inside VMs, synchronize files, manage snapshots, and observe dashboards and logs. The server exposes a broad set of tools that you can compose into practical workflows, such as booting a dev VM, synchronizing code, installing dev tools, checking service health, and rolling back after risky updates.

How to install

# Prerequisites
node.js 18+
VirtualBox 6.x or 7.x
Vagrant 2.3+

# Clone the server repository
git clone https://github.com/usemanusai/Virtualbox-mcp-server.git
cd Virtualbox-mcp-server

# Install dependencies
npm install

# Build all packages
npm run build

# Start the MCP server (direct)
node apps/mcp-server/dist/index.js

# Or start via the workspace shortcut (if you prefer monorepo tooling)
npm run start --workspace=virtualbox-mcp-server
```} ,{

Additional configuration and notes

The MCP server is designed to run locally and communicate with the VirtualBox and Vagrant tooling on your host. You can configure the server’s runtime behavior through environment variables and, when applicable, through MCP client configuration. The examples below show common environment keys you may encounter or adapt for your setup.

# Example environment setup for development on Windows/PowerShell
LOG_LEVEL=debug
PATH=C:\Program Files (x86)\Vagrant\bin;C:\Program Files\Oracle\VirtualBox;%PATH%
# Example environment setup for Linux/macOS
LOG_LEVEL=info
VAGRANT_HOME=/home/you/.vagrant.d
VM_DEFAULT_BOX=ubuntu/jammy64
VM_DEFAULT_MEMORY=4096
VM_DEFAULT_CPU=4

Start the server with an explicit config (if using a dedicated script)

node apps/mcp-server/dist/index.js

If you use a monorepo workflow for building and starting a single package

npm run start --workspace=virtualbox-mcp-server

Available tools

create_vm

Create a new Vagrant VM with a given name and box

create_dev_vm

Create a VM with full configuration including CPU, memory, ports, and sync folders

ensure_dev_vm

Start or create a VM if it does not exist

get_vm_status

Query the current status of a VM (running, stopped, etc.)

list_vms

List all VMs currently managed by the MCP server

destroy_vm

Destroy a VM (force)

exec_command

Execute a command inside a VM with an optional timeout

exec_with_sync

Execute a command inside a VM with pre/post file synchronization

run_background_task

Run a command inside a VM in the background

setup_dev_environment

Install runtimes and base tools inside the VM or host

install_dev_tools

Install tools such as git, docker, nginx, etc.

configure_shell

Configure shell aliases and environment variables for convenience

upload_file

Upload a file from host to VM

search_files

Search for files inside the VM

configure_sync

Configure file watcher or rsync-based sync between host and VM

sync_to_vm

Sync files from host to VM

sync_from_vm

Sync files from VM to host

sync_status

Get the current sync state between host and VM

resolve_conflict

Resolve file synchronization conflicts

tail_vm_log

Read the tail of a VM log file

get_vm_dashboard

Collect a comprehensive resource and task dashboard for a VM

start_download

Begin a tracked download operation with an operation ID

get_operation_progress

Query real-time progress of an ongoing operation

wait_for_operation

Block until an operation completes or times out

cancel_operation

Cancel an ongoing operation

list_active_operations

List currently active operations

scan_system_health

Check system health and identify zombie VMs

cleanup_zombies

Safely terminate orphaned VMs with optional dry-run

sequentialthinking

AI-assisted reasoning to formulate problem-solving steps

snapshot_save

Create a named VM snapshot for rollback

snapshot_restore

Restore VM to a named snapshot

snapshot_list

List available VM snapshots

snapshot_delete

Delete a VM snapshot

check_vm_port

Verify if a port is listening inside the VM

grep_log_stream

Search for patterns in VM log files

list_processes

Return a structured list of running processes in a VM

kill_process

Terminate a process inside the VM

check_vm_port

Verify port status inside a VM

get_vm_dashboard

Provide a full performance and status dashboard for a VM

start_download

Initiate a large file download to a VM

snapshot_save

Create a safe checkpoint before risky operations

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational