{"id":1685,"date":"2025-08-04T11:53:35","date_gmt":"2025-08-04T11:53:35","guid":{"rendered":"https:\/\/mbf-s.de\/?page_id=1685"},"modified":"2025-08-04T13:49:12","modified_gmt":"2025-08-04T13:49:12","slug":"chatbot","status":"publish","type":"page","link":"https:\/\/mbf-s.de\/?page_id=1685","title":{"rendered":"Chatbot"},"content":{"rendered":"<h3>Chatbot (KI) kommuniziert mit der Modellbahn<\/h3>\n<p>&nbsp;<\/p>\n<h5 data-start=\"479\" data-end=\"561\">Kommunikation zwischen Rocrail und Chatbot (Claude Desktop) mit einem Python-basierten MCP-Server \u00fcber MQTT.<\/h5>\n<p data-start=\"563\" data-end=\"1044\">In dieser Architektur \u00fcbernimmt die Modellbahnsteuerungssoftware <strong data-start=\"628\" data-end=\"639\">Rocrail<\/strong> die zentrale Steuerung einer Modellbahnanlage, w\u00e4hrend ein <strong data-start=\"699\" data-end=\"718\">Python-Programm<\/strong> \u2013 ausgef\u00fchrt unter <strong data-start=\"738\" data-end=\"756\">Claude Desktop<\/strong> \u2013 als <strong data-start=\"763\" data-end=\"777\">MCP-Server<\/strong> fungiert. Die Kommunikation zwischen Rocrail und dem Python-Programm erfolgt \u00fcber das <strong data-start=\"864\" data-end=\"882\">MQTT-Protokoll<\/strong>. Das Python-Programm \u00fcbersetzt MQTT-Nachrichten in <strong data-start=\"934\" data-end=\"951\">MCP-Kommandos<\/strong> und umgekehrt. Intern verwendet es die <strong data-start=\"991\" data-end=\"1002\">fastmcp<\/strong>-Bibliothek, um MCP-Prozesse zu verwalten.<\/p>\n<h5 data-start=\"1046\" data-end=\"1071\">Architektur\u00fcberblick<\/h5>\n<p data-start=\"1076\" data-end=\"1088\"><strong data-start=\"1076\" data-end=\"1087\">1. Rocrail<\/strong>:<\/p>\n<p data-start=\"1094\" data-end=\"1229\">Rocrail agiert als MQTT-Client und ver\u00f6ffentlicht sowie empf\u00e4ngt Nachrichten \u00fcber einen konfigurierbaren MQTT-Broker (z.\u202fB. Mosquitto).<\/p>\n<p data-start=\"1235\" data-end=\"1361\">\u00dcber MQTT kann Rocrail Befehle an externe Ger\u00e4te und Programme senden, z.\u202fB. um Weichen zu stellen oder R\u00fcckmelder abzufragen.<\/p>\n<p data-start=\"1484\" data-end=\"1523\"><strong data-start=\"1484\" data-end=\"1522\">2. Claude Desktop mit Python-Programm<\/strong>:<\/p>\n<p data-start=\"1529\" data-end=\"1609\">Das Python-Programm l\u00e4uft in einer isolierten Umgebung unter <strong data-start=\"1590\" data-end=\"1608\">Claude Desktop<\/strong>.<\/p>\n<p data-start=\"1615\" data-end=\"1697\">Es verbindet sich ebenfalls als MQTT-Client mit demselben MQTT-Broker wie Rocrail.<\/p>\n<p data-start=\"1703\" data-end=\"1821\">Innerhalb des Python-Programms ist die Bibliothek <strong data-start=\"1753\" data-end=\"1764\">fastmcp<\/strong> eingebunden, \u00fcber die ein <strong data-start=\"1791\" data-end=\"1805\">MCP-Server<\/strong> betrieben wird.<\/p>\n<p data-start=\"1826\" data-end=\"1859\"><strong data-start=\"1826\" data-end=\"1858\">3. fastmcp-basierter MCP-Server<\/strong>:<\/p>\n<p data-start=\"1865\" data-end=\"2029\">Das Python-Programm verwendet fastmcp, um eine eigene Steuerlogik (z.\u202fB. f\u00fcr Gleislogik, Aktoren, R\u00fcckmelder) gem\u00e4\u00df dem <strong data-start=\"1985\" data-end=\"2017\">Model Control Protocol (MCP)<\/strong> umzusetzen.<\/p>\n<p data-start=\"2035\" data-end=\"2160\">Die MQTT-Nachrichten von Rocrail werden dabei als Eingabesignale interpretiert, intern in MCP-Form \u00fcbersetzt und verarbeitet.<\/p>\n<p data-start=\"2166\" data-end=\"2290\">Antworten oder R\u00fcckmeldungen werden wieder \u00fcber MQTT an Rocrail gesendet, sodass eine wechselseitige Kommunikation entsteht.<\/p>\n<p data-start=\"2166\" data-end=\"2290\">Beispiel schalte Weiche sw2 auf rund:<\/p>\n<p data-start=\"2166\" data-end=\"2290\"><img decoding=\"async\" src=\"https:\/\/mbf-s.de\/wp-content\/uploads\/2025\/08\/2025-08-04-14_52_43-Window.png\" \/><\/p>\n<p data-start=\"2166\" data-end=\"2290\"><img decoding=\"async\" src=\"https:\/\/mbf-s.de\/wp-content\/uploads\/2025\/08\/2025-08-04-14_53_20-Window.png\" \/><\/p>\n<p data-start=\"2166\" data-end=\"2290\">Info \u00fcber Rocrail:<\/p>\n<p data-start=\"2166\" data-end=\"2290\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1689\" src=\"https:\/\/mbf-s.de\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-04-135818.png\" alt=\"\" width=\"992\" height=\"789\" srcset=\"https:\/\/mbf-s.de\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-04-135818.png 992w, https:\/\/mbf-s.de\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-04-135818-300x239.png 300w, https:\/\/mbf-s.de\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-04-135818-768x611.png 768w\" sizes=\"(max-width: 992px) 100vw, 992px\" \/><\/p>\n<p data-start=\"2166\" data-end=\"2290\">Python Programm:<\/p>\n<p data-start=\"2166\" data-end=\"2290\"><a href=\"https:\/\/mbf-s.de\/wp-content\/uploads\/2025\/08\/rocrail_mcp_mqtt_test.7z\">Rocrail MCP Server<\/a><\/p>\n<p data-start=\"2166\" data-end=\"2290\"><strong>Achtung dieses Python Programm ist noch nicht vollst\u00e4ndig getestet. Es wurde durch eine Ki automatisch erstellt <a href=\"https:\/\/wipecoding.com\/\">(Wipe Coding)<\/a>. Es zeigt lediglich was mit MCP m\u00f6glich ist und was nicht.<\/strong><\/p>\n<p>&nbsp;<cr><\/p>\n<p data-start=\"2166\" data-end=\"2290\"><code>claude_desktop_config.json<\/code><strong>:<\/strong><\/p>\n<p data-start=\"2166\" data-end=\"2290\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1709\" src=\"https:\/\/mbf-s.de\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-04-153717.png\" alt=\"\" width=\"687\" height=\"139\" srcset=\"https:\/\/mbf-s.de\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-04-153717.png 687w, https:\/\/mbf-s.de\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-04-153717-300x61.png 300w\" sizes=\"(max-width: 687px) 100vw, 687px\" \/><\/p>\n<p data-start=\"2166\" data-end=\"2290\">Links:<\/p>\n<ul>\n<li data-start=\"2166\" data-end=\"2290\"><a href=\"https:\/\/modelcontextprotocol.io\/quickstart\/user\">Claude Desktop MCP Server<\/a><\/li>\n<li data-start=\"2166\" data-end=\"2290\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Model_Context_Protocol\">MCP Wikipedia<\/a><\/li>\n<li data-start=\"2166\" data-end=\"2290\"><a href=\"https:\/\/gofastmcp.com\/getting-started\/welcome\">FastMCP<\/a><\/li>\n<li data-start=\"2166\" data-end=\"2290\"><a href=\"https:\/\/mosquitto.org\/\">MQTT Broker (z.B. Eclipse Mosquitto)<\/a><\/li>\n<li data-start=\"2166\" data-end=\"2290\"><a href=\"https:\/\/wiki.rocrail.net\/doku.php?id=rocrailini-service-de\">Rocrail MQTT<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chatbot (KI) kommuniziert mit der Modellbahn &nbsp; Kommunikation zwischen Rocrail und Chatbot (Claude Desktop) mit einem Python-basierten MCP-Server \u00fcber MQTT. In dieser Architektur \u00fcbernimmt die Modellbahnsteuerungssoftware Rocrail die zentrale Steuerung einer Modellbahnanlage, w\u00e4hrend ein Python-Programm \u2013 ausgef\u00fchrt unter Claude Desktop \u2013 als MCP-Server fungiert. Die Kommunikation zwischen Rocrail und dem Python-Programm erfolgt \u00fcber das MQTT-Protokoll. Das Python-Programm \u00fcbersetzt MQTT-Nachrichten in<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P8mm1C-rb","_links":{"self":[{"href":"https:\/\/mbf-s.de\/index.php?rest_route=\/wp\/v2\/pages\/1685"}],"collection":[{"href":"https:\/\/mbf-s.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mbf-s.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mbf-s.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mbf-s.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1685"}],"version-history":[{"count":21,"href":"https:\/\/mbf-s.de\/index.php?rest_route=\/wp\/v2\/pages\/1685\/revisions"}],"predecessor-version":[{"id":1716,"href":"https:\/\/mbf-s.de\/index.php?rest_route=\/wp\/v2\/pages\/1685\/revisions\/1716"}],"wp:attachment":[{"href":"https:\/\/mbf-s.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}