A Model Context Protocol (MCP) server for controlling QEMU virtual machines via SSH. This server enables LLMs to interact with VMs through
Most browser automation work still happens through a UI a human drives. MCP Qemu Vm MCP server moves it into the conversation instead. A Model Context Protocol (MCP) server for controlling QEMU virtual machines via SSH. This server enables LLMs to interact with VMs through mouse/keyboard control, screenshots, and SSH command execution.
The server publishes 2 tools. What each one is for:
Problem — SolutionScreenshots — Screenshots are saved to the project's screenshots/ folder and exposed as MCP resources at vm://screenshot/{id}The server ships on PyPI as pillow, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.
Configuration is passed through the environment: VM_HOST, VM_USER, VM_PORT, VM_DISPLAY. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
This sits in the browser automation group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. MCP Qemu Vm's toolset — Problem, Screenshots — is a fair guide to whether it matches your workflow. It is maintained by neanderthal; worth a glance at recent repository activity before you build anything load-bearing on it.
We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.
| Tool | What it does |
|---|---|
| Problem | Solution |
| Screenshots | Screenshots are saved to the project's screenshots/ folder and exposed as MCP resources at vm://screenshot/{id}. |
{
"mcpServers": {
"qemu-vm": {
"command": "uvx",
"args": ["pillow"],
"env": {
"VM_HOST": "your-value",
"VM_USER": "your-value",
"VM_PORT": "your-value",
"VM_DISPLAY": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| VM_HOST | Endpoint or connection string the server talks to. | Optional |
| VM_USER | Configuration value read at startup. | Optional |
| VM_PORT | Configuration value read at startup. | Optional |
| VM_DISPLAY | Configuration value read at startup. | Optional |
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
Industrial-strength web extraction — render, scrape, crawl and search entire sites into clean markdown.
The original Chromium automation reference server — simple, screenshot-driven browser control.
Give your coding agent the full DevTools toolbox: traces, network, console, heap snapshots and Lighthouse.
Puppeteer-powered browser control that drives pages from the accessibility tree instead of pixels.
Cloud browsers for AI agents — automation sessions that run in Browserbase's fleet, not on your machine.