stm32-mcp MCP Server

MCP server that lets Claude Code build, flash, and communicate with STM32 hardware.

Local serverstdio

What is the stm32-mcp Server?

stm32-mcp is an MCP project maintained in the shieldyguy/stm32-mcp repository. The maintainer describes its purpose as “MCP server that lets Claude Code build, flash, and communicate with STM32 hardware”. Read the project documentation for the complete scope.

Local setup

The project provides a local client configuration using /path/to/stm32-mcp/.venv/bin/python. Follow the repository’s build and installation steps before copying it, and replace example paths with the paths on your own computer.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
stm32_buildCompile firmware using CubeIDE headless builder
stm32_flashFlash .elf/.bin/.hex to board via ST-Link SWD
stm32_build_and_flashBuild + flash in one step (the 90% case)
stm32_board_infoRead ST-Link/MCU info (device ID, flash size, voltage)
stm32_list_probesShow all connected boards with nicknames and MCU IDs
stm32_set_nicknameName a board (by MCU UID) or probe (by ST-Link SN)
serial_list_portsList serial ports (marks ST-Link VCP ports with nicknames)
serial_connectOpen a serial connection
serial_sendSend data and read response
serial_readRead buffered serial data
serial_disconnectClose a serial connection
serial_sequenceRun multi-step send/delay/memory sequences in one call
stm32_read_memoryRead memory by address or variable name (from ELF symbols)
stm32_write_memoryWrite memory by address or variable name
live_memory_startStart continuous background memory monitoring via SWD
live_memory_readRead recent entries from a live memory session
live_memory_stopStop a live memory session

How to install the stm32-mcp Server

{
  "mcpServers": {
    "stm32": {
      "command": "/path/to/stm32-mcp/.venv/bin/python",
      "args": [
        "-m",
        "stm32_mcp.server"
      ]
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.