ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Qemu MCP

โดย 0xmortuexรุ่น 0.1.0i★ 5iรันบนเครื่อง
ชื่อใน registryio.github.0xmortuex/qemu-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Boot and drive QEMU VMs from an AI agent: keys, screenshots, serial. No guest agent.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: อื่น ๆ

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "qemu": {
      "command": "uvx",
      "args": [
        "qemu-mcp"
      ]
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add qemu -- uvx qemu-mcp

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "qemu": {
      "command": "uvx",
      "args": [
        "qemu-mcp"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "qemu": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "qemu-mcp"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ใช้กับโปรแกรมไหนได้

ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569

ติดตั้งบนเครื่องได้ใน

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

ดูโปรแกรมทั้งหมดพร้อมข้อดีข้อเสีย →

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 11 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub 0xmortuex ซึ่งเป็นเจ้าของ repo

  • ✓ ผ่าน

    ยังมีคนดูแล

    มีการแก้โค้ดล่าสุด เมื่อวาน

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 93% ของอีก 19100 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 92% ของอีก 19100 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 19100 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Qemu MCP ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 2 จาก 2 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด เมื่อวาน และส่งรุ่นล่าสุด (0.1.0) เข้า registry 3 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี World Monitor, Claude Flow, Tldraw

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

World Monitor

Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.

โดย koala73ใช้กันมาก★ 90.4Kอัปเดต 5 วันที่ผ่านมา

รันบนคลาวด์✓ worldmonitor.app

Claude Flow

AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.

โดย ruvnetใช้กันมาก↓ 13.5K/สัปดาห์★ 81.4Kอัปเดต 14 เดือนที่ผ่านมา

รันบนเครื่อง

Tldraw

Draw and visually collaborate with your agents on tldraw's canvas.

โดย tldrawใช้กันมาก★ 51.4Kอัปเดต 8 เดือนที่ผ่านมา

รันบนคลาวด์

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

qemu-mcp

Let your AI agent boot an operating system and drive it.

qemu-mcp is an MCP server that gives AI agents (Claude Code, or any MCP client) hands on a QEMU virtual machine: boot an ISO or a raw kernel, press keys, take screenshots, read the serial console, and wait for boot markers — all headless, with zero cooperation from the guest. No SSH, no guest agent, no network. If it boots in QEMU, an agent can drive it.

*This screenshot was taken by an AI agent: it booted MORT OS (a hobby kernel with no SSH, no agent, no TCP required) headless, pressed Esc, typed help, and captured the framebuffer — four tool calls.*

Who this is for

OS developers and hobby kernel hackers. The osdev inner loop is: edit kernel → build → boot in QEMU → *look at the screen* → type something → read serial → repeat. An AI agent can already do the edit and build steps; qemu-mcp gives it the rest of the loop, so it can boot-test its own kernel changes and actually see the triple fault.

It's equally useful for anyone who needs an agent to poke at a VM below the OS level: bootloaders, installers, BIOS/UEFI menus, recovery consoles, firmware.

Why another QEMU MCP server?

The existing ones assume a *full, running guest OS* — they exec commands over SSH or a guest agent. That's useless when your guest is a 40 KB kernel you wrote yourself, an installer ISO, or anything pre-boot. qemu-mcp is built for the boot-test loop instead:

  • Serial console capture — continuously logged to a file, readable at any time (qemu_serial), and writable too (qemu_serial_send)
  • `qemu_wait_serial` — block until "kernel ready" (or "login:", or your panic string) appears, the reliable way to sequence an automated boot test
  • `-kernel` boot — boot a multiboot/bzImage kernel directly, with append/initrd
  • Screenshots of the VGA framebuffer — works headless, shows exactly what a monitor would
  • Raw QMP escape hatch — the full QEMU Machine Protocol when you need memsave, system_reset, device_add…

Tools

ToolWhat it does
qemu_bootBoot a VM headless from iso, kernel (+append/initrd), and/or disk. Any arch QEMU supports (x86_64, i386, aarch64, riscv64…), an optional machine (QEMU -M, required on some archs), an optional smp (QEMU -smp, number of virtual CPUs, for testing SMP-aware guest code) plus optional smp_cores/smp_threads/smp_sockets/smp_maxcpus (QEMU -smp topology qualifiers cores=/threads=/sockets=/maxcpus= combined onto the same flag, for shaping a guest's CPU topology rather than just its total count), an optional accel (QEMU -accel, e.g. "kvm:tcg"/"hvf:tcg"/"whpx:tcg", to opt into hardware acceleration), an optional cpu (QEMU -cpu, e.g. "qemu64,+avx"/"max"/"host", to select or customize the emulated CPU model for testing a specific feature set), an optional hostfwd (QEMU's hostfwd rule, e.g. "tcp::2222-:22", to reach a guest service like SSH from the host without needing QEMU's own NIC/chipset flags), arbitrary extra QEMU args (networking, devices…), and overridable qmp_connect_timeout_s/qmp_read_timeout_s for slow hosts or long-running QMP commands
qemu_versionReport the installed qemu-system- --version output, without booting a VM
qemu_machinesReport qemu-system- -M help output: every valid qemu_boot machine value for that arch, without booting a VM
qemu_cpu_modelsReport qemu-system- -cpu help output: every valid qemu_boot cpu value for that arch, without booting a VM
qemu_disk_createCreate a fresh disk image via qemu-img create (format "qcow2"/"raw", size like "10G"), ready for qemu_boot's disk param — qemu_boot never creates one itself
qemu_screenshotPNG of the guest's display, straight from the framebuffer
qemu_typeType text as keyboard input (\n = Enter, shifted symbols handled, tunable keystroke delay)
qemu_keyPress a key or chord: enter, esc, f12, ctrl-alt-f2…
qemu_mouseMove the absolute pointer (fractions of screen width/height) and optionally click left/right/middle, scroll with wheel-up/wheel-down/wheel-left/wheel-right, or press a 5-button mouse's side/extra buttons
qemu_pausePause the VM's execution (QMP stop) without exiting QEMU — RAM/device state stay frozen until qemu_resume. Useful for inspecting a VM without guest time advancing, or for a guaranteed-consistent qemu_snapshot_save
qemu_resumeResume a VM previously paused with qemu_pause (QMP cont)
qemu_snapshot_saveSave a full RAM+device snapshot under a tag (needs a qcow2 disk). Reports failure if QEMU's savevm rejects it (e.g. a raw disk) instead of claiming success
qemu_snapshot_loadRestore a VM to a previously saved snapshot tag. Reports failure if QEMU's loadvm rejects it (e.g. an unknown tag) instead of claiming success
qemu_snapshot_deleteDelete a previously saved snapshot tag, freeing its space in the qcow2 disk. Reports failure if QEMU's delvm rejects it (e.g. an unknown tag) instead of claiming success
qemu_snapshot_listList snapshot tags saved on the VM's qcow2 disk (raw info snapshots output), so you can see what's available before loading or deleting one
qemu_change_mediaSwap the medium in a removable drive (e.g. a CD-ROM) without rebooting. device is the block backend's id/QOM path, found via qemu_qmp(name, "query-block") — not guessable, since it depends on the machine type/QEMU version
qemu_serialTail the serial console (COM1) output — works after the VM has exited too, to see what it printed right before dying
qemu_serial_sendWrite text to the serial console (COM1)
qemu_wait_serialBlock until given text appears on serial, or timeout. Each wait only searches output after the previous match, so waiting for a prompt after a command finds the new one (from_start=True searches the whole log)
qemu_wait_screenBlock until the display stops changing (for VGA-only guests with no serial output), or timeout. A blinking text cursor counts as settled (max_changed_pixels, default 64)
qemu_listAll managed VMs with state, arch, machine, hostfwd, pid, uptime. A VM paused via qemu_pause shows as running (paused)
qemu_stopGraceful ACPI powerdown, or force=true to kill. graceful_timeout_s/kill_timeout_s override the default 10s/3s waits
qemu_qmpRun any raw QMP command on the VM

Multiple named VMs can run at once.

Every tool declares all four MCP behaviour hints, so your client knows which calls to confirm with you. Only the waiting and reading tools (qemu_screenshot, qemu_serial, qemu_wait_serial, qemu_wait_screen, qemu_snapshot_list, qemu_version, qemu_machines, qemu_cpu_models) are read-only. qemu_boot and qemu_list are marked destructive because they clean up VMs that exited on their own, deleting their serial logs; read a crashed guest's output with qemu_serial first. qemu_boot and qemu_qmp are open-world: extra_args and raw QMP can reach anything QEMU can.

Install

Requirements: Python 3.10+, and QEMU on your PATH (on Windows, C:\Program Files\qemu is found automatically, or set QEMU_DIR).

pip install qemu-mcp

Claude Code:

claude mcp add qemu -- qemu-mcp

Any other MCP client (stdio transport):

{

"mcpServers": { "qemu": { "command": "qemu-mcp" } } }

Or without installing, via uv: claude mcp add qemu -- uvx qemu-mcp

Example session

you: boot build/os.iso and check the shell works

agent: qemu_boot(name="test", iso="build/os.iso", arch="i386") → booted

qemu_wait_serial(name="test", text="boot ok") → FOUND

qemu_type(name="test", text="help\n")

qemu_screenshot(name="test") → *sees the help output rendered*

qemu_stop(name="test", force=true)

"Your ISO boots, the shell responds to help, and the new command is listed. Screenshot attached."

A typical kernel test the agent can run by itself:

qemu_boot(name="k", kernel="build/kernel.elf", arch="i386",

extra_args="-device rtl8139,netdev=n0 -netdev user,id=n0") qemu_wait_serial(name="k", text="MORTNET READY", timeout_s=20) qemu_serial_send(name="k", text="net\n") # guest has no keyboard driver, only a serial shell qemu_serial(name="k") # did DHCP bind? qemu_screenshot(name="k") # what does the console show?

Non-x86 archs

x86_64 and i386 boot with no machine argument. Other archs have no default machine in QEMU and need -M set explicitly, or they'll fail to boot:

qemu_boot(name="a", kernel="build/kernel-aarch64.elf", arch="aarch64", machine="virt")

qemu_boot(name="r", kernel="build/kernel-riscv64.elf", arch="riscv64", machine="virt")

Run qemu_machines(arch="aarch64") for the full list of machines an arch supports — it reports qemu-system- -M help's own output without needing a shell.

virt has no default display device — unlike the PC-family boards x86_64/ i386 boot with, it doesn't wire up VGA on its own. qemu_screenshot/ qemu_wait_screen against a virt VM will see an empty/black framebuffer (or a QMP error, depending on QEMU version) unless the guest itself sets one up, which most bare-metal aarch64/riscv64 kernels don't. Add a display device explicitly if you need screenshots:

qemu_boot(name="a", kernel="build/kernel-aarch64.elf", arch="aarch64",

machine="virt", extra_args="-device virtio-gpu-pci")

(This is documented QEMU virt-board behavior, not verified against a real boot in this environment — no QEMU available here.)

Hardware acceleration

qemu_boot defaults to TCG (QEMU's software emulator) with no accel given - correct on any host, but a real slowdown for anything beyond a trivial kernel. Opt into your host's accelerator with accel, falling back to TCG if it's unavailable so the boot doesn't hard-fail on a host without it:

qemu_boot(name="fast", kernel="build/kernel.elf", accel="kvm:tcg")   # Linux

qemu_boot(name="fast", kernel="build/kernel.elf", accel="hvf:tcg") # macOS qemu_boot(name="fast", kernel="build/kernel.elf", accel="whpx:tcg") # Windows

If the requested accelerator genuinely isn't usable on the host (no /dev/kvm permission, virtualization disabled in firmware, etc.) QEMU itself reports why QEMU exited, and qemu_boot surfaces that in the error it raises.

CPU model

qemu_boot defaults to QEMU's own default CPU model for the arch/machine. Pass cpu (QEMU -cpu) to test guest code against a specific model or feature set instead:

qemu_boot(name="k", kernel="build/kernel.elf", cpu="qemu64,+avx")  # base model + one extra feature

qemu_boot(name="k", kernel="build/kernel.elf", cpu="max") # every feature QEMU/TCG can emulate qemu_boot(name="k", kernel="build/kernel.elf", accel="kvm", cpu="host") # pass the host CPU through under KVM

Run qemu_cpu_models(arch="x86_64") for the full list of models/features an arch supports — it reports qemu-system- -cpu help's own output without needing a shell.

CPU topology

smp alone sets a flat vCPU count. For guest code that cares about the socket/core/thread *shape* (ACPI MADT entries, CPUID topology leaves, per-socket vs. per-core scheduling), pass smp_cores/smp_threads/ smp_sockets/smp_maxcpus too - they're combined onto the same -smp flag:

qemu_boot(name="k", kernel="build/kernel.elf",

smp=8, smp_cores=

ตัดมาแค่ช่วงต้น อ่านต่อใน repo