mcp-stm32cubeide-server

mcp-stm32cubeide-server

An MCP server that lets AI coding agents drive the full STM32 development loop—code generation, build, flash, debug, serial monitoring, and fault diagnosis—end to end via CubeIDE, CubeMX, CubeProgrammer, OpenOCD, and GDB.

Category
访问服务器

README

mcp-stm32cubeide-server

An MCP (Model Context Protocol) server that lets AI coding agents (Claude Code / opencode / Claude Desktop) drive the full STM32 development loop — wire up → request → AI writes code → build → flash → debug → diagnose faults — end to end.

让 AI 编程助手(Claude Code / opencode / Claude Desktop 等)直接操控 STM32 开发全流程:接线 → 提需求 → AI 自己改代码 / 编译 / 烧录 / 验证

中文文档为主。所有工具返回结构化 JSON,失败时携带明确错误信息,便于 AI 精确处理。


功能一览(17 个工具)

类别 工具 说明
环境 discover_tools 扫描 CubeIDE / CubeMX / CubeProgrammer / GDB / OpenOCD 安装路径,排查"工具未找到"
工程 list_projects 扫描目录自动识别 STM32 工程(AI 无需手动填路径)
工程 get_project_info 读取 MCU 型号、构建配置、源文件数
代码生成 generate_code .ioc 调用 CubeMX CLI 生成初始化代码
构建 build_project / clean_project CubeIDE headless 编译(Clean Build / 增量 / 仅清理)
烧录 flash_firmware CubeProgrammer 烧录 .bin / .hex
烧录 debug_flash 通过 GDB 精确烧录 .elf 到目标
Flash 操作 read_flash / erase_flash 读取芯片 Flash 验证 / 备份、整片擦除
串口 list_serial_ports / serial_monitor 枚举 COM 口;采集 UART 日志验证固件行为
调试 debug_run 烧录运行,自动捕获 HardFault / BusFault / UsageFault / MemManage 并解析故障寄存器原因
调试 debug_status / debug_halt / debug_resume OpenOCD 状态查询、暂停 / 恢复目标
OLED 字库 oled_add_zh_font 调用波特律动(led.baud-dance.com)官方取模接口给工程 font.c 追加汉字点阵,自动去重并更新 Font.len;接口不可用时回退本地 PIL 渲染

oled_add_zh_font 与波特律动取模助手/串口助手的字模完全一致(文泉驿点阵字,16x16 列行式阳码),无需再打开浏览器取模,取到的字模可直接用 OLED_PrintString 显示。

环境要求

  • Python 3.10+,pip install -r requirements.txtmcp>=1.0.0pyserial>=3.5
  • 至少安装一个 ST 工具(CubeIDE / CubeMX / CubeProgrammer 任意组合)

工具链自动发现

按顺序查找:环境变量 → PATH → Windows 注册表 → 常见安装位置。大部分情况无需配置。

工具 环境变量
STM32CubeIDE CUBEIDE_PATH
STM32CubeMX CUBEMX_PATH
STM32CubeProgrammer CUBEPROG_PATH
arm-none-eabi-gdb ARM_GDB_PATH
OpenOCD OPENOCD_PATH
OpenOCD 脚本目录 OPENOCD_SCRIPTS_PATH

安装 / 注册

opencode — opencode.json

{
  "mcp": {
    "stm32cubeide": {
      "type": "local",
      "command": ["python", "D:\\path\\to\\mcp-stm32cubeide-server\\server.py"],
      "enabled": true
    }
  }
}

Claude Code / Claude Desktop — .mcp.json / claude_desktop_config.json

{
  "mcpServers": {
    "stm32cubeide": {
      "command": "python",
      "args": ["D:\\path\\to\\mcp-stm32cubeide-server\\server.py"]
    }
  }
}

路径请替换为你克隆仓库后的实际路径。建议 command 使用 Python 绝对路径(避免 PATH 混入其他版本)。

典型自主编程流程

  1. list_projects 找到工程
  2. AI 直接修改源码 / 修改 .iocgenerate_code
  3. build_project 编译(出错则读错误信息修到通过)
  4. flash_firmwaredebug_flash 烧录
  5. serial_monitor 采集串口日志验证行为;崩溃则 debug_run 拿到故障寄存器诊断
  6. 需要显示新汉字时,oled_add_zh_font 自动取模并集成进 font.c

运行测试

python -m unittest test_server -v

项目结构

server.py            # MCP 注册与工具路由(入口)
tools.py             # 各工具的 async 实现(含命令构造)
discovery.py         # 工具链路径发现(env / PATH / 注册表 / 浅层扫描 + 缓存)
process.py           # 子进程执行(超时杀进程树)+ OpenOCD 会话管理
mcu.py               # MCU 型号识别 + 故障寄存器诊断解析
project.py           # .ioc / .elf 查找、工程信息、工程扫描
serial_monitor.py    # 串口采集(pyserial,后台线程)
fontgen.py           # 汉字字模生成(波特律动官方取模接口 + 本地 PIL 兜底)
test_server.py       # 单元测试 / 冒烟测试

实现要点

  • 全 async:所有工具为 async def,无嵌套 asyncio.run(),支持并发调用
  • 进程树清理:Windows 超时用 taskkill /T /F,不残留 CubeIDE / OpenOCD
  • OpenOCD 就绪探测:TCP 轮询端口而非固定 sleep;端口冲突自动避让
  • 编码兼容:工具输出按 UTF-8 / GBK 自动解码,中文路径可用
  • 安全:所有命令用参数列表传入(无 shell 注入面);工具发现仅查已知位置
  • 日志走 stderr:stdout 是 MCP 传输通道,不得污染

许可证

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选