SlateVM

官方

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

你可以用 SlateVM MCP 做什麼?

  • 建立並設定虛擬機 — 要求 create_vm 建立 macOS、Linux 或 Windows 客戶機,並設定 CPU、記憶體、磁碟與網路,再依需求調整硬體或 resize_disk
  • 觀察客戶機狀態 — 使用 capture_screenread_console_textwait_for_text 查看虛擬機的顯示畫面、序列輸出或 OCR 介面,以確認目前狀況。
  • 傳送輸入並執行指令 — 透過 send_input 直接操作鍵盤、滑鼠或文字,或使用 run_in_guest 透過已佈建的 SSH 身分執行有限指令。
  • 管理生命週期與工作 — 使用 start_vmstop_vmsuspend_resume_vmdelete_vm,並以 job_statuswait_for_state 追蹤進度。
  • 診斷與檢查 — 取得 get_diagnosticstail_lognetworking_status,以排除虛擬機健康狀態、日誌與網路連線問題。
  • 處理儲存與媒體 — 新增或移除 shared_folder、套用 apply_guest_tools,或設定 set_installer_media 以管理客戶機資源。

文件

一個大型語言模型能真正看見、理解並操作的虛擬機器。

SlateVM 為相容的 MCP 用戶端提供 45 個結構化函式,涵蓋建立、配置、生命週期、主控台互動、網路、診斷、設定及客端執行。建立虛擬機器只是開始:代理程式能觀察客端、理解其狀態,然後在每個支援的客端平台上行動並驗證。

每個步驟都附有證據的自動化。

觀察機器

讀取精確的生命週期與工作狀態、擷取畫面緩衝區、對可見介面進行 OCR、讀取無頭 Linux 序列埠串流、檢查日誌,或探索客端網路。

透過正確的管道行動

傳送鍵盤、指標、捲動或文字輸入;為每個虛擬機器配置專屬的 SSH 身分;執行有界限的命令;並更新支援的虛擬機器設定。

驗證結果

等待狀態或文字、擷取變更後的畫面、讀取序列埠輸出、收集診斷資訊,並根據虛擬機器實際回報的內容繼續操作。

不是 Shell 包裝。不是 UI 腳本。

無狀態的 slatevm-mcp 轉接器透過本機 Unix-domain socket 使用 SlateVM 的版本化協定。SlateControlServer 將每個請求分派至 SlateControlHub,在此處 SwiftUI 介面與 AI 控制路徑匯聚於相同的 VMStore、網路服務、視窗管理器和生命週期擁有者。SlateVM(而非轉接器)仍是虛擬機器狀態與政策的權威來源。

SwiftUI 人類控制

SlateControlHub 共享應用程式控制平面

LLM + MCP 結構化控制

可供大型語言模型使用的 45 個函式。

此目錄反映了由內建 slatevm-mcp 實作及其對應的本機或應用程式端分派路徑所註冊的工具清單。

應用程式、探索與工作

launch_app

以可見方式啟動 SlateVM,並回報其本機控制端點是否就緒。

quit_app

優雅地關閉 SlateVM,或在明確要求時強制應用程式結束。

app_status

回報 SlateVM 是否正在執行、其程序識別碼、控制 socket 的可達性,以及執行中應用程式的版本與建置編號(直接從其 bundle 即時讀取,因此自動更新後仍保持正確)。

host_capabilities

回傳主機虛擬化能力、巢狀虛擬化、macOS 版本、授權狀態及可用磁碟資訊。

list_images

列出 SlateVM 快取與 Downloads 中可讀取的安裝映像檔,並附帶推斷的客端類型與大小。

list_restore_images

列出 SlateVM 已知的 macOS 還原映像檔,供 macOS 建立流程使用。

job_status

回傳背景工作的狀態、最新階段、結果或結構化錯誤。

job_wait

等待背景工作完成或達到有界逾時,然後回傳其目前結果。

list_jobs

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

虛擬機器庫存與生命週期

list_vms

列出每台虛擬機器及其身分、執行時期狀態與硬體摘要。

get_vm

回傳單一虛擬機器的完整持久化設定與目前詳細資料。

create_vm

從必要的作業系統、CPU、記憶體、磁碟、映像檔與網路輸入建立 macOS、Linux 或 Windows 虛擬機器,並可選用無人值守安裝、帳戶憑證、NAT 或 LAN-bridge 網路,以及對 Linux 客端的 x86-64(Rosetta)支援。

start_vm

啟動選定的虛擬機器並開啟其可見的主控台視窗。

stop_vm

停止執行中的虛擬機器,預設為優雅關機,並提供明確的強制選項。

suspend_resume_vm

在暫停與恢復狀態之間切換執行中的虛擬機器。

wait_for_state

等待執行中或已停止狀態,並在可用時回傳帶有錯誤上下文的結果。

delete_vm

透過 SlateVM 的協調刪除路徑,將已確認的虛擬機器 bundle 移至垃圾桶。

reveal_vm

在 Finder 中顯示選定的虛擬機器 bundle。

設定、儲存與整合

set_hardware

僅更新提供的 CPU、記憶體、網路、巢狀虛擬化、x86-64(Rosetta)或 Linux 網路驅動程式設定。

resize_disk

將虛擬機器磁碟擴充至已確認的較大容量,同時保留現有的虛擬磁碟。

set_installer_media

將已停止的虛擬機器重新指向可存取的安裝媒體,並持久化新的範圍化參考。

finish_install

標記安裝完成,並從下次開機設定中移除安裝媒體。

add_shared_folder

將主機資料夾加入 macOS 或 Linux 虛擬機器,並附掛載名稱與可選的唯讀存取。

remove_shared_folder

從虛擬機器設定中移除選定的共享資料夾記錄。

set_shared_folder_readonly

在唯讀與可寫入存取之間切換共享資料夾。

apply_guest_tools

為選定的虛擬機器暫存或套用 SlateVM 的客端工具光碟。

set_attach_linux_guest_tools

控制桌面 Linux 虛擬機器是否掛載 SlateVM Tools 光碟。

set_console_window_size

以 Mac 顯示點為單位設定選定虛擬機器主控台視窗的寬度與高度。

set_display_resolution

為無頭 Linux 伺服器客端設定下次開機的顯示解析度。

set_linux_network_path

為 Linux 虛擬機器選擇原生 Apple NAT 或 SlateVM 的服務支援 NAT 路徑。

診斷、主控台與輸入

get_diagnostics

收集虛擬機器狀態、設定、媒體存取、磁碟資訊、網路健康狀態、日誌及最新的結構化錯誤。

tail_log

回傳選定時間視窗內最近的虛擬機器日誌行,並可選用文字篩選器。

capture_screen

將客端主控台擷取為 MCP 影像或主機檔案,並提供格式、裁切與縮放控制。

read_console_text

回傳客端主控台文字,可選用不區分大小寫的模式進行篩選。無頭 Linux 伺服器讀取精確的序列埠串流(無 OCR);其他客端使用畫面緩衝區 OCR。

wait_for_text

輪詢主控台,直到要求的模式出現或達到有界逾時——無頭伺服器使用序列埠串流,否則使用畫面緩衝區 OCR。

send_input

傳送客端範圍的指標、文字或按鍵動作,並可在同一次呼叫中擷取結果。在無頭伺服器上,文字/按鍵會送往序列埠主控台——大寫字母、符號與 Ctrl 組合鍵皆可運作。

網路服務與客端命令

networking_status

回報 SlateVM 的網路服務是否已安裝、可達且健康。

networking_install

開啟已簽署的 macOS 安裝程式,供網路服務的一次性管理員核准。

networking_repair

透過管理員核准的套件流程重新安裝網路服務。

networking_uninstall

開啟管理員核准的網路服務解除安裝程式。

guest_network

使用主機 DHCP 與 ARP 資訊,從虛擬機器的 MAC 探索候選客端 IP 位址。

provision_ssh

建立或回傳虛擬機器專屬的 SSH 公開金鑰與客端端安裝命令。

ssh_status

回報虛擬機器是否具有專屬的 LLM SSH 金鑰,並回傳其公開金鑰。

revoke_ssh

移除主機端的專屬 SSH 身分,以便輪換或淘汰。

run_in_guest

執行有界限的 SSH 命令,並回傳結束碼、輸出、錯誤、逾時與連線狀態。