Embedded Debugger MCP: agents on a debug probe
A Rust MCP server that drives ST-Link, J-Link and other probes via probe-rs or OpenOCD: halt and step, memory, breakpoints, flashing, RTT and crash unwinding.
Project and installation docs
View projecthttps://github.com/Adancurusul/embedded-debugger-mcp
When firmware lands in a HardFault, the routine is to open the IDE, halt the core, decode CFSR by hand and hunt addresses in a map file. Embedded Debugger MCP lets an agent do that through the debug probe itself: halt the core, read registers and memory, map the crash backtrace to source lines, and hand the evidence to the model. It’s written in Rust on the official MCP Rust SDK and had about 200 stars as of 2026-10-06.
What it does
- Probes and target control:
list_probesfinds attached probes,connectopens a session on a chip, andhalt,run,stepandresetcontrol the core. - Memory and breakpoints:
read_memory,write_memory, and hardware breakpoints withset_breakpointandclear_breakpoint. - Flashing:
flash_programtakes ELF, HEX or BIN, andrun_firmwareerases, programs, resets and attaches RTT in one step. - RTT: read and write SEGGER RTT channels for firmware logs or commands.
- Crash diagnosis:
diagnose_faultreads Cortex-M fault registers (CFSR, HFSR, MMFAR, BFAR and more) plus PC, SP and LR in one call;unwind_exceptionreturns a DWARF backtrace with file and line per frame.
Who it’s for
- Firmware engineers on STM32, nRF and other Cortex-M parts who want Claude Code to flash, read logs and investigate crashes after each change.
- RISC-V and ESP32 developers, who can connect through the OpenOCD backend.
Setup
Needs a stable Rust toolchain and a probe-rs compatible probe (ST-Link, J-Link, DAPLink and others). Build from source:
git clone https://github.com/adancurusul/embedded-debugger-mcp.git
cd embedded-debugger-mcp
cargo build --release
Then point your client at the binary:
{
"mcpServers": {
"embedded-debugger": {
"command": "/path/to/embedded-debugger-mcp/target/release/embedded-debugger-mcp",
"args": ["serve"],
"env": { "RUST_LOG": "info" }
}
}
}
Our take
Embedded MCP servers are scarce, and this one is solid: every tool maps to a real probe operation, crash diagnosis reports evidence rather than asserting a root cause, and a doctor command checks the setup before any client is involved. It changes hardware state directly, but the defaults are cautious: flash erase and memory writes stay off until you enable them in the config, and firmware paths can be limited to an allowlist. The OpenOCD backend is experimental, PC and SP read wrong on Xtensa chips like the ESP32, and fault diagnosis is Cortex-M only. The releases page has no prebuilt binaries yet, so you compile it yourself. MIT licensed.