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.


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.

-
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