MCP

Ports aufzählen und serielle Abläufe mit serial-mcp-server automatisieren

Für Assistenten oder Skripte, die lokale serielle Ports und JSON-Makros zur Zeitfolgen-Wiedergabe brauchen. Rust 1.74+ nötig. Zuerst list-ports; unbekannten Port nicht beschreiben.

Official source · serial-mcp-server

Install

cargo build --release

Für wen

Wenn ein Assistent oder Skript Serial/UART erreichen soll und derselbe Ablauf sowohl als MCP-Tool als auch als Kommandozeile taugen soll, passt serial-mcp-server. Es bietet einen MCP-stdio-Dienst und eine skriptbare CLI für CI und für agent skill ohne MCP-Konfiguration. Das aktuelle Release-Ziel ist 0.3.0.

Es passt zu Leuten, die lokal Rust 1.74 oder neuer haben, bei Hardwarearbeit ein Seriengerät oder einen USB-Seriell-Adapter stellen können und OS-Rechte für diesen Port haben. Repository:

https://github.com/adancurusul/serial-mcp-server

Wer nur im Browser klicken will und keine Compile-Umgebung hat, bleibt hier stehen — der offizielle Einstieg ist Klonen, dann cargo build --release.

Ersten Versuch in 3 Minuten

Der offizielle Hauptweg ist Kompilieren aus dem Quelltext. Voraussetzung: Rust 1.74+. Beim ersten Mal kein echtes Gerät anschließen: nur lokale Ports aufzählen, damit kein serieller Port versehentlich beschrieben wird.

Installationsort ist das geklonte Repository-Wurzelverzeichnis:

git clone https://github.com/adancurusul/serial-mcp-server.git
cd serial-mcp-server
cargo build --release

Die Binärdatei liegt unter target/release/serial-mcp-server. Auch cargo install --path . --locked auf PATH ist möglich, aber beim ersten Mal reicht die im Repository gebaute Binärdatei.

Risikoarmer erster Aufruf:

serial-mcp-server list-ports --json

Das ist eine Nur-Lesen-Aufzählung; sie schreibt keine Daten auf ein Gerät. Zuerst serial-mcp-server --help ausführen, um zu bestätigen, dass der Befehl da ist. Port-Platzhalter in der Doku nicht als echten Gerätenamen zum Schreiben nehmen.

Sichtbares Erfolgssignal: list-ports --json gibt JSON der Ports aus (darf leer sein), der Prozess endet normal. Fehlen Rechte, zuerst die OS-Rechte für den gewählten seriellen Port klären; nicht auf einen undokumentierten Starter wechseln.

Anwendungsfälle

Fall 1: Zuerst sehen, welche Ports es gibt, dann einen sondieren. Passende Befehle sind list-ports --json und probe mit --baud 115200 --json. Portnamen müssen aus dieser Ausgabe kommen; keinen fiktiven Pfad von Hand schreiben. probe erreicht Hardware; erst ausführen, wenn das Gerät angeschlossen ist.

Fall 2: Mehrstufige Zeitfolgen in ein JSON-Makro packen. Geräte brauchen oft: Befehl senden, einige Millisekunden warten, Prompt oder Antwort lesen, dann den nächsten senden. Das Makropaket zeichnet den Ablauf auf, damit Mensch, CLI oder Assistent macro validate, macro list, macro plan ausführen und ohne Hardware simulieren können. Auf der MCP-Seite gibt es außerdem Laden / Aufzählen / Entladen von Makropaketen im Speicher sowie plan und run. Echtes macro run oder write/read bedient einen echten Port; zuerst die Leitung prüfen.

Grenzen

0.3.0 hat Quick aus der öffentlichen API genommen; Nutzung im Quick-Stil als Makros schreiben. Nicht weiter nach einer Quick-Schnittstelle suchen.

Die Standard-Beispieldaten für write sind H, plus --read --timeout-ms 1000 --json; das sendet Daten an den Port. Timeout- und Baud-Auszüge zeigen nur 115200 und 1000 ms; das sind keine sicheren Standardwerte für jedes Gerät.

Kein GUI und kein Cloud-Serial beschrieben. MCP ist stdio. Kein Client namentlich genannt. Makros lassen sich zuerst simulieren, aber run kann den Gerätezustand trotzdem ändern. Fehlen Rechte oder ein Treiber, scheitern Hardwarebefehle.