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.
Give an AI agent its own computer
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.
Observe → act → observe
Read exact lifecycle and job state, capture the framebuffer, OCR visible interfaces, read the headless Linux serial stream, inspect logs, or discover guest networking.
Send keyboard, pointer, scrolling, or text input; provision a dedicated per-VM SSH identity; run bounded commands; and update supported VM configuration.
Wait for state or text, capture the changed screen, read serial output, collect diagnostics, and continue from what the VM actually reports.
Native to SlateVM’s architecture
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.
Implemented function catalog
This catalog reflects the tool manifest registered by the bundled slatevm-mcp implementation and its corresponding local or application-side dispatch path.
launch_appLaunches SlateVM visibly and reports whether its local control endpoint is ready.
quit_appCloses SlateVM gracefully or, when explicitly requested, forces the application to quit.
app_statusReports 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_capabilitiesReturns host virtualization capability, nested virtualization, macOS version, entitlement state, and free disk information.
list_imagesLists readable installation images visible in SlateVM’s caches and Downloads, with inferred guest type and size.
list_restore_imagesLists macOS restore images known to SlateVM for use in a macOS creation workflow.
job_statusReturns a background job’s state, latest stage, result, or structured error.
job_waitWaits for a background job to finish or reach a bounded timeout, then returns its current result.
list_jobsLists recent background jobs and their current states.
list_vmsLists every VM with its identity, runtime state, and hardware summary.
get_vmReturns the complete persisted configuration and current details for one VM.
create_vmCreates 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_vmStarts a selected VM and opens its visible console window.
stop_vmStops a running VM with graceful shutdown as the default and an explicit force option.
suspend_resume_vmToggles a running VM between suspended and resumed states.
wait_for_stateWaits for running or stopped state and returns the result with available error context.
delete_vmMoves a confirmed VM bundle to the Trash through SlateVM’s coordinated deletion path.
reveal_vmReveals the selected VM bundle in Finder.
set_hardwareUpdates only the supplied CPU, memory, network, nested-virtualization, x86-64 (Rosetta), or Linux network-driver settings.
resize_diskGrows a VM disk to a confirmed larger size while preserving the existing virtual disk.
set_installer_mediaRepoints a stopped VM to accessible installer media and persists a fresh scoped reference.
finish_installMarks installation complete and removes installer media from the next-boot configuration.
add_shared_folderAdds a host folder to a macOS or Linux VM with a mount name and optional read-only access.
remove_shared_folderRemoves a selected shared-folder record from a VM configuration.
set_shared_folder_readonlyChanges a shared folder between read-only and writable access.
apply_guest_toolsStages or applies SlateVM’s guest-tools disc for the selected VM.
set_attach_linux_guest_toolsControls whether a desktop Linux VM attaches the SlateVM Tools disc.
set_console_window_sizeSets the selected VM console window’s width and height in Mac display points.
set_display_resolutionSets the next-boot display resolution for a headless Linux server guest.
set_linux_network_pathSelects native Apple NAT or SlateVM’s service-backed NAT path for a Linux VM.
get_diagnosticsCollects VM state, configuration, media access, disk information, networking health, logs, and the latest structured error.
tail_logReturns recent VM log lines for a selected time window with an optional text filter.
capture_screenCaptures the guest console as an MCP image or host file, with format, crop, and scaling controls.
read_console_textReturns guest console text, optionally filtered by a case-insensitive pattern. Headless Linux servers provide the exact serial stream; graphical guests provide built-in framebuffer OCR alongside direct screen capture.
wait_for_textPolls the console until a requested pattern appears or a bounded timeout is reached, using the guest’s direct serial or graphical text path.
send_inputSends guest-scoped pointer, text, navigation, special-key, and modifier actions across supported graphical guests, with direct serial input for headless Linux. It can capture the resulting state in the same call.
networking_statusReports whether SlateVM’s networking service is installed, reachable, and healthy.
networking_installOpens the signed macOS installer for one-time administrator approval of the networking service.
networking_repairReinstalls the networking service through the administrator-approved package workflow.
networking_uninstallOpens the administrator-approved uninstaller for the networking service.
guest_networkDiscovers candidate guest IP addresses from the VM’s MAC using host DHCP and ARP information.
provision_sshCreates or returns the dedicated per-VM SSH public key and guest-side installation command.
ssh_statusReports whether a VM has a dedicated LLM SSH key and returns its public key.
revoke_sshRemoves the host-side dedicated SSH identity so it can be rotated or retired.
run_in_guestRuns a bounded SSH command and returns exit code, output, errors, timeout, and connection status.