SlateVM
官方原生Apple晶片VM平台,提供45個MCP工具,用於建立、觀察及操作macOS、Linux和Windows 11 ARM虛擬機。
你可以用 SlateVM MCP 做什麼?
- 建立並設定虛擬機 — 要求
create_vm建立 macOS、Linux 或 Windows 客戶機,並設定 CPU、記憶體、磁碟與網路,再依需求調整硬體或resize_disk。 - 觀察客戶機狀態 — 使用
capture_screen、read_console_text或wait_for_text查看虛擬機的顯示畫面、序列輸出或 OCR 介面,以確認目前狀況。 - 傳送輸入並執行指令 — 透過
send_input直接操作鍵盤、滑鼠或文字,或使用run_in_guest透過已佈建的 SSH 身分執行有限指令。 - 管理生命週期與工作 — 使用
start_vm、stop_vm、suspend_resume_vm或delete_vm,並以job_status或wait_for_state追蹤進度。 - 診斷與檢查 — 取得
get_diagnostics、tail_log或networking_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 命令,並回傳結束碼、輸出、錯誤、逾時與連線狀態。