Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-qemu-labStart the VM and take a full guest RAM dump for forensic analysis."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-qemu-lab
Local Model Context Protocol (MCP) server for Linux binary analysis in QEMU guests.
This server runs over STDIO, is safe by default, and exposes tools for:
VM lifecycle (create/start/stop/snapshots)
Full guest RAM dumps
In-guest debugger workflows and per-process core dumps
Artifact indexing/resources (metadata in tool output, file content via MCP resources)
Repository Layout
mcp_qemu_lab/server sourcetests/unit/integration testspyproject.tomlpackage + entrypointuv.lockpinned Python dependency lock file
Not tracked in git:
runtime workspaces/logs/artifacts (
.mcp-qemu-lab*/)local virtual envs (
.venv/)local tool caches (
tools/)local sample binaries (
test samples/)
Host Requirements
Python 3.11+
uvpackage managerQEMU (
qemu-system-x86_64andqemu-img)OpenSSH client tools (
ssh,scp,ssh-keygen)
Install Host Dependencies
Windows
Install
uv:
Install QEMU (includes
qemu-system-x86_64.exeandqemu-img.exe):
Ensure OpenSSH Client is installed:
Verify:
Linux (Ubuntu/Debian)
Linux (Fedora/RHEL family)
Linux (Arch)
Run From GitHub URL (No Local Project Path Needed)
You can launch directly from GitHub with uvx:
Recommended pin (branch/tag/commit):
MCP Client Configuration
VSCode Codex (TOML)
Example config.toml:
Windows:
Linux:
Cursor (JSON)
Example mcp.json:
Windows workspace example:
Safety Defaults
Guest networking default:
net_mode="none"No host directory sharing by default
guest_execallowlist unlessunsafe_allow_arbitrary_commands=trueper callTool outputs return JSON metadata only (no raw memory bytes)
Artifacts are stored on disk and exposed via MCP resources
Every tool call writes audit JSONL entries
Key Tools
ensure_dependenciesvm_create,vm_start,vm_status,vm_stopvm_snapshot_save,vm_snapshot_loadguest_wait_readyguest_exec,guest_copy_in,guest_copy_outprocess_list,process_mapsdebugger_attach,debugger_set_breakpoint,debugger_continue,debugger_read_registers,debugger_detachprocess_dump_coreguest_dump_memoryartifacts_listvm_logs_tail
Resources
artifact://{artifact_id}artifact contentartifact-index://allartifact metadata index
Development Setup (Optional Local Clone Workflow)
If you are developing this repo locally:
Integration test (real VM boot):
Windows PowerShell:
Troubleshooting
dependency_missing: install QEMU/OpenSSH and verify binaries are onPATH.dependency_privilege_required: rerun install command with elevated permissions.ssh_unavailable: VM must be created withnet_mode="user"for SSH-based tools.gdb/attach failures: runguest_wait_ready(..., require_gdb=true)before debugger/core tools.