STM32 GDB Debugger MCP server
io.github.Zeraissh/stm32-gdb-mcp·v0.15.1·2 starsDebug STM32 firmware on real hardware via GDB + OpenOCD/ST-Link/J-Link with decoded results.
2 stars42 downloads/wk
Reviews
Write oneNobody has reviewed STM32 GDB Debugger yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
STM32 GDB Debugger tools (100, 16 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
acceptance_loop_statusRead the acceptance loop's trajectory (per-iteration pass/fail counts, status)
address_ofResolves the address of a symbol (&symbol).
analyze_stackReports stack used/free bytes and a clear overflow verdict for the halted
assert_expressionsReads GDB expressions and evaluates assertions with operators ==, !=, >, >=, <, <=.
batchwrite actionRuns several tool calls in ONE round trip and returns ALL their full
build_firmwareBuilds firmware with Keil uVision (UV4), CMake, make, or a custom command,
callInvoke ANY stm32-gdb-mcp tool by name — including one that is NOT in your
call_readLike call, but restricted to tools that only READ state — so it needs no
capture_coredumpwrite actionWrites a core dump (RAM + registers) of the halted target to a file for
capture_debug_snapshotCaptures a structured debug snapshot: core registers, fault registers, call stack, PC disassembly, GDB events, server logs, and optional project/RTOS context.
capture_expressionsReads GDB expressions and returns parsed values. Optionally builds an indexed table from
capture_rtos_snapshotCaptures FreeRTOS detection, current task, ready tasks, and task-list snapshot.
capture_stateOne-call 'where am I': decoded core registers + a PC/LR/SP summary, the
clear_logsClears the buffered log lines for a channel (rtt/swo/uart) without stopping capture.
clear_session_journalClears the session journal (keeps the run-id).
compare_expressions_after_actionCaptures expressions, performs one debug action, captures them again, and reports changes.
configure_debug_freezeFreezes peripherals (IWDG, WWDG, RTC, timers) while the core is halted via
continue_executionResumes execution of the target device until the next breakpoint.
debug_untilOne-call repro step: set an optional conditional/temporary breakpoint at
decode_peripheral_registerReads and decodes a peripheral register with SVD bitfield names and enumerated values.
delete_breakpointwrite actionDeletes a breakpoint by its ID.
describe_acceptanceRead the loaded AcceptanceSpec or the last verdict. what=summary (name +
describe_boardRead the BoardDescription imported by import_netlist. what=summary (MCU +
describe_frameworkRead the synthesized FrameworkPlan. what=summary (mcu + clocks + peripherals),
design_frameworkSynthesize a deterministic FrameworkPlan (Pillar D) from the session's imported
detect_rtosDetects whether FreeRTOS symbols are available in the current GDB session.
diagnose_faultReads and decodes Cortex-M fault registers into likely fault causes.
disassembleDisassembles N instructions at a location (default $pc).
export_debug_reportwrite actionWrites a single self-contained JSON report (journal + metrics + profile,
flash_and_runwrite actionOne-call bring-up: flash an ELF (loads symbols), reset-halt, set a
flash_eraseErases a flash range on the target (OpenOCD 'flash erase_address pad'),
flash_firmwareFlashes a compiled firmware binary to the target. Accepts GCC .elf or Keil
get_debug_profileReturns the stored board/session defaults.
get_logsReturns captured log lines for a channel (rtt/swo/uart).
get_sessionReturns this session's record by view: 'journal' (every tool call with
get_timeoutsReturns the current named GDB operation timeouts (connect, reset, memory,
get_write_audit_logwrite actionReturns the append-only audit log of every memory-write decision
halt_executionInterrupts/halts the target device execution.
import_netlistParse a schematic netlist (KiCad .net today) into a machine-readable
import_specTranslate a controlled-vocabulary product spec (human/product terms) into the
inspect_projectDiscovers firmware project artifacts such as ELF, map, linker script, SVD, and STM32CubeMX .ioc metadata.
list_breakpointsLists breakpoints with their HIT COUNTS. A hit_count of 0 means the code
list_functionsLists functions in the loaded symbols, optionally filtered by a regex.
list_sourceLists source lines around a location (function, 'file.c:42', or '*0xADDR').
list_variablesLists global/static variables in the loaded symbols, optionally filtered by a regex.
load_acceptanceLoad a machine-checked AcceptanceSpec (product-spec → deterministic checks)
load_coredumpLoads a previously captured core file for offline analysis.
load_device_packRegister a verified device-fact pack (Pillar F) so the deterministic solvers cover a new
load_svdLoads an SVD file for peripheral parsing.
load_symbolsLoads symbols from an ELF/AXF into the current GDB session WITHOUT flashing.
lookup_typeShows the type/layout of an expression or type name (GDB ptype).
mcp_infoIdentifies THIS running stm32-gdb-mcp server: release version, git commit, the
read_call_stackReads the call stack as a decoded list of frames
read_core_registersReads CPU core registers as a decoded {name: hex} map plus a one-line
read_cycle_counterEnables (if needed) and reads the DWT cycle counter (DWT_CYCCNT) for
read_fault_registersReads Cortex-M SCB fault status registers (CFSR, HFSR, DFSR, MMFAR, BFAR, AFSR).
read_frame_variablesReturns a decoded {name: value} map of locals and arguments for a stack
read_freertosReads FreeRTOS state by 'what': 'current_task' (pxCurrentTCB), 'tasks' (ready
read_memoryReads a block of memory from the target. Returns the raw bytes in memory
read_peripheral_registerReads a peripheral register using its name from the loaded SVD.
read_typed_memoryReads memory with an explicit element width and count.
read_variableReads the value of a C variable currently in scope.
reconstruct_fault_contextReconstructs the full crash site after a HardFault: decodes fault
render_frameworkRender the synthesized FrameworkPlan to a HAL C init skeleton (bsp_init.c +
report_issueFiles a GitHub issue about an MCP problem from THIS session — auto-bundling
reset_targetResets the target device. Can optionally halt immediately after reset.
resolve_addressMaps an address or expression (e.g. '$pc', '0x08001234') to its source
run_acceptancewrite actionEvaluate the loaded AcceptanceSpec against live silicon state and return a
run_acceptance_iterationwrite actionRun one bounded loop iteration: (optional build) → (optional flash+run-to) →
run_and_waitwrite actionResumes the target and waits, returning a structured stop event
run_for_durationwrite actionRuns the target freely for a wall-clock duration, halts it, and returns
run_pipelinewrite actionSpec-to-silicon capstone (Pillar G): run the whole deterministic DESIGN half in one call.
run_scenariowrite actionReplays a declarative scenario — a list of {tool, args} steps —
run_to_linewrite actionRuns until a given location is reached (function, 'file.c:42', or '*0xADDR').
sample_pcStatistical PC profiler: enables DWT and samples the program counter while
save_debug_configSaves a YAML debug config file.
select_frameSelects a stack frame by level (0 = innermost) for subsequent variable reads.
set_breakpointSets a breakpoint at a function, line, or address. Supports an optional
set_timeoutsOverrides one or more named timeouts (positive seconds). Useful for a slow
set_watchpointSets a hardware watchpoint on a memory address or variable.
set_write_policywrite actionConfigures memory-write guardrails: mode ('enforce' or 'dry_run'), and
setup_swoOne-call SWO/ITM printf setup. Configures the target's TPIU+ITM from the
sizeofEvaluates sizeof(expr) against the loaded symbols.
solve_clock_treeSynthesize a concrete SystemClock_Config() for the session's FrameworkPlan
solve_timerSolve a timer's Prescaler/Period (PSC/ARR) for a target update frequency
start_acceptance_loopStart a bounded spec-to-silicon acceptance loop (Pillar C) for the loaded
start_debug_sessionStarts the specified GDB Server (openocd, stlink, jlink) and connects the GDB Client to it.
start_loggingStarts background log capture on a channel: 'rtt' (SEGGER RTT, default cmd
stepSingle-steps the target: kind='over' (over the line), 'into' (into calls),
stop_debug_sessionStops the GDB client/server, variable tracking, and all active RTT/SWO/UART readers.
stop_loggingStops background log capture on a channel (rtt/swo/uart).
synthesize_acceptanceAuto-derive a machine-checked AcceptanceSpec from the synthesized FrameworkPlan
tool_helpReturns descriptions and complete schemas for full-surface tools, including tools hidden in compact mode.
track_variableBackground variable tracking: action='start' (needs variable + interval_ms),
validate_boardValidate the imported BoardDescription: detect a package pin wired to
validate_debug_configValidates a YAML debug config object without saving it.
verify_flashVerifies that target flash matches an ELF (GDB compare-sections). Compares
wait_for_stopWaits for the next stop event WITHOUT resuming the target, returning
write_memorywrite actionWrites a value to a specific memory address.
write_typed_memorywrite actionWrites memory with an explicit C integer width.
Public scan report
scanner v0.1.10 · 2026-10-27 · same rubric, same numbers if you re-run it
- Code scan110 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 3 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How STM32 GDB Debugger compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 95% of 48,255 servers
- Tools
- 100
- the typical server has 7
- Tools that change things
- 16%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 2
- more than 75% of 28,688 servers
- Downloads a week
- 42
- more than 34% of 12,191 servers with a package
What its tools let an agent do: 71 read · 6 create · 10 change · 1 delete · 12 run or deploy
Install STM32 GDB Debugger in Claude Code, Cursor or VS Code
claude mcp add stm32-gdb-mcp -- uvx stm32-gdb-mcp
What the publisher says
From the STM32 GDB Debugger repository's README, as published. We do not edit it. Read it on GitHub
STM32 GDB MCP Server / STM32 GDB MCP 服务器
<!-- mcp-name: io.github.Zeraissh/stm32-gdb-mcp -->
An MCP server that lets an AI agent debug STM32 firmware on real hardware — drive GDB + OpenOCD/ST-Link/J-Link to flash, breakpoint, inspect memory/registers/RTOS, triage HardFaults, and profile — and get back decoded, structured evidence instead of raw GDB text.
让 AI 智能体在真实硬件上调试 STM32:通过 GDB + OpenOCD/ST-Link/J-Link 烧录、打断点、查 内存/寄存器/RTOS、定位 HardFault、做性能采样,返回已解码的结构化证据而非原始 GDB 文本。
uvx stm32-gdb-mcp # any MCP client: command "uvx", args ["stm32-gdb-mcp"]Needs arm-none-eabi-gdb (or gdb-multiarch) and a GDB server (OpenOCD / J-Link / st-util) on PATH; stm32-gdb-mcp-check-env prints the install command for your OS. See Install for one-command setup in Claude Code, Cursor, VSCode and others. / 需要 PATH 中有 arm-none-eabi-gdb(或 gdb-multiarch)和一种 GDB Server; stm32-gdb-mcp-check-env 会给出本机系统的安装命令。各客户端的一键安装见下方 Install。
Why this server / 为什么选它
Pick a probe-rs-based server if you need RISC-V or ESP32; pick this one when you debug STM32 and want the agent to get from symptom to root cause with fewer calls. / 需要 RISC-V 或 ESP32 时选 probe-rs 系;调试 STM32、希望 agent 用更少调用从现象走到根因时选本项目。
What you get / 能力一览
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
STM32 GDB Debugger: common questions
- Is STM32 GDB Debugger MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the STM32 GDB Debugger safety report
- How do I install STM32 GDB Debugger?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does STM32 GDB Debugger need an API key?
- No secret keys are declared. It reads 1 setting from the environment.
- Is STM32 GDB Debugger maintained?
- The last commit was 11 days ago (2026-10-24). The latest release is v0.15.1.
- How does STM32 GDB Debugger compare with other MCP servers?
- safety score 92/100 (higher than 95% of 48,255 servers); tools 100 (the typical server has 7); tools that change things 16% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.