mcp-stm32-server
🔌 MCP STM32 Controller Server / MCP STM32 コントローラサーバー
MCP(Model Context Protocol) を介して STM32 マイクロコントローラ を制御します。AI アシスタントは、GPIO の読み書き、LED の制御、ADC の読み取り、OLED の駆動を、すべて自然言語で行うことができます。
MCP(Model Context Protocol) プロトコルを介して STM32 マイクロコントローラ を制御します。AI アシスタントは、このサービスが提供するツールを呼び出して、STM32 の GPIO の読み書き、LED の制御、ADC の読み取り、OLED 画面の操作などを行うことができます。
アーキテクチャ
AI Assistant (Claude) ←→ MCP Server (this program) ←→ UART ←→ STM32 firmware通信には JSON-lines プロトコル を使用します。1 行に 1 つの JSON オブジェクトを置き、\n で終了します。
Related MCP server: Serial MCP Server
クイックスタート
1. 依存関係のインストール
pip install -r requirements.txt2. ハードウェアの接続
STM32 の USART1: PA9 (TX)、PA10 (RX)
USB-TTL モジュールを介して PC に接続する
デバイスに、後述の JSON-lines プロトコルを実装した対応ファームウェアを書き込む
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 と一致する応答をファームウェアが返すだけで構いません。
リクエスト:
{"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 行を 1 行返し、status("ok" / "error")と、data または msg のいずれかを付け加えます。JSON として無効なブートログの行は、クライアントが自動的にスキップします。
ライセンス
MIT License.
アーキテクチャ
AI 助手 (Claude) ←→ MCP Server (本程序) ←→ 串口 ←→ STM32 固件通信は JSON 行プロトコル を使用します。1 行ごとに 1 つの JSON オブジェクトを配置し、\n で終了します。
クイックスタート
1. 依存関係のインストール
pip install -r requirements.txt2. ハードウェアの接続
STM32 の USART1:PA9(TX)、PA10(RX)
USB-TTL モジュールを介して PC に接続する
デバイスに、下記の 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 | 説明 |
| 接続状態、シリアルポート情報、稼働時間 |
設定
環境変数またはコマンドライン引数で指定します:
引数 | 環境変数 | デフォルト | 説明 |
|
| 自動検出 | ポート番号 |
| - | 115200 | ボーレート |
| - | false | SSE モード |
| - | 8000 | SSE ポート |
Claude Cursor / 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 行を 1 行返し、status("ok" / "error")と data または msg を含めます。起動時の非 JSON ログ行はクライアントが自動的にスキップします。
ライセンス
MIT License.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI electronics blueprint generator — BOM, wiring, firmware, renders for Arduino/ESP32/RPi.
Turns a phone into a camera+Bluetooth remote so AI assistants can see and control any PC.
Persistent memory, hybrid search and a goal graph for AI agents, over stdio or remote HTTP.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants like Claude to control Arduino boards in real-time, allowing users to turn LEDs on and off through natural language commands using the Model Context Protocol and Firmata.12-
- AlicenseNot gradedqualityDmaintenanceEnables AI tools like Claude Code and Codex CLI to read and write serial port data, facilitating embedded development workflows such as coding, flashing, and debugging.19 npmMIT
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with STM32 development boards via J-Link debugger using RTT communication, supporting connection, logging, memory operations, and firmware flashing through natural language.121MIT
- FlicenseAqualityCmaintenanceEnables AI assistants to flash firmware, program memory, modify option bytes, erase chips, reset boards, and capture SWO printf traces for STM32 microcontrollers via STM32CubeCLT.12-