Context7
Up-to-date docs for AI agents
Descripción del creador (original en inglés)
Let AI agents interact with debug probes — connect, flash, read/write memory, and reset.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
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_SEPARATORNecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en 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"
}
}
}
}Ejecuta esto en tu terminal
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-serverCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.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"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"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"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
DBGPROBE_BACKEND envDBGPROBE_MCP_LOG_LEVEL envDBGPROBE_JLINK_PATH envDBGPROBE_JLINK_GDBSERVER_PATH envDBGPROBE_JLINK_DEVICE envDBGPROBE_INTERFACE envDBGPROBE_SPEED_KHZ envDBGPROBE_MCP_PLUGINS envDBGPROBE_MCP_TOOL_SEPARATOR envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub es617, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.1.4) llegó al registro hace 8 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Context7, Codebase Memory, Exa
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
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.
Video walkthrough — connecting to a J-Link probe, flashing firmware, loading ELF and SVD for symbol-aware debugging, RTT logging, and breakpoints.
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:
pip install dbgprobe-mcp-server
claude mcp add dbgprobe -- dbgprobe_mcp
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."
| Backend | Status | Probe hardware |
|---|---|---|
| J-Link | Working (v0) | SEGGER J-Link (EDU, EDU Mini, PLUS, PRO, etc.) |
| OpenOCD | Planned | ST-Link, CMSIS-DAP, and many others |
| pyOCD | Planned | CMSIS-DAP, ST-Link, J-Link (via pyOCD) |
The server is backend-agnostic — tool names (dbgprobe.*) stay the same regardless of which probe you use.
Install the SEGGER J-Link Software Pack. The server auto-detects JLinkExe on PATH or in common install locations:
/Applications/SEGGER/JLink//opt/SEGGER/JLink/, /usr/bin/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.*
| Category | Tools |
|---|---|
| Probe | dbgprobe.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 |
| Introspection | dbgprobe.connections.list |
| ELF | dbgprobe.elf.attach, dbgprobe.elf.info, dbgprobe.elf.lookup, dbgprobe.elf.symbols |
| SVD | dbgprobe.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 |
| RTT | dbgprobe.rtt.start, dbgprobe.rtt.stop, dbgprobe.rtt.read, dbgprobe.rtt.write, dbgprobe.rtt.status |
| Plugins | dbgprobe.plugin.list, dbgprobe.plugin.template, dbgprobe.plugin.load, dbgprobe.plugin.reload |
| Tracing | dbgprobe.trace.status, dbgprobe.trace.tail |
See docs/tools.md for full schemas and examples.
# Editable install from repo root
pip install -e ".[test]"
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.
# Standard setup
claude mcp add dbgprobe -- dbgprobe_mcp
claude mcp add dbgprobe \ -e DBGPROBE_JLINK_DEVICE=nRF52840_xxAA \ -- dbgprobe_mcp
claude mcp add dbgprobe -e DBGPROBE_MCP_LOG_LEVEL=DEBUG -- dbgprobe_mcp
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 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": "_" } } } }
| Variable | Default | Description |
|---|---|---|
DBGPROBE_BACKEND | jlink | Debug probe backend. Future: openocd, pyocd. |
DBGPROBE_MCP_LOG_LEVEL | WARNING | Python log level (DEBUG, INFO, WARNING, ERROR). Logs go to stderr. |
DBGPROBE_MCP_TRACE | enabled | JSONL tracing of every tool call. Set to 0, false, or no to disable. |
DBGPROBE_MCP_TRACE_PAYLOADS | disabled | Include memory data payloads in traced args (stripped by default). |
DBGPROBE_MCP_TRACE_MAX_BYTES | 16384 | Max 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_PLUGINS | disabled | Plugin policy: all or comma-separated plugin names (e.g. nrf52,stm32). |
| Variable | Default | Description |
|---|---|---|
DBGPROBE_JLINK_PATH | auto-detect | Explicit path to JLinkExe (or JLink.exe on Windows). |
DBGPROBE_JLINK_GDBSERVER_PATH | auto-detect | Explicit path to JLinkGDBServerCLExe. |
DBGPROBE_JLINK_DEVICE | *(none)* | Default target device string (e.g. nRF52840_xxAA). Can be overridden per-session. |
DBGPROBE_INTERFACE | SWD | Debug interface: SWD or JTAG. |
DBGPROBE_SPEED_KHZ | 4000 | Interface clock speed in kHz. |
DBGPROBE_GDB_TRACE | disabled | Log all GDB RSP packets to file. Set to 1, true, or yes to enable. |
DBGPROBE_GDB_TRACE_FILE | /tmp/gdb_trace.log | Path for GDB RSP trace log (only when GDB_TRACE is on). |
Attach an ELF file to a session to enable symbol-aware debugging:
breakpoint.set(symbol="main") instead of raw addressesstatus, step, and halt include symbol + symbol_offset when an ELF is attached.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.
Attach an SVD (System View Description) file to a session to enable register-level peripheral access:
svd.read("GPIO.OUT") returns the raw value and all decoded fields with enum namessvd.read("GPIO.PIN_CNF[3].PULL") returns the field value and enum name ("PullUp")svd.set_field("GPIO.PIN_CNF[3].PULL", "PullUp") does read-modify-writesvd.update_fields("GPIO.PIN_CNF[3]", {"DIR": "Output", "PULL": "PullUp"}) — one read, one writesvd.write("GPIO.OUT", 0x01) — full register, no RMWmem.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.
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.
Solo se muestra el principio; lee el resto en el repo