SlateVM
官方原生Apple Silicon虚拟机平台,提供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 →
全部 46 个工具。
在每个主机上具有相同的名称、模式和错误代码。无法执行某项操作的主机(例如,Mac 之外的 macOS 客户机)会返回明确的错误,而不是一个不同的工具。
应用 (4)
launch_app
启动 SlateVM 应用(可见,前台)。
quit_app
退出 SlateVM 应用。
app_status
报告 SlateVM 应用是否正在运行、其控制本地通道是否可达,以及正在运行的应用的版本/构建号(从其 bundle 实时读取,因此在自动更新于会话中途替换应用后仍保持正确)。
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(将其 bundle 移到废纸篓)。
reveal_vm
在文件浏览器中显示 VM 的 bundle。
观察机器 (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 的最近日志行。