Skip to main content
Glama
propfire11

mcp-stm32-server

by propfire11

🔌 MCP STM32 Controller Server / MCP STM32 コントローラサーバー

Python MCP License

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 で終了します。


クイックスタート

1. 依存関係のインストール

pip install -r requirements.txt

2. ハードウェアの接続

  • 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

ツール

ツール

説明

引数

ping

STM32 がオンラインかどうかを確認する

set_led

LED の明るさを設定する

brightness: 0-100

get_led

現在の LED の明るさを読み取る

read_pin

GPIO レベルを読み取る

pin: "PA0", "PC13", ...

write_pin

GPIO レベルを設定する

pin + value: 0/1

read_adc

ADC 値を読み取る

channel: 0-2

oled_clear

OLED 画面をクリアする

oled_print

OLED にテキストを表示する

x + y + text

リソース

URI

説明

stm32://status

接続状態、ポート情報、稼働時間


設定

環境変数またはコマンドライン引数で指定します:

引数

環境変数

デフォルト

説明

--port

STM32_PORT

自動検出

シリアルポート

--baud

-

115200

ボーレート

--sse

-

false

SSE モード

--sse-port

-

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.txt

2. ハードウェアの接続

  • 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

ツール一覧

ツール

説明

引数

ping

STM32 のオンライン状態を確認する

なし

set_led

LED の明るさを設定する

brightness: 0-100

get_led

LED の明るさを読み取る

なし`

read_pin

GPIO レベルを読み取る

pin: "PA0", "PC13" など

write_pin

GPIO レベルを設定する

pin + value: 0/1

read_adc

ADC 値を読み取る

channel: 0-2

oled_clear

OLED 画面をクリアする

なし

oled_print

OLED に文字を表示する

x + y + text

リソース

URI

説明

stm32://status

接続状態、シリアルポート情報、稼働時間


設定

環境変数またはコマンドライン引数で指定します:

引数

環境変数

デフォルト

説明

--port

STM32_PORT

自動検出

ポート番号

--baud

-

115200

ボーレート

--sse

-

false

SSE モード

--sse-port

-

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.

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all MCP Connectors

Latest Blog Posts

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