Install
cargo build --releasePara quién
Si quieres dejar la depuración de una placa embebida a un agente en vez de configurar primero un depurador gráfico completo, este servicio encaja. Es un servidor MCP en Rust que puede hacer descubrimiento de sondas, control de destino, lectura de memoria, puntos de interrupción, grabado, RTT y diagnóstico de fallos orientado a agentes, vía probe-rs o el GDB Remote Serial Protocol de OpenOCD. También trae una pequeña línea de comandos y un flujo de empaquetado que puedes usar antes de enganchar un cliente MCP. No es un manual de chip y no suelda cables.
Notas oficiales:
https://github.com/adancurusul/embedded-debugger-mcp
El requisito más importante: el trabajo de hardware necesita una sonda compatible, o un openocd ya en marcha que exponga un puerto GDB, más un cableado SWD/JTAG usable. El texto oficial nombra ST-Link, J-Link, DAPLink, Black Magic Probe o una sonda FTDI admitida; ESP32 puede usar openocd-esp32. Sin sonda, no empieces a grabar.
Primer intento en 3 minutos
Solo el camino oficial: clonar el repositorio y luego un build Cargo de release.
Requisitos: Rust / cargo instalados. El trabajo de hardware también necesita la sonda u OpenOCD de arriba. El primer intento es solo descubrimiento: no programes flash.
Clona primero:
https://github.com/adancurusul/embedded-debugger-mcp.git
Comando de instalación:
cargo build --release
El binario está en target/release/embedded-debugger-mcp.
Dónde configurar: el cliente MCP pone el comando en embedded-debugger-mcp serve. Por compatibilidad, ejecutar el binario sin subcomando también sirve MCP en stdio. La evidencia no dice qué cliente es obligatorio; no añadas una nómina.
Primera llamada de bajo riesgo: solo descubrimiento de sondas. Enumera sondas locales; no es un halt ni un grabado. Si vas a tocar el destino, confirma primero el cableado. Las herramientas diagnose_fault y unwind_exception leen el sitio de excepción y aún pueden afectar firmware en ejecución; no las uses en el primer intento.
Señal de éxito: el build de release termina, el cliente puede levantar serve y el descubrimiento devuelve un inventario de sondas o un conjunto claramente vacío. Si solo falla Cargo, párate en el build; no pases a flash.
Casos de uso
Caso 1: hacer descubrimiento de sondas y confirmar si se ve un ST-Link, J-Link u otro compatible. El texto oficial pone probe discovery primero en el juego de herramientas. Puedes comprobar si el inventario muestra la sonda que enchufaste. La evidencia no escribe el nombre exacto de función ni los parámetros; no inventes lo que falta.
Caso 2: con el destino ya conectado, usar diagnose_fault o unwind_exception para un fallo. El texto oficial lo escribe como crash diagnosis. Encaja cuando la placa ya está parada en una excepción y necesitas que el agente lea el contexto de fallo. Acceso a memoria y RTT están en el mismo juego, pero esta página no desarrolla anchos de lectura/escritura ni formatos de búfer. Hasta aquí solo confirmas que existen los nombres de diagnóstico. flash programming y breakpoints son escrituras con efectos secundarios; no las uses como primer ejemplo.
Límites de uso
Sin sonda o sin cableado SWD/JTAG, el trabajo de hardware no se puede hacer. La vía OpenOCD necesita un proceso ya en marcha que exponga un puerto GDB, por ejemplo ESP32 con openocd-esp32. Grabar, puntos de interrupción y halt cambian el estado del destino. No es riesgo cero, ni «sin tocar hardware», ni «sin leer memoria».
El texto oficial también menciona Cortex-M, RISC-V y Xtensa, pero esta página no tiene inventario de chips ni pasos de deshacer. Esta guía solo cubre el build Cargo de release, stdio serve, descubrir primero y diagnosticar si hace falta. Si otro flujo no está escrito en la misma página, no extrapoles.