SlateVM

official

Native 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 boot VMs — Create a VM from a listed install image, then start it and wait until it reaches a target run state.
  • Observe the guest — Capture the screen, read console text, or wait for a regex pattern to appear on the console.
  • Operate the guest — Inject keyboard, pointer, and text input, or run commands inside a booted guest over its per-VM SSH key.
  • Configure hardware — Live-apply hardware and network settings, grow a disk, or set display resolution and console window size.
  • Share host folders — Add or remove virtio-fs shared folders in mac/Linux VMs and toggle their read-only flag.
  • Diagnose problems — Pull a one-shot diagnostics bundle or tail recent log lines when a VM won't boot.

Documentation

Real computers your AI can see and operate.

SlateVM’s built-in MCP server gives any compatible AI client 46 structured tools to create virtual machines, watch their screens, type and click, run commands inside the guest, and verify the result — with the same contract on Mac, Windows, and Linux.

Automation with evidence at every step.

Observe

Live state and jobs, screen capture, on-screen text (OCR), serial console text for headless Linux, logs, and guest network addresses.

Act

Keyboard, pointer, scroll, and text input; commands inside the guest over a per-VM SSH identity; hardware, disk, display, network, and shared-folder changes.

Verify

Wait for a state or for text to appear, capture the changed screen, and read diagnostics before reporting back.

Not a shell wrapper. Not UI scripting.

A small local adapter connects your AI client to SlateVM over a channel that never leaves your machine. SlateVM — the component that owns the VMs — answers every call, so the agent sees the same truth as the app. MCP in the hypervisor →

All 46 tools.

Identical names, schemas, and error codes on every host. A host that cannot do something (for example, macOS guests outside a Mac) returns a clear error rather than a different tool.

App (4)

launch_app

Launch the SlateVM app (visible, foreground).

quit_app

Quit the SlateVM app.

app_status

Report whether the SlateVM app is running, whether its control local channel is reachable, and the RUNNING app's version/build (read live from its bundle, so it stays correct after an auto-update swaps the app mid-session).

host_capabilities

Report host capabilities: nested-virt support, free disk, virtualization entitlement, macOS version.

Create & install (7)

create_vm

Create a new VM.

list_images

List all OS install images SlateVM can see (its image caches + your Downloads) with a guessed os, size, and whether it's readable — so you can pick a path for create_vm without being handed one.

list_restore_images

List macOS restore images (.ipsw) SlateVM knows about.

set_installer_media

Re-point a stopped VM's installer image to a new accessible path and write a fresh bookmark.

finish_install

Explicitly mark a VM's OS install complete: eject the installation ISO/media and flip installState from 'installing' to 'installed'.

apply_guest_tools

Stage/apply the guest-tools disc for a VM.

set_attach_linux_guest_tools

Toggle mounting the SlateVM Tools disc for a desktop Linux VM.

Lifecycle (8)

list_vms

List all SlateVM virtual machines with their state and hardware.

get_vm

Get the full configuration of one VM.

start_vm

Boot a VM and open its console window (visible).

stop_vm

Stop a running VM.

suspend_resume_vm

Toggle suspend/resume for a running VM.

wait_for_state

Block until a VM reaches a target run state, or timeout.

delete_vm

Delete a VM (moves its bundle to the trash).

reveal_vm

Reveal a VM's bundle in the file browser.

See the machine (4)

capture_screen

Capture the guest's screen.

read_console_text

Read the guest console as text.

wait_for_text

Block until `pattern` (case-insensitive regex) appears on the guest console, or timeout — polling for you so you don't sleep-and- screenshot.

read_guest_clipboard

Extract TEXT from a GRAPHICAL guest — the framebuffer analogue of read_console_text (which only covers headless serial Linux).

Act on the machine (5)

send_input

Inject input into the guest (not the Mac desktop).

run_in_guest

Run a command in a booted guest over SSH using its per-VM AI key.

provision_ssh

Return the dedicated per-VM SSH public key + an installCommand.

ssh_status

Report whether a VM has an AI SSH key provisioned, and its public key.

revoke_ssh

Remove the host-side AI SSH key for a VM.

Configure (7)

set_hardware

Live-apply hardware/network settings to a VM.

resize_disk

Grow a VM's disk.

set_display_resolution

Set the guest display resolution (headless Linux server; applies next boot).

set_console_window_size

Set the console window size for a VM.

add_shared_folder

Share a host folder into a mac/Linux VM (virtio-fs).

remove_shared_folder

Remove a shared folder from a VM.

set_shared_folder_readonly

Set a shared folder's read-only flag.

Network (6)

guest_network

Discover a running guest's IP address(es) from its MAC via the DHCP lease table and ARP (read-only).

set_linux_network_path

Set a Linux VM's NAT driver: native (Apple VZNAT) or service (socket_vmnet).

networking_status

Report whether the SlateVM networking service is installed and healthy.

networking_install

Install the SlateVM networking service.

networking_repair

Repair/reinstall the SlateVM networking service (admin-approved).

networking_uninstall

Uninstall the SlateVM networking service (admin-approved).

Jobs & diagnostics (5)

job_status

Get a background job's state (running/succeeded/failed), its latest stage, and its result or error.

job_wait

Block until a background job finishes or the timeout elapses; returns its state + result/error.

list_jobs

List recent background jobs and their states.

get_diagnostics

One-shot troubleshooting bundle for a VM: state, lastError ({code, message} — the reason a VM won't boot, e.g. MEDIA_INACCESSIBLE), per-drive media accessibility, recent log lines, disk size, network-service health, and config. Call this first when something is wrong.

tail_log

Return recent log lines for a VM.