Skip to main content
Glama
propfire11

mcp-stm32-server

by propfire11

🔌 MCP STM32 Controller Server / MCP STM32 控制器服务器

Python MCP License

Steuern Sie einen STM32-Mikrocontroller über das MCP (Model Context Protocol). KI-Assistenten können GPIO lesen/schreiben, eine LED steuern, ADC-Werte lesen und ein OLED ansteuern – alles über natürliche Sprache.

Steuern Sie einen STM32-Mikrocontroller über das MCP (Model Context Protocol). KI-Assistenten können die von diesem Dienst bereitgestellten Werkzeuge aufrufen, um die GPIOs des STM32 zu lesen und zu schreiben, eine LED zu steuern, ADC-Werte zu messen und den OLED-Bildschirm zu bedienen.


Architektur

AI Assistant (Claude) ←→ MCP Server (this program) ←→ UART ←→ STM32 firmware

Die Kommunikation verwendet ein JSON-Zeilen-Protokoll: ein JSON-Objekt pro Zeile, abgeschlossen durch \n.


Related MCP server: Serial MCP Server

Schnellstart

1. Abhängigkeiten installieren

pip install -r requirements.txt

2. Hardware verbinden

  • STM32 USART1: PA9 (TX), PA10 (RX)

  • Verbinden Sie den Computer über ein USB-TTL-Modul mit dem PC

  • Flashen Sie die passende Firmware auf dem Gerät (implementieren Sie das unten beschriebene JSON-Zeilen-Protokoll)

3. Server starten

# 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

Werkzeuge

Werkzeug

Beschreibung

Argumente

ping

prüft, ob der STM32 online ist

—

set_led

setzt die LED-Helligkeit

brightness: 0-100

get_led

liest die aktuelle LED-Helligkeit

—

read_pin

liest einen GPIO-Pegel

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

write_pin

setzt einen GPIO-Pegel

pin + value: 0/1

read_adc

liest einen ADC-Wert

channel: 0-2

oled_clear

leert den OLED-Bildschirm

—

oled_print

zeigt Text auf dem OLED an

x + y + text

Ressourcen

URI

Beschreibung

stm32://status

Verbindungsstatus, Port-Informationen, Laufzeit


Konfiguration

Über Umgebungsvariablen oder Befehlszeilenargumente:

Argument

Umgebungsvariable

Standard

Beschreibung

--port

STM32_PORT

automatische Erkennung

serielle Schnittstelle

--baud

—

115200

Baudrate

--sse

—

false

SSE-Modus

--sse-port

—

8000

SSE-Port


Integration mit Claude Desktop

Bearbeiten Sie claude_desktop_config.json:

{
  "mcpServers": {
    "stm32": {
      "command": "python",
      "args": ["C:/path/to/mcp-stm32-server/main.py", "--port", "COM3"],
      "env": {}
    }
  }
}

Wire-Protokoll (JSON-Zeilen)

Jede Zeile ist ein eigenständiges JSON-Objekt. Die Firmware sendet einfach eine Antwort mit der passenden id zurück.

Anfrage:

{"id":1,"cmd":"set_led","args":{"brightness":75}}

Erfolgreiche Antwort:

{"id":1,"status":"ok","data":{"brightness":75}}

Fehlerantwort:

{"id":1,"status":"error","msg":"brightness must be 0-100"}

Firmware-Vereinbarung: Auf jede eingehende Anfrage antworten Sie mit einer JSON-Zeile, die dieselbe id enthält sowie status ("ok" / "error") und entweder data oder msg. Boot-Log-Zeilen, die kein gültiges JSON sind, werden vom Client automatisch übersprungen.


Lizenz

MIT-Lizenz.


Architektur

AI 助手 (Claude) ←→ MCP Server (本程序) ←→ 串口 ←→ STM32 固件

Die Kommunikation verwendet ein JSON-Zeilen-Protokoll: jede Zeile ist ein JSON-Objekt, abgeschlossen mit \n.


Schnellstart

1. Abhängigkeiten installieren

pip install -r requirements.txt

2. Hardware verbinden

  • USART1 des STM32: PA9 (TX), PA10 (RX)

  • Verbindung zum Computer über ein USB-TTL-Modul herstellen

  • Die zugehörige Firmware, die das unten beschriebene JSON-Zeilen-Protokoll implementiert, auf dem Gerät flashen

3. Server starten

# 自动检测串口
python main.py

# 指定串口
python main.py --port COM3

# SSE 模式(HTTP 服务)
python main.py --sse --port COM3

Werkzeugliste

Werkzeug

Beschreibung

Parameter

ping

prüft, ob der STM32 online erreichbar ist

—

set_led

setzt die LED-Helligkeit

brightness: 0-100

get_led

liest die LED-Helligkeit

—

read_pin

liest einen GPIO-Pegel

pin: "PA0", "PC13" usw.

write_pin

setzt einen GPIO-Pegel

pin + value: 0/1

read_adc

liest einen ADC-Wert

channel: 0-2

oled_clear

leert den OLED-Bildschirm

—

oled_print

zeigt Text auf dem OLED an

x + y + text

Ressourcen

URI

Beschreibung

stm32://status

Verbindungsstatus, Seriell-Port-Informationen, Laufzeit


Konfiguration

Über Umgebungsvariablen oder Befehlszeilenargumente:

Parameter

Umgebungsvariable

Standard

Beschreibung

--port

STM32_PORT

automatische Erkennung

serieller Port

--baud

-

115200

Baudrate

--sse

-

false

SSE-Modus

--sse-port

-

8000

SSE-Port


Integration mit Claude Desktop

Bearbeiten Sie claude_desktop_config.json:

{
  "mcpServers": {
    "stm32": {
      "command": "python",
      "args": ["C:/path/to/mcp-stm32-server/main.py", "--port", "COM3"],
      "env": {}
    }
  }
}

Protokollformat (JSON-Zeilen)

Jede Zeile ist ein eigenständiges JSON-Objekt. Die Firmware muss nur eine JSON-Zeile mit derselben id zurücksenden.

Anfrage:

{"id":1,"cmd":"set_led","args":{"brightness":75}}

Erfolgreiche Antwort:

{"id":1,"status":"ok","data":{"brightness":75}}

Fehlerantwort:

{"id":1,"status":"error","msg":"brightness must be 0-100"}

Firmware-Vereinbarung: Senden Sie zu jeder erhaltenen Anfrage eine JSON-Zeile mit derselben id, die status ("ok" / "error") enthält sowie entweder data oder msg. Nicht-JSON-Boot-Log-Zeilen werden vom Client automatisch übersprungen.


Lizenz

MIT-Lizenz.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    12
    1
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables 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
    -