虚拟机控制服务器

VMware Workstation MCP Server是一个用于在Linux上控制VMware Workstation虚拟机的服务器,支持通过Claude Code、Claude Desktop或任何MCP客户端进行操作。

  • by Dyspel
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 Dyspel/vmware_workstation_mcp

使用说明

VMware工作站MCP服务器

用于在Linux上控制VMware Workstation虚拟机的MCP服务器。适用于Claude Code、Claude Desktop或任何MCP客户端。

设置

pip install "mcp[cli]"

添加 ~/.claude.json (或使用 claude mcp add):

{
  "mcpServers": {
    "vmware": {
      "command": "python3",
      "args": ["/path/to/vmware_mcp.py"]
    }
  }
}

串行控制台

启用 send_text / read_serial,在中配置VM的串行端口 .vmx 文件:

serial0.fileType = "network"
serial0.fileName = "telnet://127.0.0.1:4321"
serial0.present = "TRUE"
serial0.yieldOnMsrRead = "TRUE"

客户操作系统必须轮询COM1以获取输入。

工具(34)

VM资源清册

工具 说明
list_running_vms 列出正在运行的虚拟机
list_all_vms 发现系统上的所有虚拟机
get_vm_info 详细的VM配置(CPU、RAM、磁盘、NIC)

电源管理

工具 说明
start_vm 开机(gui或nogui)
stop_vm 电源关闭(软/硬)
suspend_vm 挂起到磁盘
reset_vm 重新启动
pause_vm / unpause_vm 暂停/恢复

快照

工具 说明
list_snapshots 列出所有快照
create_snapshot 创建命名快照
revert_to_snapshot 还原到快照
delete_snapshot 删除快照

屏幕捕获

工具 说明
capture_screen 通过X11窗口捕获的屏幕截图(无需工具),保存到 ~/Desktop/

串行控制台

工具 说明
send_text 向VM控制台发送文本,返回响应
read_serial 从捕获的串行输出中读取最后N个字符
read_new_serial 只读上次读取后的新输出

服务器与64KB环形缓冲区保持持久串行连接,该缓冲区在后台捕获所有VM输出。

客户操作(需要VMware工具)

工具 说明
get_guest_ip 获取访客IP地址
run_program_in_guest 执行程序
run_script_in_guest 执行脚本
list_processes_in_guest 列出流程
kill_process_in_guest 终止一个进程
copy_file_to_guest 主机->客户文件副本
copy_file_from_guest 访客->主机文件副本
list_directory_in_guest 列出目录内容
file_exists_in_guest 检查文件是否存在

其他

工具 说明
add_shared_folder / remove_shared_folder 管理共享文件夹
clone_vm 克隆虚拟机(完整或链接)
install_tools / check_tools_state VMware工具管理
read_variable / write_variable VM变量

需求

  • VMware Workstation Pro(Linux)
  • vmrun 在PATH中
  • Python 3.10+
  • xdotool +ImageMagick(用于 capture_screen)
  • 访客串行输入支持(用于 send_text)