Chatbot

Chatbot (KI) kommuniziert mit der Modellbahn

 

Kommunikation zwischen Rocrail und Chatbot (Claude Desktop) mit einem Python-basierten MCP-Server über MQTT.

In dieser Architektur übernimmt die Modellbahnsteuerungssoftware Rocrail die zentrale Steuerung einer Modellbahnanlage, während ein Python-Programm – ausgeführt unter Claude Desktop – als MCP-Server fungiert. Die Kommunikation zwischen Rocrail und dem Python-Programm erfolgt über das MQTT-Protokoll. Das Python-Programm übersetzt MQTT-Nachrichten in MCP-Kommandos und umgekehrt. Intern verwendet es die fastmcp-Bibliothek, um MCP-Prozesse zu verwalten.

Architekturüberblick

1. Rocrail:

Rocrail agiert als MQTT-Client und veröffentlicht sowie empfängt Nachrichten über einen konfigurierbaren MQTT-Broker (z. B. Mosquitto).

Über MQTT kann Rocrail Befehle an externe Geräte und Programme senden, z. B. um Weichen zu stellen oder Rückmelder abzufragen.

2. Claude Desktop mit Python-Programm:

Das Python-Programm läuft in einer isolierten Umgebung unter Claude Desktop.

Es verbindet sich ebenfalls als MQTT-Client mit demselben MQTT-Broker wie Rocrail.

Innerhalb des Python-Programms ist die Bibliothek fastmcp eingebunden, über die ein MCP-Server betrieben wird.

3. fastmcp-basierter MCP-Server:

Das Python-Programm verwendet fastmcp, um eine eigene Steuerlogik (z. B. für Gleislogik, Aktoren, Rückmelder) gemäß dem Model Control Protocol (MCP) umzusetzen.

Die MQTT-Nachrichten von Rocrail werden dabei als Eingabesignale interpretiert, intern in MCP-Form übersetzt und verarbeitet.

Antworten oder Rückmeldungen werden wieder über MQTT an Rocrail gesendet, sodass eine wechselseitige Kommunikation entsteht.

Beispiel schalte Weiche sw2 auf rund:

Info über Rocrail:

Python Programm:

Rocrail MCP Server

Achtung dieses Python Programm ist noch nicht vollständig getestet. Es wurde durch eine Ki automatisch erstellt (Wipe Coding). Es zeigt lediglich was mit MCP möglich ist und was nicht.

 

claude_desktop_config.json:

Links: