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 的最近日志行。