loading…
Search for a command to run...
loading…
A Model Context Protocol server for conducting Linux binary analysis and guest system forensics within QEMU virtual machines. It enables automated VM lifecycle
A Model Context Protocol server for conducting Linux binary analysis and guest system forensics within QEMU virtual machines. It enables automated VM lifecycle management, memory dumping, and interactive debugging workflows for analyzing processes and artifacts.
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:
mcp_qemu_lab/ server sourcetests/ unit/integration testspyproject.toml package + entrypointuv.lock pinned Python dependency lock fileNot tracked in git:
.mcp-qemu-lab*/).venv/)tools/)test samples/)uv package managerqemu-system-x86_64 and qemu-img)ssh, scp, ssh-keygen)uv:powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
qemu-system-x86_64.exe and qemu-img.exe):winget install --id QEMU.QEMU --exact --accept-package-agreements --accept-source-agreements
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
qemu-system-x86_64 --version
qemu-img --version
ssh -V
sudo apt update
sudo apt install -y qemu-system-x86 qemu-utils openssh-client cloud-image-utils
sudo dnf install -y qemu-system-x86 qemu-img openssh-clients cloud-utils
sudo pacman -S --needed qemu-base qemu-desktop openssh cloud-utils
You can launch directly from GitHub with uvx:
uvx --from git+https://github.com/Kevin4562/QEMU-MCP.git mcp-qemu-lab
Recommended pin (branch/tag/commit):
uvx --from git+https://github.com/Kevin4562/QEMU-MCP.git@main mcp-qemu-lab
Example config.toml:
Windows:
[mcp_servers.mcp-qemu-lab]
command = "uvx"
args = ["--from", "git+https://github.com/Kevin4562/QEMU-MCP.git@main", "mcp-qemu-lab"]
env = { MCP_QEMU_LAB_WORKSPACE = "C:\\Users\\User\\AppData\\Local\\mcp-qemu-lab" }
Linux:
[mcp_servers.mcp-qemu-lab]
command = "uvx"
args = ["--from", "git+https://github.com/Kevin4562/QEMU-MCP.git@main", "mcp-qemu-lab"]
env = { MCP_QEMU_LAB_WORKSPACE = "/home/user/.local/share/mcp-qemu-lab" }
Example mcp.json:
{
"mcpServers": {
"mcp-qemu-lab": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Kevin4562/QEMU-MCP.git@main",
"mcp-qemu-lab"
],
"env": {
"MCP_QEMU_LAB_WORKSPACE": "/absolute/path/to/mcp-qemu-lab-workspace"
}
}
}
}
Windows workspace example:
{
"mcpServers": {
"mcp-qemu-lab": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Kevin4562/QEMU-MCP.git@main",
"mcp-qemu-lab"
],
"env": {
"MCP_QEMU_LAB_WORKSPACE": "C:\\Users\\User\\AppData\\Local\\mcp-qemu-lab"
}
}
}
}
net_mode="none"guest_exec allowlist unless unsafe_allow_arbitrary_commands=true per callensure_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_tailartifact://{artifact_id} artifact contentartifact-index://all artifact metadata indexIf you are developing this repo locally:
uv sync
uv run --extra dev pytest -q
Integration test (real VM boot):
MCP_QEMU_LAB_RUN_INTEGRATION=1 MCP_QEMU_LAB_INTEGRATION_TIMEOUT_SEC=1800 uv run --extra dev pytest -m integration
Windows PowerShell:
$env:MCP_QEMU_LAB_RUN_INTEGRATION = "1"
$env:MCP_QEMU_LAB_INTEGRATION_TIMEOUT_SEC = "1800"
uv run --extra dev pytest -m integration
dependency_missing: install QEMU/OpenSSH and verify binaries are on PATH.dependency_privilege_required: rerun install command with elevated permissions.ssh_unavailable: VM must be created with net_mode="user" for SSH-based tools.gdb/attach failures: run guest_wait_ready(..., require_gdb=true) before debugger/core tools.Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"mcp-qemu-lab": {
"command": "npx",
"args": []
}
}
}