# dbgprobe-mcp-server

Connects AI assistants to hardware debug probes over the MCP protocol. It lets agents flash target chips, inspect memory, and set breakpoints from conversation.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 10
- Author: es617
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/es617/dbgprobe-mcp-server
- Updated: 2026-03-14
- HTML: https://affpapa.org/en/nevibecode/mcp/dbgprobe-mcp-server

## What it does

The server runs via `stdio` and translates model tool calls into hardware probe operations. Currently, SEGGER J-Link units are functional. Agents obtain structured tools prefixed with `dbgprobe.` to halt cores, step instructions, erase flash, and read target RAM. Backends for OpenOCD and pyOCD are planned for later releases.

Beyond basic memory readouts, it loads ELF binaries to resolve symbol addresses and parses SVD descriptions. This lets the agent query peripheral registers by hardware name rather than raw hexadecimal offsets. It also captures target RTT streams.

Without the official SEGGER J-Link Software Pack containing `JLinkExe`, the server fails to connect. In Cursor, you must configure `DBGPROBE_MCP_TOOL_SEPARATOR=_` because the editor rejects standard dots in tool identifiers.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `DBGPROBE_BACKEND`, `DBGPROBE_MCP_LOG_LEVEL`, `DBGPROBE_JLINK_PATH`, `DBGPROBE_JLINK_GDBSERVER_PATH`, `DBGPROBE_JLINK_DEVICE`, `DBGPROBE_INTERFACE`, `DBGPROBE_SPEED_KHZ`, `DBGPROBE_MCP_PLUGINS`, `DBGPROBE_MCP_TOOL_SEPARATOR` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env DBGPROBE_BACKEND=<DBGPROBE_BACKEND> --env DBGPROBE_MCP_LOG_LEVEL=<DBGPROBE_MCP_LOG_LEVEL> --env DBGPROBE_JLINK_PATH=<DBGPROBE_JLINK_PATH> --env DBGPROBE_JLINK_GDBSERVER_PATH=<DBGPROBE_JLINK_GDBSERVER_PATH> --env DBGPROBE_JLINK_DEVICE=<DBGPROBE_JLINK_DEVICE> --transport stdio dbgprobe-mcp-server -- uvx dbgprobe-mcp-server
```
Replace <…> with your own values. 4 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from dbgprobe-mcp-server <command>

### Codex

**Platform CLI**
```bash
codex mcp add dbgprobe-mcp-server --env DBGPROBE_BACKEND=<DBGPROBE_BACKEND> --env DBGPROBE_MCP_LOG_LEVEL=<DBGPROBE_MCP_LOG_LEVEL> --env DBGPROBE_JLINK_PATH=<DBGPROBE_JLINK_PATH> --env DBGPROBE_JLINK_GDBSERVER_PATH=<DBGPROBE_JLINK_GDBSERVER_PATH> --env DBGPROBE_JLINK_DEVICE=<DBGPROBE_JLINK_DEVICE> -- uvx dbgprobe-mcp-server
```
Replace <…> with your own values. 4 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from dbgprobe-mcp-server <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "dbgprobe-mcp-server": {
            "command": "uvx",
            "args": [
                "dbgprobe-mcp-server"
            ],
            "env": {
                "DBGPROBE_BACKEND": "<DBGPROBE_BACKEND>",
                "DBGPROBE_MCP_LOG_LEVEL": "<DBGPROBE_MCP_LOG_LEVEL>",
                "DBGPROBE_JLINK_PATH": "<DBGPROBE_JLINK_PATH>",
                "DBGPROBE_JLINK_GDBSERVER_PATH": "<DBGPROBE_JLINK_GDBSERVER_PATH>",
                "DBGPROBE_JLINK_DEVICE": "<DBGPROBE_JLINK_DEVICE>"
            }
        }
    }
}
```
Replace <…> with your own values. 4 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from dbgprobe-mcp-server <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "dbgprobe-mcp-server": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "dbgprobe-mcp-server"
            ],
            "env": {
                "DBGPROBE_BACKEND": "<DBGPROBE_BACKEND>",
                "DBGPROBE_MCP_LOG_LEVEL": "<DBGPROBE_MCP_LOG_LEVEL>",
                "DBGPROBE_JLINK_PATH": "<DBGPROBE_JLINK_PATH>",
                "DBGPROBE_JLINK_GDBSERVER_PATH": "<DBGPROBE_JLINK_GDBSERVER_PATH>",
                "DBGPROBE_JLINK_DEVICE": "<DBGPROBE_JLINK_DEVICE>"
            }
        }
    }
}
```
Replace <…> with your own values. 4 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from dbgprobe-mcp-server <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e DBGPROBE_BACKEND=<DBGPROBE_BACKEND> -e DBGPROBE_MCP_LOG_LEVEL=<DBGPROBE_MCP_LOG_LEVEL> -e DBGPROBE_JLINK_PATH=<DBGPROBE_JLINK_PATH> -e DBGPROBE_JLINK_GDBSERVER_PATH=<DBGPROBE_JLINK_GDBSERVER_PATH> -e DBGPROBE_JLINK_DEVICE=<DBGPROBE_JLINK_DEVICE> dbgprobe-mcp-server uvx dbgprobe-mcp-server
```
Replace <…> with your own values. 4 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from dbgprobe-mcp-server <command>

## When to use it
- flash binary or hex images to target microcontrollers
- inspect memory offsets and peripheral registers without external terminals
- attach ELF binaries to map symbols to memory locations
- stream hardware logs using RTT channels during test runs

## Example prompts
- List attached J-Link probes and connect to the target board.
- Erase flash, upload `build/app.hex`, and reset the microcontroller.
- Load `target.svd` and read the status register of USART1.

## Similar
- [J-Link MCP](https://affpapa.org/en/nevibecode/mcp/j-link-mcp.md) — MCP server · ★ 39
- [McuBuddy](https://affpapa.org/en/nevibecode/mcp/mcubuddy.md) — MCP server · ★ 9
- [openocd-jtag](https://affpapa.org/en/nevibecode/skills/openocd-jtag.md) — skill · 536 installs
- [Agentic HIL](https://affpapa.org/en/nevibecode/mcp/agentic-hil.md) — MCP server · ★ 21
- [Chiplab](https://affpapa.org/en/nevibecode/mcp/chiplab.md) — MCP server · ★ 18
- [Serial MCP](https://affpapa.org/en/nevibecode/mcp/serial-mcp.md) — MCP server · ★ 13

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
