Acpi MCP logo

Acpi MCP

Reads ACPI tables from QEMU guests or table files and explains hardware setup for x86 OS development.

Install Acpi MCP

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "acpi-mcp": {
      "command": "uvx",
      "args": [
        "acpi-mcp"
      ]
    }
  }
}

Settings β†’ Developer β†’ Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-testedβ€” we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

acpi-mcp MCP server reads ACPI tables from a live QEMU guest through its gdbstub or from a directory of table files. It lists, decodes, dumps, and explains tables such as MADT, FADT, HPET, MCFG, DSDT, and SSDT, including interrupt routing and power-control details. Use it when developing an x86 operating system and you need firmware-specific information about CPUs, APICs, timers, PCI configuration, shutdown, or reset. AML disassembly is available through iasl when that utility is installed.

Use cases

  • Inspect ACPI tables from a live QEMU guest
  • Map legacy IRQs to I/O APIC pins
  • Find PCIe configuration-space addresses
  • Determine shutdown and reset procedures
  • Decode AML and inspect declared devices

Key features

  • Reads live QEMU physical memory through the gdbstub
  • Loads ACPI tables from directories
  • Decodes common ACPI tables
  • Explains OS-hardware questions
  • Maps ISA IRQ routing
  • Dumps and optionally disassembles AML

Tools8

What Acpi MCP lets your agent do. Expand a tool for its parameters.

Self-reported~182 tokens of context

Security & health

What it can reach and how reliably it runs β€” from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

5/5 checks healthy over the last 15d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 15d ago via OSV.dev Β· acpi-mcp (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks β€” not a rating.

Last commit18d agoMost recent push to the default branch.
Tools exposed8Callable tools this server registers over MCP.

How Acpi MCP works

What acpi-mcp MCP server does

The acpi-mcp MCP server exposes ACPI inspection tools for x86 operating-system development. It can read firmware tables from a live QEMU guest or from a directory containing table files, such as Linux's /sys/firmware/acpi/tables or files produced by acpidump -b.

The server helps translate binary ACPI data into implementation details. Its responses can identify CPU and APIC information, the I/O APIC location, ISA interrupt overrides, HPET and PCI Express configuration-space addresses, PM timer details, SCI settings, and the port writes used for power-off or reset.

How it works

For a live VM, acpi-mcp connects to QEMU's gdbstub and requests physical-memory access so ACPI physical pointers remain usable when the guest has enabled paging. It searches firmware memory for a valid, checksummed RSDP, then follows the RSDT or XSDT to locate related tables, including the FADT, DSDT, and FACS.

If the guest is paused before firmware has created the tables, the server runs it in short intervals and stops when it finds a complete valid set. By default, it lets the guest continue after detaching; resume=False leaves the guest paused. QEMU permits only one debugger connection at a time.

For file-based input, the server reads a named table set from the directory supplied to acpi_load.

Tools and capabilities

Available MCP tools include:

  • acpi_load to load a live-QEMU or directory-based table set.
  • acpi_sets to show loaded sets.
  • acpi_tables to list table addresses, sizes, checksums, OEM data, and purposes.
  • acpi_table to decode supported tables, including MADT, FADT, HPET, MCFG, DSDT, SSDT, FACS, RSDT, XSDT, WAET, and RSDP.
  • acpi_interrupt_routing to map ISA IRQs 0–15 to GSIs and I/O APIC pins, including polarity and trigger mode.
  • acpi_find to answer questions about shutdown, reset, CPUs, IRQs, HPET, PCI configuration, PM timers, keyboard, serial, RTC century, and SCI behavior.
  • acpi_dump to produce raw table hexdumps.
  • acpi_disassemble to invoke iasl -d for AML-to-ASL conversion when iasl is installed.

Setup and configuration

Install the package with pip install acpi-mcp. Register the executable as an MCP server, for example with claude mcp add acpi -- acpi-mcp.

For live access, start QEMU with its gdbstub, using -s; -S is also supported because the server can allow firmware to run before reading the tables. For file input, call acpi_load with a directory path. Reading a host Linux table directory generally requires root access.

Limitations and notes

The AML reader structurally walks scopes, devices, and names but does not execute methods. Runtime-computed behavior, such as a method-controlled _STA, is not evaluated; use acpi_disassemble for an exact AML listing when iasl is available.

Live RSDP discovery currently searches BIOS-area locations. UEFI guests using OVMF may therefore require tables captured with acpidump -b and loaded from files. The implementation supports x86 ACPI; ARM-specific structures such as GICC, GICD, and GTDT are not covered.

Reviews

No reviews yet β€” be the first to share how it worked for you.

Frequently Asked Questions about Acpi MCP

acpi-mcp is an MCP server that connects to live QEMU guests through the gdbstub or reads ACPI table files from a directory. Its main tools load and list tables, decode structures such as MADT and FADT, map interrupt routing, answer OS-development questions, dump raw bytes, and optionally disassemble AML with iasl.

Install it with `pip install acpi-mcp`, then register the executable with an MCP client such as `claude mcp add acpi -- acpi-mcp`. For live QEMU inspection, start QEMU with its gdbstub enabled using `-s`.

Yes, acpi-mcp reads a live QEMU guest through its gdbstub. It searches physical memory for the RSDP and follows the ACPI table references; use `boot_wait_s` when firmware needs time to run, and set `resume=False` to keep the guest paused afterward.

Use file-based input for OVMF guests because live RSDP discovery currently searches BIOS-area locations. Capture the tables with `acpidump -b`, then load the resulting directory with `acpi_load`.

Yes, it uses a standard stdio MCP server interface and can be configured in Cursor as an MCP server. The provided setup documentation specifically shows installation through the `claude mcp` command, not Cursor-specific configuration.

Related MCP servers

Add a badge to your READMEShow it’s listed β€” live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewAcpi MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/acpi-mcp?style=directory)](https://allmcps.com/mcp/acpi-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/acpi-mcp"><img src="https://allmcps.com/api/badge/acpi-mcp?style=directory" alt="Acpi MCP on AllMCPs" /></a>