Install
cargo build --release누구에게 맞나
임베디드 보드 디버깅을 먼저 완전한 그래픽 디버거를 꾸미지 않고 에이전트에 맡기고 싶다면 이 서비스가 맞다. Rust로 쓴 MCP 서버이며 probe-rs 또는 OpenOCD의 GDB Remote Serial Protocol로 프로브 발견, 타깃 제어, 메모리 읽기, 중단점, 플래시, RTT, 에이전트용 크래시 진단을 할 수 있다. 작은 명령줄과 패키징 작업 흐름도 있어 MCP 클라이언트를 붙이기 전에도 쓸 수 있다. 칩 매뉴얼이 아니며 배선을 대신 납땜해 주지도 않는다.
공식 설명:
https://github.com/adancurusul/embedded-debugger-mcp
가장 중요한 전제: 하드웨어 작업을 하려면 호환 프로브, 또는 GDB 포트를 노출한 실행 중인 openocd와 쓸 수 있는 SWD/JTAG 배선이 필요하다. 공식은 ST-Link, J-Link, DAPLink, Black Magic Probe 또는 지원 FTDI 프로브를 거명하고, ESP32는 openocd-esp32를 쓸 수 있다. 프로브 없이 플래시를 시작하지 마라.
3분 만에 첫 시도
공식 권장 경로는 하나다. 저장소를 복제한 뒤 Cargo 릴리스 빌드.
전제: Rust / cargo가 설치되어 있다. 하드웨어 작업에는 위 프로브 또는 OpenOCD도 필요하다. 첫 시도는 발견만 하고 flash를 프로그래밍하지 마라.
먼저 복제:
https://github.com/adancurusul/embedded-debugger-mcp.git
설치 명령:
cargo build --release
바이너리는 target/release/embedded-debugger-mcp에 있다.
설정 위치: MCP 클라이언트 명령을 embedded-debugger-mcp serve로 둔다. 호환을 위해 하위 명령 없이 그 바이너리를 실행해도 stdio에서 MCP를 제공한다. 근거는 어떤 클라이언트가 필수인지 쓰지 않았으니 명단을 보태지 마라.
위험 낮은 첫 호출: 프로브 발견만 한다. 이 기기 프로브를 열거하는 것이며 정지도 플래시도 아니다. 타깃을 건드릴 거면 먼저 배선을 확인하라. 진단 도구 diagnose_fault와 unwind_exception은 예외 현장을 읽으며 실행 중 펌웨어에도 영향을 줄 수 있으니 첫 시도에서는 쓰지 마라.
성공 신호: 릴리스 빌드가 끝나고 클라이언트가 serve를 띄우며 발견이 프로브 목록 또는 분명한 빈 목록을 돌려준다. Cargo만 실패하면 빌드에서 멈추고 flash로 바꾸지 마라.
사용 사례
사례 1: 프로브 발견을 해서 ST-Link, J-Link 또는 다른 호환기가 보이는지 확인한다. 공식은 probe discovery를 도구 집합의 첫 항으로 둔다. 확인할 수 있는 것은 꽂은 프로브가 목록에 나타나는지다. 근거는 발견 도구의 정확한 함수 이름과 매개변수를 쓰지 않았으니 빠진 부분을 만들지 마라.
사례 2: 타깃에 이미 연결된 뒤 diagnose_fault 또는 unwind_exception으로 크래시를 본다. 공식은 이 둘을 crash diagnosis로 쓴다. 보드가 이미 예외에 멈춰 있고 에이전트가 고장 맥락을 읽어야 할 때 맞다. 메모리 접근과 RTT도 같은 도구 집합에 있지만 이 페이지는 읽기/쓰기 폭과 버퍼 형식을 펼치지 않는다. 여기까지는 진단 이름이 존재한다는 것만 확인할 수 있다. flash programming과 breakpoints는 부작용 있는 쓰기이니 첫 예로 쓰지 마라.
사용 한계
프로브가 없거나 SWD/JTAG 배선이 없으면 하드웨어 작업을 할 수 없다. OpenOCD 경로는 프로세스가 이미 돌며 GDB 포트를 내놓아야 한다. 예는 ESP32의 openocd-esp32. 플래시, 중단점, 정지는 타깃 상태를 바꾼다. 제로 위험이 아니며 하드웨어를 안 만지거나 메모리를 안 읽는 것으로 읽으면 안 된다.
공식은 Cortex-M, RISC-V, Xtensa도 언급하지만 이 페이지에 칩 목록과 취소 단계는 없다. 이 설명은 Cargo 릴리스 빌드, stdio serve, 먼저 프로브 발견 후 필요 시 진단만 다룬다. 다른 작업 흐름이 같은 페이지에 없으면 밖으로 밀지 마라.