프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Dbgprobe MCP Server

제작자: es617버전 0.1.4i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.es617/dbgprobe-mcp-server

설치

개요

제작자가 쓴 설명(영어 원문)

Let AI agents interact with debug probes — connect, flash, read/write memory, and reset.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 검색 및 AI 기억

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: 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

필요한 것

  • PyPIPython의 uv 설치(uvx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "dbgprobe": {
      "command": "uvx",
      "args": [
        "dbgprobe-mcp-server"
      ],
      "env": {
        "DBGPROBE_BACKEND": "your-value",
        "DBGPROBE_MCP_LOG_LEVEL": "your-value",
        "DBGPROBE_JLINK_PATH": "your-value",
        "DBGPROBE_JLINK_GDBSERVER_PATH": "your-value",
        "DBGPROBE_JLINK_DEVICE": "your-value",
        "DBGPROBE_INTERFACE": "your-value",
        "DBGPROBE_SPEED_KHZ": "your-value",
        "DBGPROBE_MCP_PLUGINS": "your-value",
        "DBGPROBE_MCP_TOOL_SEPARATOR": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add dbgprobe --env DBGPROBE_BACKEND=your-value --env DBGPROBE_MCP_LOG_LEVEL=your-value --env DBGPROBE_JLINK_PATH=your-value --env DBGPROBE_JLINK_GDBSERVER_PATH=your-value --env DBGPROBE_JLINK_DEVICE=your-value --env DBGPROBE_INTERFACE=your-value --env DBGPROBE_SPEED_KHZ=your-value --env DBGPROBE_MCP_PLUGINS=your-value --env DBGPROBE_MCP_TOOL_SEPARATOR=your-value -- uvx dbgprobe-mcp-server

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "dbgprobe": {
      "command": "uvx",
      "args": [
        "dbgprobe-mcp-server"
      ],
      "env": {
        "DBGPROBE_BACKEND": "your-value",
        "DBGPROBE_MCP_LOG_LEVEL": "your-value",
        "DBGPROBE_JLINK_PATH": "your-value",
        "DBGPROBE_JLINK_GDBSERVER_PATH": "your-value",
        "DBGPROBE_JLINK_DEVICE": "your-value",
        "DBGPROBE_INTERFACE": "your-value",
        "DBGPROBE_SPEED_KHZ": "your-value",
        "DBGPROBE_MCP_PLUGINS": "your-value",
        "DBGPROBE_MCP_TOOL_SEPARATOR": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "dbgprobe": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "dbgprobe-mcp-server"
      ],
      "env": {
        "DBGPROBE_BACKEND": "your-value",
        "DBGPROBE_MCP_LOG_LEVEL": "your-value",
        "DBGPROBE_JLINK_PATH": "your-value",
        "DBGPROBE_JLINK_GDBSERVER_PATH": "your-value",
        "DBGPROBE_JLINK_DEVICE": "your-value",
        "DBGPROBE_INTERFACE": "your-value",
        "DBGPROBE_SPEED_KHZ": "your-value",
        "DBGPROBE_MCP_PLUGINS": "your-value",
        "DBGPROBE_MCP_TOOL_SEPARATOR": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • DBGPROBE_BACKEND env
    Debug probe backend to use (default: jlink). Future: openocd, pyocd.
  • DBGPROBE_MCP_LOG_LEVEL env
    Log level: DEBUG, INFO, WARNING (default), ERROR.
  • DBGPROBE_JLINK_PATH env
    Explicit path to JLinkExe (or JLink.exe on Windows). Auto-detected if not set.
  • DBGPROBE_JLINK_GDBSERVER_PATH env
    Explicit path to JLinkGDBServerCLExe. Auto-detected if not set.
  • DBGPROBE_JLINK_DEVICE env
    Default target device string (e.g. nRF52840_xxAA). Can be overridden per-session.
  • DBGPROBE_INTERFACE env
    Debug interface: SWD (default) or JTAG.
  • DBGPROBE_SPEED_KHZ env
    Interface speed in kHz (default: 4000).
  • DBGPROBE_MCP_PLUGINS env
    Plugin policy: 'all' or comma-separated plugin names. Unset = disabled.
  • DBGPROBE_MCP_TOOL_SEPARATOR env
    Tool name separator character (default '.'). Set to '_' for clients that reject dots (e.g. Cursor).

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 es617 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

검색 및 AI 기억 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 7250개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 7250개 중 5%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 7250개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Dbgprobe MCP Server, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.4)은 8개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Context7, Codebase Memory, Exa

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Context7

제작자: upstash

Up-to-date docs for AI agents

컴퓨터 또는 클라우드★ 64,224MIT오늘 업데이트
설치

Codebase Memory

제작자: DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

내 컴퓨터에서 실행★ 48,148MIT20일 전 업데이트
설치

Exa

제작자: exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

클라우드에서 실행★ 5,213MIT지난달 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

Debug Probe MCP Server

A stateful debug probe Model Context Protocol (MCP) server for developer tooling and AI agents. Works out of the box with Claude Code, VS Code with Copilot, and any MCP-compatible runtime. Communicates over stdio and drives on-chip debug probes (J-Link first, OpenOCD and pyOCD planned) to flash, debug, and inspect embedded targets.

Example: Let Claude Code list attached J-Link probes, connect to your nRF52840, flash a new firmware, read memory, and reset the target — all conversationally.

Demo

Video walkthrough — connecting to a J-Link probe, flashing firmware, loading ELF and SVD for symbol-aware debugging, RTT logging, and breakpoints.


Why this exists

If you've ever typed J-Link Commander commands by hand, copy-pasted memory addresses between a datasheet and a terminal, re-flashed the same firmware 20 times during a debug session, and juggled multiple tool windows — this is for you.

You have a microcontroller on a debug probe. You want an AI agent to interact with it — connect, flash firmware, read/write memory, reset, halt, resume. This server makes that possible.

It gives any MCP-compatible agent a full set of debug probe tools. The agent calls these tools, gets structured JSON back, and reasons about what to do next — without you manually driving JLinkExe for every operation.

What agents can do with it:

  • Flash and iterate — build firmware, flash it, reset, check behavior — all in one conversation
  • Inspect memory — read peripheral registers, check RAM contents, verify flash writes
  • Debug interactively — halt, step, set breakpoints, inspect state, resume
  • Automate test flows — flash → reset → read output → validate
  • Multi-probe setups — connect to multiple probes simultaneously, each with its own session

Who is this for?

  • Embedded engineers — faster iteration: flash, debug, inspect memory conversationally
  • Hobbyists and makers — interact with microcontrollers without learning JLinkExe command syntax
  • QA and test engineers — automated flash-and-test sequences across multiple boards
  • Researchers — systematic exploration of embedded systems, register inspection

Quickstart (Claude Code)

pip install dbgprobe-mcp-server

Register the MCP server with Claude Code

claude mcp add dbgprobe -- dbgprobe_mcp

Or with explicit J-Link path

claude mcp add dbgprobe \ -e DBGPROBE_JLINK_PATH=/Applications/SEGGER/JLink/JLinkExe \ -- dbgprobe_mcp

Then in Claude Code, try:

"List attached debug probes, connect to the J-Link, and read 16 bytes from address 0x20000000."


Supported backends

BackendStatusProbe hardware
J-LinkWorking (v0)SEGGER J-Link (EDU, EDU Mini, PLUS, PRO, etc.)
OpenOCDPlannedST-Link, CMSIS-DAP, and many others
pyOCDPlannedCMSIS-DAP, ST-Link, J-Link (via pyOCD)

The server is backend-agnostic — tool names (dbgprobe.*) stay the same regardless of which probe you use.

J-Link requirements

Install the SEGGER J-Link Software Pack. The server auto-detects JLinkExe on PATH or in common install locations:

  • macOS: /Applications/SEGGER/JLink/
  • Linux: /opt/SEGGER/JLink/, /usr/bin/
  • Windows: C:\Program Files\SEGGER\JLink\

Or set DBGPROBE_JLINK_PATH to point to the executable directly.

*This project is not affiliated with or sponsored by SEGGER. J-Link is used because it's widely available and well-supported.*


Tools

CategoryTools
Probedbgprobe.probes.list, dbgprobe.connect, dbgprobe.erase, dbgprobe.disconnect, dbgprobe.reset, dbgprobe.halt, dbgprobe.go, dbgprobe.step, dbgprobe.status, dbgprobe.flash, dbgprobe.mem.read, dbgprobe.mem.write, dbgprobe.breakpoint.set, dbgprobe.breakpoint.clear, dbgprobe.breakpoint.list
Introspectiondbgprobe.connections.list
ELFdbgprobe.elf.attach, dbgprobe.elf.info, dbgprobe.elf.lookup, dbgprobe.elf.symbols
SVDdbgprobe.svd.attach, dbgprobe.svd.info, dbgprobe.svd.read, dbgprobe.svd.write, dbgprobe.svd.set_field, dbgprobe.svd.update_fields, dbgprobe.svd.list_peripherals, dbgprobe.svd.list_registers, dbgprobe.svd.list_fields, dbgprobe.svd.describe
RTTdbgprobe.rtt.start, dbgprobe.rtt.stop, dbgprobe.rtt.read, dbgprobe.rtt.write, dbgprobe.rtt.status
Pluginsdbgprobe.plugin.list, dbgprobe.plugin.template, dbgprobe.plugin.load, dbgprobe.plugin.reload
Tracingdbgprobe.trace.status, dbgprobe.trace.tail

See docs/tools.md for full schemas and examples.


Install (development)

# Editable install from repo root

pip install -e ".[test]"

Or with uv

uv pip install -e ".[test]"

MCP is a protocol — this server works with any MCP-compatible client. Below are setup instructions for the most common ones.

Add to Claude Code

# Standard setup

claude mcp add dbgprobe -- dbgprobe_mcp

With default target device

claude mcp add dbgprobe \ -e DBGPROBE_JLINK_DEVICE=nRF52840_xxAA \ -- dbgprobe_mcp

Debug logging

claude mcp add dbgprobe -e DBGPROBE_MCP_LOG_LEVEL=DEBUG -- dbgprobe_mcp

Add to VS Code / Copilot

Add to your project's .vscode/mcp.json (or create it):

{

"servers": { "dbgprobe": { "type": "stdio", "command": "dbgprobe_mcp", "args": [], "env": { "DBGPROBE_JLINK_DEVICE": "nRF52840_xxAA" } } } }

Adjust env to match your target — set DBGPROBE_JLINK_DEVICE to your chip, or remove it to specify the device at connect time.

Add to Cursor

Add to your project's .cursor/mcp.json (or create it). Cursor does not support dots in tool names, so DBGPROBE_MCP_TOOL_SEPARATOR must be set to _:

{

"mcpServers": { "dbgprobe": { "command": "dbgprobe_mcp", "args": [], "env": { "DBGPROBE_JLINK_DEVICE": "nRF52840_xxAA", "DBGPROBE_MCP_TOOL_SEPARATOR": "_" } } } }

Environment variables

Server
VariableDefaultDescription
DBGPROBE_BACKENDjlinkDebug probe backend. Future: openocd, pyocd.
DBGPROBE_MCP_LOG_LEVELWARNINGPython log level (DEBUG, INFO, WARNING, ERROR). Logs go to stderr.
DBGPROBE_MCP_TRACEenabledJSONL tracing of every tool call. Set to 0, false, or no to disable.
DBGPROBE_MCP_TRACE_PAYLOADSdisabledInclude memory data payloads in traced args (stripped by default).
DBGPROBE_MCP_TRACE_MAX_BYTES16384Max payload chars before truncation (only when TRACE_PAYLOADS is on).
DBGPROBE_MCP_TOOL_SEPARATOR.Character used to separate tool name segments. Set to _ for MCP clients that reject dots in tool names (e.g. Cursor).
DBGPROBE_MCP_PLUGINSdisabledPlugin policy: all or comma-separated plugin names (e.g. nrf52,stm32).
J-Link backend
VariableDefaultDescription
DBGPROBE_JLINK_PATHauto-detectExplicit path to JLinkExe (or JLink.exe on Windows).
DBGPROBE_JLINK_GDBSERVER_PATHauto-detectExplicit path to JLinkGDBServerCLExe.
DBGPROBE_JLINK_DEVICE*(none)*Default target device string (e.g. nRF52840_xxAA). Can be overridden per-session.
DBGPROBE_INTERFACESWDDebug interface: SWD or JTAG.
DBGPROBE_SPEED_KHZ4000Interface clock speed in kHz.
DBGPROBE_GDB_TRACEdisabledLog all GDB RSP packets to file. Set to 1, true, or yes to enable.
DBGPROBE_GDB_TRACE_FILE/tmp/gdb_trace.logPath for GDB RSP trace log (only when GDB_TRACE is on).

ELF Support

Attach an ELF file to a session to enable symbol-aware debugging:

  • Symbol lookup — resolve function names to addresses and vice versa
  • Breakpoints by name — breakpoint.set(symbol="main") instead of raw addresses
  • Auto-enriched responses — status, step, and halt include symbol + symbol_offset when an ELF is attached
  • Flash integration — flashing an .elf auto-attaches it; flashing .hex/.bin auto-reloads a previously attached ELF; sibling .elf files are suggested via hints
> "Attach the ELF, set a breakpoint on main, run, and show me where it halted."

The agent calls elf.attach, breakpoint.set(symbol="main"), go, then status — and gets back "halted at main+0" instead of a raw hex address.


SVD Support

Attach an SVD (System View Description) file to a session to enable register-level peripheral access:

  • Named register reads — svd.read("GPIO.OUT") returns the raw value and all decoded fields with enum names
  • Field-level reads — svd.read("GPIO.PIN_CNF[3].PULL") returns the field value and enum name ("PullUp")
  • Safe field writes — svd.set_field("GPIO.PIN_CNF[3].PULL", "PullUp") does read-modify-write
  • Batch field updates — svd.update_fields("GPIO.PIN_CNF[3]", {"DIR": "Output", "PULL": "PullUp"}) — one read, one write
  • Raw register writes — svd.write("GPIO.OUT", 0x01) — full register, no RMW
  • Discovery — list peripherals, registers, fields; describe with enums
  • Auto-decode on mem.read — when an SVD is attached and mem.read hits a known register address, the response includes decoded fields
> "Attach the SVD, read GPIO.PIN_CNF[3], and set PULL to PullUp."

The agent calls svd.attach, svd.read("GPIO.PIN_CNF[3]"), then svd.set_field("GPIO.PIN_CNF[3].PULL", "PullUp") — and gets back decoded field values instead of raw hex.


RTT (Real-Time Transfer)

Start, stop, read, and write to SEGGER RTT channels. The agent can stream target log output and send data to the device — useful for debugging firmware that prints over RTT instead of UART.

> "Start RTT and show me the output."

For repetitive flows — read device ID, run a self-test sequence, validate calibration — you can package them as plugins: Python modules that expose custom tools the agent can call directly.

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기