
Embedded Debugger MCP Server
Debug embedded systems (ARM Cortex-M, RISC-V) from AI assistants via probe-rs.
Add to your client
Copy the config for your MCP client and paste it into its config file.
git clone https://github.com/adancurusul/embedded-debugger-mcp.git && cd embedded-debugger-mcp && cargo build --releasePaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"embedded-debugger-mcp-server": {
"command": "/path/to/debugger-mcp-rs/target/release/embedded-debugger-mcp",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- Rust 1.70+ to build from source
- A probe-rs compatible debug probe (ST-Link V2/V3, J-Link, or DAPLink) with drivers installed
- A supported target board (e.g. STM32 microcontroller)
- USB connection to the probe and target board
About Embedded Debugger MCP Server
An MCP server that bridges AI assistants to embedded debug hardware through probe-rs. It provides 22 tools for probe discovery and connection, memory operations, debug control, breakpoints, flash programming, RTT communication, and session management. Supports ARM Cortex-M (M0/M0+/M3/M4/M7/M23/M33), RISC-V cores, and basic ARM Cortex-A, across J-Link, ST-Link, DAPLink, Black Magic Probe, and FTDI probes. Tested end-to-end with an STM32G431CBTx board and ST-Link V2.
Tools & capabilities (22)
list_probesDiscover available debug probes on the system.
connectConnect to a probe and target chip.
probe_infoGet detailed session information.
read_memoryRead flash/RAM with multiple data formats.
write_memoryWrite to target memory.
haltStop target execution.
runResume target execution.
resetPerform a hardware or software reset.
stepSingle instruction stepping.
set_breakpointSet hardware or software breakpoints.
clear_breakpointRemove breakpoints.
flash_eraseErase flash memory sectors or the whole chip.
flash_programProgram ELF/HEX/BIN files to flash.
flash_verifyVerify flash contents.
rtt_attachConnect to RTT communication.
rtt_detachDisconnect RTT.
rtt_channelsList available RTT channels.
rtt_readRead from RTT up channels.
rtt_writeWrite to RTT down channels.
run_firmwareComplete deployment plus RTT communication.
get_statusGet the current debug status.
disconnectCleanly terminate the session.
When to use it
- Flashing firmware to an STM32 or other microcontroller and verifying the program from an AI assistant.
- Inspecting and modifying target memory (flash/RAM) during debugging.
- Controlling execution with halt/run/reset/step and managing breakpoints interactively.
- Interactive bidirectional RTT communication — streaming live data and sending control commands to firmware.
- Systematically testing debug workflows across probe management, memory, breakpoints, flash, and RTT.
Security notes
Runs as a local stdio process and controls real debug hardware (flash erase/program, memory write, target reset). Only connect it to probes and target boards you intend to expose to the AI assistant.
Embedded Debugger MCP Server FAQ
Which debug probes are supported?
J-Link (all variants), ST-Link V2/V3, ARM DAPLink-compatible probes, Black Magic Probe, and FTDI-based debug probes.
Which target architectures work?
ARM Cortex-M (M0, M0+, M3, M4, M7, M23, M33) and various RISC-V cores, with basic support for ARM Cortex-A.
Is there a prebuilt package?
No. The README documents building from source with cargo build --release; there is no npm or other registry package listed.
How does it connect to an MCP client?
Over stdio. You point the client (e.g. Claude Desktop) at the compiled embedded-debugger-mcp binary via a command entry in the mcpServers config.
Alternatives to Embedded Debugger MCP Server
Compare all alternatives →Microsoft's official browser-automation MCP using Playwright's accessibility tree (no vision model).
Up-to-date, version-specific library documentation injected into your coding agent.
LSP-powered coding agent toolkit: semantic symbol search, references and structural edits.
Compare Embedded Debugger MCP Server with: