SlateVM

官方

原生Apple晶片VM平台,提供45個MCP工具,用於建立、觀察及操作macOS、Linux和Windows 11 ARM虛擬機。

你可以用 SlateVM MCP 做什麼?

  • 建立並啟動 VM — 從列出的安裝映像建立 VM,然後啟動它並等待其達到目標執行狀態。
  • 觀察客體 — 擷取畫面、讀取主控台文字,或等待正規表達式模式出現在主控台上。
  • 操作客體 — 注入鍵盤、指標與文字輸入,或透過每個 VM 專屬的 SSH 金鑰在已啟動的客體中執行命令。
  • 設定硬體 — 即時套用硬體與網路設定、擴充磁碟,或設定顯示解析度與主控台視窗大小。
  • 共享主機資料夾 — 在 mac/Linux VM 中新增或移除 virtio-fs 共享資料夾,並切換其唯讀旗標。
  • 診斷問題 — 當 VM 無法開機時,提取一次性診斷套件或追蹤最近的日誌行。

文件

你的 AI 可以看見並操作的實體電腦。

SlateVM 內建的 MCP 伺服器為任何相容的 AI 用戶端提供 46 個結構化工具,可建立虛擬機、觀看其螢幕、輸入文字與點擊、在客體內部執行命令,並驗證結果——在 Mac、Windows 和 Linux 上皆遵循相同的契約。

每一步都有證據的自動化。

觀察

即時狀態與工作、螢幕擷取、螢幕上的文字(OCR)、無頭 Linux 的序列主控台文字、日誌,以及客體網路位址。

操作

鍵盤、指標、捲動與文字輸入;透過每台 VM 專屬的 SSH 身分在客體內執行命令;硬體、磁碟、顯示器、網路與共享資料夾的變更。

驗證

等待某個狀態或文字出現、擷取變更後的螢幕,並在回報前讀取診斷資訊。

不是 shell 包裝器。不是 UI 腳本。

一個小型本機轉接器透過永不離開你機器的通道,將你的 AI 用戶端連接到 SlateVM。SlateVM——擁有這些 VM 的元件——回應每一次呼叫,因此代理看到的真相與應用程式一致。MCP in the hypervisor →

全部 46 個工具。

在每個主機上具有相同的名稱、結構描述與錯誤碼。無法執行某項操作的主機(例如在 Mac 以外的環境執行 macOS 客體)會回傳明確的錯誤,而不是不同的工具。

應用程式 (4)

launch_app

啟動 SlateVM 應用程式(可見、前景)。

quit_app

結束 SlateVM 應用程式。

app_status

回報 SlateVM 應用程式是否正在執行、其控制本機通道是否可達,以及執行中應用程式的版本/組建(即時從其套件讀取,因此即使在自動更新於工作階段中途替換應用程式後仍保持正確)。

host_capabilities

回報主機能力:巢狀虛擬化支援、可用磁碟空間、虛擬化授權、macOS 版本。

建立與安裝 (7)

create_vm

建立新的 VM。

list_images

列出 SlateVM 能看到的所有作業系統安裝映像(其映像快取 + 你的下載資料夾),附上推測的作業系統、大小,以及是否可讀取——讓你可以為 create_vm 挑選路徑,而不必被直接指定一個。

list_restore_images

列出 SlateVM 已知的 macOS 還原映像(.ipsw)。

set_installer_media

將已停止 VM 的安裝程式映像重新指向新的可存取路徑,並寫入新的書籤。

finish_install

明確將 VM 的作業系統安裝標記為完成:退出安裝 ISO/媒體,並將 installState 從 'installing' 切換為 'installed'。

apply_guest_tools

為 VM 準備/套用客體工具光碟。

set_attach_linux_guest_tools

切換是否為桌面 Linux VM 掛載 SlateVM Tools 光碟。

生命週期 (8)

list_vms

列出所有 SlateVM 虛擬機及其狀態與硬體。

get_vm

取得單一 VM 的完整設定。

start_vm

啟動 VM 並開啟其主控台視窗(可見)。

stop_vm

停止執行中的 VM。

suspend_resume_vm

切換執行中 VM 的暫停/恢復。

wait_for_state

封鎖直到 VM 達到目標執行狀態,或逾時。

delete_vm

刪除 VM(將其套件移至垃圾桶)。

reveal_vm

在檔案瀏覽器中顯示 VM 的套件。

看見機器 (4)

capture_screen

擷取客體的螢幕。

read_console_text

以文字讀取客體主控台。

wait_for_text

封鎖直到 pattern\(不區分大小寫的正規表達式)出現在客體主控台上,或逾時——替你輪詢,讓你不必先睡眠再截圖。

read_guest_clipboard

從圖形化客體擷取文字——這是 read_console_text(僅涵蓋無頭序列 Linux)的幀緩衝對應功能。

操作機器 (5)

send_input

將輸入注入客體(而非 Mac 桌面)。

run_in_guest

使用每台 VM 專屬的 AI 金鑰,透過 SSH 在已開機的客體中執行命令。

provision_ssh

回傳每台 VM 專屬的 SSH 公開金鑰 + 一個 installCommand。

ssh_status

回報 VM 是否已配置 AI SSH 金鑰,以及其公開金鑰。

revoke_ssh

移除 VM 在主機端的 AI SSH 金鑰。

設定 (7)

set_hardware

即時將硬體/網路設定套用至 VM。

resize_disk

擴充 VM 的磁碟。

set_display_resolution

設定客體顯示解析度(無頭 Linux 伺服器;於下次開機時套用)。

set_console_window_size

設定 VM 的主控台視窗大小。

add_shared_folder

將主機資料夾共享至 mac/Linux VM(virtio-fs)。

remove_shared_folder

從 VM 移除共享資料夾。

set_shared_folder_readonly

設定共享資料夾的唯讀旗標。

網路 (6)

guest_network

透過 DHCP 租約表與 ARP,從執行中客體的 MAC 探索其 IP 位址(唯讀)。

set_linux_network_path

設定 Linux VM 的 NAT 驅動程式:native(Apple VZNAT)或 service(socket_vmnet)。

networking_status

回報 SlateVM 網路服務是否已安裝且運作正常。

networking_install

安裝 SlateVM 網路服務。

networking_repair

修復/重新安裝 SlateVM 網路服務(需管理員核准)。

networking_uninstall

解除安裝 SlateVM 網路服務(需管理員核准)。

工作與診斷 (5)

job_status

取得背景工作的狀態(執行中/成功/失敗)、其最新階段,以及其結果或錯誤。

job_wait

封鎖直到背景工作完成或逾時;回傳其狀態 + 結果/錯誤。

list_jobs

列出最近的背景工作及其狀態。

get_diagnostics

VM 的一站式疑難排解組合包:狀態、lastError({code, message}——VM 無法開機的原因,例如 MEDIA_INACCESSIBLE)、各磁碟機的媒體可存取性、最近的日誌行、磁碟大小、網路服務健康狀態,以及設定。出問題時請先呼叫此工具。

tail_log

回傳 VM 的最近日誌行。