stm32c0-mcp
This MCP server manages bare-metal STM32C011 firmware projects with four tools:
scaffold_project: Generates a minimal project skeleton (linker script, startup code, blinky main.c) for a specified target part (default STM32C011F6Ux), with project name and force overwrite options.
build: Configures and compiles the project using CMake, Ninja, and arm-none-eabi-gcc; returns build status, compiler output, paths to ELF/BIN/HEX files, and flash/RAM usage. Supports clean builds and custom build directory.
flash: Programs firmware (.elf/.bin/.hex) to the device over SWD via ST-LINK using STM32_Programmer_CLI; options for target part, erase mode, verify, reset mode, SWD frequency, and probe serial number for multi-probe setups.
list_probes: Lists serial numbers of connected ST-LINK probes to identify targets.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@stm32c0-mcpscaffold a new blinky project in ./my-project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
stm32c0-mcp
MCP server + CLI for scaffolding, building, and flashing bare-metal STM32C011
firmware, driving the STM32CubeCLT command-line toolchain
(/opt/ST/STM32CubeCLT_1.22.0 by default — override with STM32CUBECLT_ROOT).
Targets the STM32C011 family (default part: STM32C011F6Ux, matching the
STM32C0116-DK Discovery kit). No HAL/CMSIS pack dependency — scaffolded
projects are genuinely bare-metal (hand-written vector table, linker script,
and a GPIO-register blinky).
Setup
pyenv local 3.10.0
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"Related MCP server: commands-mcp
CLI usage
.venv/bin/stm32c0 scaffold /path/to/project [--project-name NAME] [--part STM32C011F6Ux] [--force]
.venv/bin/stm32c0 build /path/to/project [--clean]
.venv/bin/stm32c0 flash /path/to/project/build/firmware.elf [--serial-number SN] [--shared]
.venv/bin/stm32c0 list-probes [--shared]Multiple probes
STM32_Programmer_CLI's direct USB path only ever sees a single ST-LINK: with
two connected it finds one and rejects the other with Error: Serial number not found, which looks like a hardware fault but isn't. Pass --shared to
route through ST-LINK server, which sees them all:
.venv/bin/stm32c0 list-probes --shared # every probe's serial
.venv/bin/stm32c0 flash fw.elf --serial-number SN --shared # target one of themST-LINK server is started automatically when --shared is used. It ships with
STM32CubeIDE rather than STM32CubeCLT (expected at /usr/local/bin/stlink-server,
override with STLINK_SERVER), so --shared is opt-in: shared connections fail
outright where that server isn't installed. --shared listings report serial
numbers only, without firmware versions.
MCP server
.venv/bin/stm32c0-mcpExposes scaffold_project, build, flash, and list_probes as MCP tools.
See docs/registration.md for wiring it into Claude Code.
Tests
.venv/bin/pytest -vtests/test_build_smoke.py requires no hardware. tests/test_flash_hardware.py
is skipped automatically unless an ST-LINK probe is connected.
Layout
src/stm32c0_mcp/— package:parts.py(device memory-map table),config.py(toolchain discovery),stlink_server.py(ST-LINK server discovery/startup for multi-probe access),scaffold.py/build.py/flash.py/probes.py(drivers),mcp_server.py/cli.py(thin wrappers),templates/bare_metal/(project skeleton templates).examples/blinky/— a committed, buildable instance of the scaffolded project; doubles as the smoke-test fixture.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceAn MCP server for managing ESP-IDF workflows, enabling LLMs to build, flash, and test firmware for ESP32 and related microcontrollers. It provides tools for project creation, target configuration, and serial port management to simplify embedded development.Last updated155
- Alicense-qualityCmaintenanceAn MCP server that lets you define and run custom shell commands via YAML templates, with built-in tools for flashing and serial communication in embedded development.Last updated224Apache 2.0
- AlicenseAqualityCmaintenanceStateful MCP server for driving debug probes (J-Link) to flash, debug, and inspect embedded targets. Enables AI agents to perform flash, memory, breakpoint, and ELF/SVD-aware operations conversationally.Last updated417MIT
- Alicense-qualityCmaintenanceMCP server for embedded debugging based on probe-rs, providing 22 tools for ARM Cortex-M and RISC-V microcontrollers, including connection, memory operations, breakpoints, flash programming, and RTT communication.Last updated2MIT
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server for Klever blockchain smart contract development.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/praderppp/token-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server