SlateVM
officialNative Apple-silicon VM platform with 45 MCP tools to create, observe and operate macOS, Linux, and Windows 11 ARM guests.
What can you do with SlateVM MCP?
- Create and configure VMs — Ask to
create_vma macOS, Linux, or Windows guest with CPU, memory, disk, and network settings, then adjust hardware orresize_diskas needed. - Observe guest state — Use
capture_screen,read_console_text, orwait_for_textto see the VM's display, serial output, or OCR'd interface and confirm what's happening. - Send input and run commands — Direct keyboard, pointer, or text via
send_input, or execute bounded commands withrun_in_guestover a provisioned SSH identity. - Manage lifecycle and jobs —
start_vm,stop_vm,suspend_resume_vm, ordelete_vm, and track progress withjob_statusorwait_for_state. - Diagnose and inspect — Pull
get_diagnostics,tail_log, ornetworking_statusto troubleshoot VM health, logs, and network connectivity. - Handle storage and media — Add or remove
shared_folders,apply_guest_tools, orset_installer_mediato manage guest resources.
Documentation
A real virtual machine an LLM can see, understand, and operate.
SlateVM gives compatible MCP clients 45 structured functions across creation, provisioning, lifecycle, console interaction, networking, diagnostics, configuration, and guest execution. Minting the VM is only the start: the agent can observe the guest, understand its state, then act and verify across every supported guest platform.
Automation with evidence at every step.
Observe the machine
Read exact lifecycle and job state, capture the framebuffer, OCR visible interfaces, read the headless Linux serial stream, inspect logs, or discover guest networking.
Act through the right channel
Send keyboard, pointer, scrolling, or text input; provision a dedicated per-VM SSH identity; run bounded commands; and update supported VM configuration.
Verify the result
Wait for state or text, capture the changed screen, read serial output, collect diagnostics, and continue from what the VM actually reports.
Not a shell wrapper. Not UI scripting.
The stateless slatevm-mcp adapter speaks SlateVM’s versioned protocol over a local Unix-domain socket. SlateControlServer dispatches each request through SlateControlHub, where the SwiftUI interface and AI control path converge on the same VMStore, networking service, window manager, and lifecycle owners. SlateVM—not the adapter—remains the authority for VM state and policy.
SwiftUI Human control
SlateControlHub Shared application control plane
LLM + MCP Structured control
45 functions available to an LLM.
This catalog reflects the tool manifest registered by the bundled slatevm-mcp implementation and its corresponding local or application-side dispatch path.
Application, discovery, and jobs
launch_app
Launches SlateVM visibly and reports whether its local control endpoint is ready.
quit_app
Closes SlateVM gracefully or, when explicitly requested, forces the application to quit.
app_status
Reports whether SlateVM is running, its process identifier, control-socket reachability, and the running app's version and build (read live from its bundle, so it stays correct after an auto-update).
host_capabilities
Returns host virtualization capability, nested virtualization, macOS version, entitlement state, and free disk information.
list_images
Lists readable installation images visible in SlateVM’s caches and Downloads, with inferred guest type and size.
list_restore_images
Lists macOS restore images known to SlateVM for use in a macOS creation workflow.
job_status
Returns a background job’s state, latest stage, result, or structured error.
job_wait
Waits for a background job to finish or reach a bounded timeout, then returns its current result.
list_jobs
Lists recent background jobs and their current states.
VM inventory and lifecycle
list_vms
Lists every VM with its identity, runtime state, and hardware summary.
get_vm
Returns the complete persisted configuration and current details for one VM.
create_vm
Creates a macOS, Linux, or Windows VM from required OS, CPU, memory, disk, image, and network inputs, with optional unattended install, account credentials, NAT or LAN-bridge networking, and x86-64 (Rosetta) support for Linux guests.
start_vm
Starts a selected VM and opens its visible console window.
stop_vm
Stops a running VM with graceful shutdown as the default and an explicit force option.
suspend_resume_vm
Toggles a running VM between suspended and resumed states.
wait_for_state
Waits for running or stopped state and returns the result with available error context.
delete_vm
Moves a confirmed VM bundle to the Trash through SlateVM’s coordinated deletion path.
reveal_vm
Reveals the selected VM bundle in Finder.
Configuration, storage, and integration
set_hardware
Updates only the supplied CPU, memory, network, nested-virtualization, x86-64 (Rosetta), or Linux network-driver settings.
resize_disk
Grows a VM disk to a confirmed larger size while preserving the existing virtual disk.
set_installer_media
Repoints a stopped VM to accessible installer media and persists a fresh scoped reference.
finish_install
Marks installation complete and removes installer media from the next-boot configuration.
add_shared_folder
Adds a host folder to a macOS or Linux VM with a mount name and optional read-only access.
remove_shared_folder
Removes a selected shared-folder record from a VM configuration.
set_shared_folder_readonly
Changes a shared folder between read-only and writable access.
apply_guest_tools
Stages or applies SlateVM’s guest-tools disc for the selected VM.
set_attach_linux_guest_tools
Controls whether a desktop Linux VM attaches the SlateVM Tools disc.
set_console_window_size
Sets the selected VM console window’s width and height in Mac display points.
set_display_resolution
Sets the next-boot display resolution for a headless Linux server guest.
set_linux_network_path
Selects native Apple NAT or SlateVM’s service-backed NAT path for a Linux VM.
Diagnostics, console, and input
get_diagnostics
Collects VM state, configuration, media access, disk information, networking health, logs, and the latest structured error.
tail_log
Returns recent VM log lines for a selected time window with an optional text filter.
capture_screen
Captures the guest console as an MCP image or host file, with format, crop, and scaling controls.
read_console_text
Returns guest console text, optionally filtered by a case-insensitive pattern. Headless Linux servers read the exact serial stream (no OCR); other guests use framebuffer OCR.
wait_for_text
Polls the console until a requested pattern appears or a bounded timeout is reached — the serial stream for headless servers, framebuffer OCR otherwise.
send_input
Sends guest-scoped pointer, text, or key actions and can capture the result in the same call. On headless servers, text/key go to the serial console — capitals, symbols, and Ctrl chords all work.
Networking service and guest commands
networking_status
Reports whether SlateVM’s networking service is installed, reachable, and healthy.
networking_install
Opens the signed macOS installer for one-time administrator approval of the networking service.
networking_repair
Reinstalls the networking service through the administrator-approved package workflow.
networking_uninstall
Opens the administrator-approved uninstaller for the networking service.
guest_network
Discovers candidate guest IP addresses from the VM’s MAC using host DHCP and ARP information.
provision_ssh
Creates or returns the dedicated per-VM SSH public key and guest-side installation command.
ssh_status
Reports whether a VM has a dedicated LLM SSH key and returns its public key.
revoke_ssh
Removes the host-side dedicated SSH identity so it can be rotated or retired.
run_in_guest
Runs a bounded SSH command and returns exit code, output, errors, timeout, and connection status.