OpenOCD Debugger MCP Server

Debug microcontrollers from Claude via OpenOCD: flash, breakpoints, memory and registers by name.

Local serverstdioPython

What is the OpenOCD Debugger MCP server?

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.

The short version

Once connected to a target through a debug probe (ST-Link, J-Link, CMSIS-DAP, …), your AI assistant can:

Getting it running

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 tools it exposes

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 DWARF
  • 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_erasefalse

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch OpenOCD Debugger.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

How it compares

This 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.

Available tools

ToolWhat it does
Livewatch 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_fileCMSIS-SVD file for the chip (enables peripheral registers by name).
elf_fileyour firmware build output (enables variables by name).
ClientPlatform
OutputA text table of samples returned to the chat
DurationOne-shot: N samples, then it returns
PermissionDefault
read_onlyfalse
allow_memory_writetrue
allow_flashtrue
allow_flash_erase**false**
allow_raw_commandtrue
flash_allowed_paths[] (any)

How to install the OpenOCD Debugger MCP server

{
  "mcpServers": {
    "openocd": {
      "command": "uvx",
      "args": ["caches"]
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Example prompts to try

  • Use OpenOCD Debugger to Live.
  • Use OpenOCD Debugger to transport.
  • Use OpenOCD Debugger to svd file.

Frequently asked questions

It connects OpenOCD Debugger to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (Live, transport, svd_file, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with OpenOCD Debugger directly.