Debug microcontrollers from Claude via OpenOCD: flash, breakpoints, memory and registers by name.
Most knowledge and memory work still happens through a UI a human drives. OpenOCD Debugger MCP server moves it into the conversation instead. Debug microcontrollers from Claude via OpenOCD: flash, breakpoints, memory and registers by name.
Once connected to a target through a debug probe (ST-Link, J-Link, CMSIS-DAP, …), your AI assistant can:
The server ships on PyPI as caches, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.
The server publishes 14 tools. What each one is for:
Live — watch variables** — a window that samples variables over time without halting the CPU, with expandable structs/arrays auto-typed from DWARFtransport — "swd" or "jtag". Set "swd" for a J-Link on Cortex-Msvd_file — CMSIS-SVD file for the chip (enables peripheral registers by name)elf_file — your firmware build output (enables variables by name)Client — PlatformOutput — A text table of samples returned to the chatDuration — One-shot: N samples, then it returnsPermission — Defaultread_only — falseallow_memory_write — trueallow_flash — trueallow_flash_erase — falseThis sits in the knowledge and memory group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. OpenOCD Debugger's toolset — Live, transport, svd_file and 11 more — is a fair guide to whether it matches your workflow. It is maintained by microhenrio; worth a glance at recent repository activity before you build anything load-bearing on it.
We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.
| Tool | What it does |
|---|---|
| Live | watch variables** — a window that samples variables over time *without halting* the CPU, with **expandable structs/arrays** auto-typed from DWARF (signed/float/pointer/enum) |
| transport | "swd" or "jtag". Set "swd" for a **J-Link** on Cortex-M |
| svd_file | CMSIS-SVD file for the chip (enables peripheral registers by name). |
| elf_file | your firmware build output (enables variables by name). |
| Client | Platform |
| Output | A text table of samples returned to the chat |
| Duration | One-shot: N samples, then it returns |
| Permission | Default |
| read_only | false |
| allow_memory_write | true |
| allow_flash | true |
| allow_flash_erase | **false** |
| allow_raw_command | true |
| flash_allowed_paths | [] (any) |
{
"mcpServers": {
"openocd": {
"command": "uvx",
"args": ["caches"]
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
A knowledge graph your assistant keeps between sessions — entities, relations and observations that persist.
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Your workspace, on speaking terms with AI — search, read and write Notion pages and databases.
A structured scratchpad for hard problems — stepwise reasoning with revisions, branches and visible logic.
Symbol-level code navigation, refactoring and memory for coding agents — the IDE brain your assistant has been missing.
Chat with your second brain — search, read and write vault notes through the Local REST API.