Get the FREE Ultimate OpenClaw Setup Guide →

embedded-debugger

A Model Context Protocol server for embedded debugging with probe-rs - supports ARM Cortex-M, RISC-V debugging via J-Link, ST-Link, and more

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio adancurusul-embedded-debugger-mcp cargo run --release \
  --env RUST_LOG="info"

How to use

Embedded Debugger MCP Server is a Rust-based MCP server designed for hardware-backed embedded debugging using probe-rs. It exposes a suite of 22 debugging tools that enable you to connect to a debug probe, halt and resume targets, read/write memory, flash firmware, manage breakpoints, interact with RTT channels, and manage debugging sessions, all through the MCP protocol. The server is intended to be run from source or a prebuilt binary and is designed to work with real hardware such as STM32 and other Cortex-M or RISC-V targets via supported probes (J-Link, ST-Link, DAPLink, Black Magic Probe, etc.). Once running, you can connect your MCP clients (Claude/AI assistants, IDE integrations, or custom tooling) to the embedded-debugger server using the embedded-debugger MCP server name and the configured command path. You can leverage RTT bidirectional communication for real-time data streaming and interactive control, and use the 22 tools to perform debugging tasks in a coordinated fashion through the MCP interface.

How to install

Prerequisites:

  • Rust toolchain (Rust 1.70+ is recommended by the project) and Cargo
  • A supported debug probe (J-Link, ST-Link, DAPLink, Black Magic Probe, etc.) and a target board (e.g., STM32 or compatible ARM Cortex-M/RISC-V MCU)
  • Access to a host machine with USB connectivity to probes and target

Installation steps:

  1. Clone the repository git clone https://github.com/adancurusul/embedded-debugger-mcp.git cd embedded-debugger-mcp

  2. Install/build the MCP server (from source) cargo build --release

  3. Run the server (in release mode) cargo run --release

  4. Connect MCP clients to the server using the embedded-debugger server configuration. For Claude/Desktop tooling, specify the command path to the running binary and optional environment variables (e.g., RUST_LOG) as described in the client’s MCP configuration.

Optional: If you prefer to run a prebuilt binary, ensure you have a compatible target for your environment and run the binary directly, e.g.: ./target/release/embedded-debugger-mcp

Note: The README provides example client configurations for Claude Desktop and mentions hardware prerequisites and a STM32 RTT demo to validate the workflow.

Additional notes

Tips and tips:

  • Ensure your debug probe firmware and drivers are up to date for compatibility with probe-rs.
  • Use RUST_LOG=info (or debug) to get verbose runtime information for troubleshooting when connecting MCP clients.
  • The server supports multiple probes and can manage sessions for different targets; ensure you select the correct probe and target device in your client configuration.
  • If you encounter issues connecting to a probe, verify USB permissions (on Linux), probe firmware, and that the target device is powered and properly connected.
  • For the STM32 RTT demo, follow the examples/STM32_demo directory in the repository to reproduce the complete flow, build the firmware, and connect via the MCP server for interactive RTT communication.
  • The MCP server name in clients should match embedded-debugger to ensure proper routing of commands.

Related MCP Servers

Sponsor this space

Reach thousands of developers