An assistant that can set a breakpoint, step, and read the actual locals and registers is arguing from process state rather than from the source text. Concurrent sessions let a working build stay open next to the failing one.
A GDB/MI server written in Rust and exposed over MCP. Debug sessions are first-class objects: several run concurrently, each with its own breakpoints and execution state, over stdio or SSE.
- A debug session created, inspected, listed among the others, and closed
- Debugging started and stopped, execution continued, stepped into or stepped over
- Breakpoints listed, set and deleted
- Stack frames and local variables read
- Registers read, and memory read at an address
- Concurrent multi-session debugging, over stdio or SSE
GDB on the machine, plus the mcp-server-gdb binary — a prebuilt release, a local cargo build, or nix run straight from the repository. The server address, port and GDB command timeout are configurable; SSE listens on localhost by default.
One command — nix run "git+https://github.com/pansila/mcp_server_gdb.git" -- --help
