
Program, run and inspect STM32 targets over ST-LINK; every result verified, unverified or failed.
Public tool metadata for what this MCP can expose to an agent.
list_probesLists attached probes, their firmware and their serial consoles, and marks those a GDB server holdsLists attached probes, their firmware and their serial consoles, and marks those a GDB server holds
No parameter schema in public metadata yet.
board_stateIdentifies the target, the probe and the family, and says whether the core is running, sleeping, halted or locked up, without halting itIdentifies the target, the probe and the family, and says whether the core is running, sleeping, halted or locked up, without halting it
No parameter schema in public metadata yet.
run_firmwareResets the target, loads an ELF into RAM and starts itResets the target, loads an ELF into RAM and starts it
No parameter schema in public metadata yet.
flash_firmwareWrites a raw binary (.bin), an ELF or an Intel HEX file to flash, for the board to bootWrites a raw binary (.bin), an ELF or an Intel HEX file to flash, for the board to boot
No parameter schema in public metadata yet.
read_memoryReads 32-bit words, a variable by name, or a peripheral register by name, without halting or resetting the targetReads 32-bit words, a variable by name, or a peripheral register by name, without halting or resetting the target
No parameter schema in public metadata yet.
sample_valuesSamples up to eight variables, addresses or registers together, a few times a second for up to 60 s, without halting the programSamples up to eight variables, addresses or registers together, a few times a second for up to 60 s, without halting the program
No parameter schema in public metadata yet.
core_registersReads the core registers, halting the core for the read; with the ELF, the call stack with each frame's arguments and localsReads the core registers, halting the core for the read; with the ELF, the call stack with each frame's arguments and locals
No parameter schema in public metadata yet.
run_untilRuns the target until it reaches a function, a line or an address, or writes a variable, and holds the core thereRuns the target until it reaches a function, a line or an address, or writes a variable, and holds the core there
No parameter schema in public metadata yet.
read_fault_statusReads and decodes the Cortex-M fault registers, without halting or resetting the targetReads and decodes the Cortex-M fault registers, without halting or resetting the target
No parameter schema in public metadata yet.
locate_faultFinds the instruction that faulted, from the exception frame, halting the core for the readFinds the instruction that faulted, from the exception frame, halting the core for the read
No parameter schema in public metadata yet.
disassembleDisassembles a function, or the code around an address, from the ELFDisassembles a function, or the code around an address, from the ELF
No parameter schema in public metadata yet.
read_option_bytesReads the option bytes as ST's programmer explains them: readout protection, brown-out level, user configuration, boot addresses, write protectionReads the option bytes as ST's programmer explains them: readout protection, brown-out level, user configuration, boot addresses, write protection
No parameter schema in public metadata yet.
capture_consoleCaptures the board's serial outputCaptures the board's serial output
No parameter schema in public metadata yet.
capture_swoCaptures what the target writes to an ITM stimulus port, over the SWO pinCaptures what the target writes to an ITM stimulus port, over the SWO pin
No parameter schema in public metadata yet.
reset_targetResets the target and checks that it restartedResets the target and checks that it restarted
No parameter schema in public metadata yet.
release_probeStops the GDB server holding a probe, which resumes a core run_until heldStops the GDB server holding a probe, which resumes a core run_until held
No parameter schema in public metadata yet.
Sponsors
STLINK_MCP_CLT_ROOTSTM32CubeCLT (or STM32CubeIDE) install directory, when it is not in a standard place
STLINK_MCP_BOARDSTOML file describing boards this project has not characterised; defaults to ~/.config/stlink-mcp/boards.toml if it exists
STLINK_MCP_NO_VENDOR_SEEDSet to anything to run on measured and user-stated data only, with no seeding from ST's device databases
STLINK_MCP_CONSOLESerial console per probe, SERIAL=/dev/ttyUSB0, comma-separated for several; for a console that is not the probe's own
STLINK_MCP_CONSOLE_BAUDdefault: 115200Console baud rate
STLINK_MCP_GDB_PORTdefault: 61234First GDB server port; each probe's server takes this port and the next
An MCP server that lets an AI coding agent program, run and inspect an STM32 target over ST-LINK, with every result marked verified, unverified or failed, and the evidence for it. It runs locally, next to the board, and drives the STM32CubeCLT command line tools you already have installed. It reads variables and peripheral registers by name, from your ELF and ST's SVD files, without stopping the program; it refuses a read that would change what the firmware sees unless asked; and every result says whether the call halted or reset the target. With it attached, the agent runs the edit, build, load, observe loop itself, and you supervise its conclusions instead of relaying what the board did.
stlink-mcp