SlateVM
官方原生Apple Silicon虚拟机平台,提供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直接发送键盘、指针或文本输入,或使用预置的 SSH 身份通过run_in_guest执行受限命令。 - 管理生命周期和任务 — 执行
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管理客户机资源。
文档
一个真正让 LLM 能看见、理解并操作的虚拟机。
SlateVM 为兼容的 MCP 客户端提供 45 个结构化函数,涵盖创建、配置、生命周期、控制台交互、网络、诊断、配置和客户机执行。铸造虚拟机只是开始:代理可以观察客户机、理解其状态,然后在每个受支持的客户机平台上执行操作并进行验证。
每一步都带有证据的自动化。
观察机器
读取精确的生命周期和任务状态,捕获帧缓冲,OCR 可见界面,读取无头 Linux 串行流,检查日志,或发现客户机网络。
通过正确的渠道行动
发送键盘、指针、滚动或文本输入;为每个虚拟机配置专用的 SSH 身份;运行受限命令;并更新受支持的虚拟机配置。
验证结果
等待状态或文本,捕获更改后的屏幕,读取串行输出,收集诊断信息,并根据虚拟机实际报告的内容继续操作。
不是 shell 包装器。不是 UI 脚本。
无状态的 slatevm-mcp 适配器通过本地 Unix 域套接字使用 SlateVM 的版本化协议。SlateControlServer 通过 SlateControlHub 分发每个请求,SwiftUI 界面和 AI 控制路径在此汇聚到同一个 VMStore、网络服务、窗口管理器和生命周期所有者。SlateVM(而非适配器)仍然是虚拟机状态和策略的权威。
SwiftUI 人工控制
SlateControlHub 共享应用控制平面
LLM + MCP 结构化控制
可供 LLM 使用的 45 个函数。
此目录反映了由捆绑的 slatevm-mcp 实现及其对应的本地或应用侧分发路径注册的工具清单。
应用、发现和任务
launch_app
以可见方式启动 SlateVM,并报告其本地控制端点是否就绪。
quit_app
优雅关闭 SlateVM,或在明确请求时强制应用退出。
app_status
报告 SlateVM 是否正在运行、其进程标识符、控制套接字可达性,以及正在运行的应用的版本和构建号(从其 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
根据必需的 OS、CPU、内存、磁盘、镜像和网络输入创建 macOS、Linux 或 Windows 虚拟机,支持可选的无人值守安装、账户凭据、NAT 或 LAN 桥接网络,以及 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 命令,并返回退出代码、输出、错误、超时和连接状态。