VMware Workstation MCP Server
MCP server for controlling VMware Workstation VMs on Linux. Works with Claude Code, Claude Desktop, or any MCP client.
Add to ~/.claude.json (or use claude mcp add):
{
"mcpServers" : {
"vmware" : {
"command" : " python3" ,
"args" : [" /path/to/vmware_mcp.py" ]
}
}
}
To enable send_text / read_serial, configure the VM's serial port in the .vmx file:
serial0.fileType = "network"
serial0.fileName = "telnet://127.0.0.1:4321"
serial0.present = "TRUE"
serial0.yieldOnMsrRead = "TRUE"
The guest OS must poll COM1 for input.
Tool
Description
list_running_vms
List running VMs
list_all_vms
Discover all VMs on the system
get_vm_info
Detailed VM config (CPU, RAM, disks, NICs)
Tool
Description
start_vm
Power on (gui or nogui)
stop_vm
Power off (soft/hard)
suspend_vm
Suspend to disk
reset_vm
Reboot
pause_vm / unpause_vm
Pause/resume
Tool
Description
list_snapshots
List all snapshots
create_snapshot
Create a named snapshot
revert_to_snapshot
Revert to a snapshot
delete_snapshot
Delete a snapshot
Tool
Description
capture_screen
Screenshot via X11 window capture (no Tools needed), saves to ~/Desktop/
Tool
Description
send_text
Send text to VM console, returns response
read_serial
Read last N chars from captured serial output
read_new_serial
Read only new output since last read
The server maintains a persistent serial connection with a 64KB ring buffer that captures all VM output in the background.
Guest Operations (require VMware Tools)
Tool
Description
get_guest_ip
Get guest IP address
run_program_in_guest
Execute a program
run_script_in_guest
Execute a script
list_processes_in_guest
List processes
kill_process_in_guest
Kill a process
copy_file_to_guest
Host -> guest file copy
copy_file_from_guest
Guest -> host file copy
list_directory_in_guest
List directory contents
file_exists_in_guest
Check if file exists
Tool
Description
add_shared_folder / remove_shared_folder
Manage shared folders
clone_vm
Clone a VM (full or linked)
install_tools / check_tools_state
VMware Tools management
read_variable / write_variable
VM variables
VMware Workstation Pro (Linux)
vmrun in PATH
Python 3.10+
xdotool + ImageMagick (for capture_screen)
Guest serial input support (for send_text)