mcp-stm32-server
🔌 MCP STM32 Controller Server / MCP STM32 控制器服务器
通过 MCP(Model Context Protocol) 控制 STM32 微控制器。AI 助手可以读写 GPIO、控制 LED、读取 ADC、驱动 OLED——所有这些都可以通过自然语言完成。
通过 MCP(模型上下文协议) 协议控制 STM32 微控制器。AI 助手可以调用本服务提供的工具来读写 STM32 的 GPIO、控制 LED、读取 ADC、操作 OLED 屏幕等。
架构
AI Assistant (Claude) ←→ MCP Server (this program) ←→ UART ←→ STM32 firmware通信采用 JSON 行协议:每行一个 JSON 对象,以 \n 结尾。
快速开始
1. 安装依赖
pip install -r requirements.txt2. 连接硬件
STM32 USART1:PA9(TX)、PA10(RX)
通过 USB-TTL 模块连接电脑
在设备端烧录实现下述 JSON 行协议的配套固件
3. 启动服务
# auto-detect the serial port
python main.py
# specify a serial port
python main.py --port COM3
# SSE mode (HTTP service)
python main.py --sse --port COM3工具
工具 | 说明 | 参数 |
| 检测 STM32 是否在线 | — |
| 设置 LED 亮度 |
|
| 读取当前 LED 亮度 | — |
| 读取 GPIO 电平 |
|
| 设置 GPIO 电平 |
|
| 读取 ADC 值 |
|
| 清空 OLED 屏幕 | — |
| 在 OLED 上显示文字 |
|
资源
URI | 说明 |
| 连接状态、端口信息、运行时间 |
配置
通过环境变量或命令行参数配置:
参数 | 环境变量 | 默认值 | 说明 |
|
| 自动检测 | 串口 |
| — | 115200 | 波特率 |
| — | false | SSE 模式 |
| — | 8000 | SSE 端口 |
与 Claude Desktop 集成
编辑 claude_desktop_config.json:
{
"mcpServers": {
"stm32": {
"command": "python",
"args": ["C:/path/to/mcp-stm32-server/main.py", "--port", "COM3"],
"env": {}
}
}
}协议格式(JSON 行)
每一行是一个独立的 JSON 对象。固件只需回一个 id 相同的 JSON 行即可。
请求:
{"id":1,"cmd":"set_led","args":{"brightness":75}}成功响应:
{"id":1,"status":"ok","data":{"brightness":75}}错误响应:
{"id":1,"status":"error","msg":"brightness must be 0-100"}固件约定:收到每条请求后,回一行包含相同 id 的 JSON,含 status("ok" / "error")以及 data 或 msg。启动时的非 JSON 日志行会被客户端自动跳过。
许可证
MIT License。
架构
AI 助手 (Claude) ←→ MCP Server (本程序) ←→ 串口 ←→ STM32 固件通信使用 JSON 行协议,每个 JSON 对象,以 \n 结尾。
快速开始
1. 安装依赖
pip install -r requirements.txt2. 连接硬件
STM32 的 USART1:PA9(TX),PA10(RX)
通过 USB-TTL 模块连接电脑
在设备端烧录实现下述 JSON 行协议的配套固件
3. 启动服务
# 自动检测串口
python main.py
# 指定串口
python main.py --port COM3
# SSE 模式(HTTP 服务)
python main.py --sse --port COM3工具列表
工具 | 说明 | 参数 |
| 检测 STM32 在线状态 | 无 |
| 设置 LED 亮度 |
|
| 读取 LED 亮度 | 无 |
| 读取 GPIO 电平 |
|
| 设置 GPIO 电平 |
|
| 读取 ADC 值 |
|
| 清空 OLED 屏幕 | 无 |
| 在 OLED 上显示文字 |
|
资源
URI | 说明 |
| 连接状态、串口信息、运行时间 |
配置
通过环境变量或命令行参数:
参数 | 环境变量 | 默认值 | 说明 |
|
| 自动检测 | 串口号 |
| — | 1152000 | 波特率 |
| — | false | SSE 模式 |
| — | 8000 | SSE 端口 |
与 Claude Desktop 集成
编辑 claude_desktop_config.json:
{
"mcpServers": {
"stm32": {
"command": "python",
"args": ["C:/path/to/mcp-stm32-server/main.py", "--port", "COM3"],
"env": {}
}
}
}协议格式(JSON 行)
每一行是一个独立的 JSON 对象。固件只需回一个 id 相同的 JSON 行即可。
请求:
{"id":1,"cmd":"set_led","args":{"brightness":75}}成功响应:
{"id":1,"status":"ok","data":{"brightness":75}}错误响应:
{"id":1,"status":"error","msg":"brightness must be 0-100"}固件约定:收到每条请求后,回一行包含相同 id 的 JSON,含 status("ok" / "error")以及 data 或 msg。启动时的非 JSON 日志行会被客户端自动跳过。
许可证
MIT License。
This server cannot be installed
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 Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
LLM chat, text summarization and AI image generation
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/propfire11/mcp-stm32-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server