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
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:
-
Clone the repository git clone https://github.com/adancurusul/embedded-debugger-mcp.git cd embedded-debugger-mcp
-
Install/build the MCP server (from source) cargo build --release
-
Run the server (in release mode) cargo run --release
-
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
goose
an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM
cunzhi
告别AI提前终止烦恼,助力AI更加持久
probe
AI-friendly semantic code search engine for large codebases. Combines ripgrep speed with tree-sitter AST parsing. Powers AI coding assistants with precise, context-aware code understanding.
mcp-center
A centralized platform for managing and connecting MCP servers. MCP Center provides a high-performance proxy service that enables seamless communication between MCP clients and multiple MCP servers.
backlog -rust
MCP server for Backlog, project management service.
perplexity-web-api
🔍 Perplexity AI MCP without API key