[Vorstellung] IPS Automation MCP Server – Claude (KI)

Hallo zusammen,

ich möchte euch ein kleines Open-Source-Projekt vorstellen, das ich gemeinsam mit Claude (dem KI-Assistenten von Anthropic) gebaut habe: einen MCP-Server für IP-Symcon.

Worum geht’s?

Das Model Context Protocol (MCP) ist eine offene Schnittstelle, über die KI-Assistenten wie Claude mit externen Systemen sprechen können. Mein Server hängt Claude direkt an die JSON-RPC API von IP-Symcon (Port 3777).

Das Ergebnis: Claude kann eigenständig

  • meine vorhandenen PHP-Skripte auflisten, lesen und analysieren,

  • sie optimieren und die verbesserte Version zurückschreiben,

  • komplett neue Automationen erstellen (passende Objekt-/Variablen-IDs sucht es sich selbst),

  • Skripte ausführen und bei Fehlern direkt ins Statusprotokoll schauen, um sie zu beheben.

Die Skript-Entwicklung wird damit zum Dialog: „Lies mein Poolpumpen-Skript und optimiere die Überschuss-Logik" – und Claude macht den Rest, inklusive Test.

Wichtig: kein zusätzliches Modul nötig

Der Server spricht direkt die native JSON-RPC API an. Es muss nichts in IP-Symcon installiert werden – lediglich der Fernzugriff muss aktiviert sein (Einstellungen → Fernzugriff). Der Server selbst läuft als kleiner Node.js-Prozess auf dem PC, auf dem auch Claude Desktop läuft.

Verfügbare Funktionen (13 Tools)

  • Skripte: auflisten, lesen, schreiben, neu erstellen, ausführen, löschen, PHP direkt testen

  • Objekte/Variablen: suchen, lesen, setzen, Objektbaum navigieren

  • System: Version/Laufzeit abfragen, Fehlerlog lesen

Eingebaute Sicherheitsnetze: script_write prüft vorher, ob die Ziel-ID wirklich ein Skript ist (kein versehentliches Überschreiben), script_create macht bei Teilfehlern ein Rollback, und php_eval räumt seine temporären Skripte selbst wieder auf.

Technik

  • TypeScript + offizielles MCP SDK

  • Kommunikation per stdio mit Claude Desktop, per JSON-RPC 2.0 mit IPS

  • läuft auf Windows/macOS/Linux

GitHub

Code, ausführliche Installationsanleitung und ein Verbindungstest-Skript:

:backhand_index_pointing_right: https://github.com/badfrog18/ips-automation-mcp

Die Einrichtung ist in wenigen Minuten erledigt (Fernzugriff aktivieren → npm install → Zugangsdaten in die Claude-Config → fertig). Ein mitgeliefertes Test-Skript prüft die Verbindung, bevor man Claude startet.

Sicherheitshinweis & Haftungsausschluss

Der Server hat vollen Schreib-/Ausführungszugriff auf die Skripte. Vor produktivem Einsatz empfehle ich dringend ein Backup. Die Zugangsdaten liegen lokal in der Claude-Konfiguration und werden nie ins Repo committet.

Die Nutzung erfolgt auf eigene Gefahr. Ich übernehme keinerlei Haftung für Schäden, Datenverluste oder Fehlfunktionen, die aus der Nutzung entstehen. Da Claude eigenständig Skripte ändern und löschen kann, prüft jeder Änderungen bitte selbst und auf eigene Verantwortung.

Über Feedback, Verbesserungsvorschläge und Pull Requests freue ich mich!

Viele Grüße Manuel

2 „Gefällt mir“

Servus,

finde ich echt klasse.
Mein Feedback dazu.
leider hackt es ein wenig, es gibt immer ein Problem mit “Object_search”. Da kommt die Meldung Failed to call tool “Object_Search”.
Es liefert auch oft das der MCP Server nicht reagiert.
Von der Auslastung des IPS Servers lässt sich das so nicht festmachen.
Version ist die 8.1 auf Raspi
Was aber schon möglich wäre, das es ein Thema der IPS größe ist.
Ich habe 10529 Objekte, 5093 Variablen, 740 Scripte, 1327 Instanzen, 996 Kategorien usw..
DB Size knapp 21,5 GB!

PC, naja nicht mehr der schnellste, aber der Taskmanger liefert auch nichts brauchbares.

Danke

Christian

Servus,

danke für das super Feedback.

Das lag tatsächlich nicht an deiner Hardware, sondern an meiner ineffizienten Suche: Sie hat bei jeder Abfrage jedes Objekt einzeln abgefragt. Bei deinen 10.500 Objekten waren das über zehntausend Einzelanfragen pro Suche → Timeout.

Ich habe die Suche jetzt so umgebaut, dass sie komplett serverseitig in IPS läuft (ein einziger Aufruf statt tausender). Läuft jetzt auch bei großen Systemen in wenigen Sekunden. Update ist die Version 2.2.0 auf GitHub – einfach neu ziehen und npm run build.

Falls dein Raspi generell langsam ist, kannst du zusätzlich IPS_TIMEOUT in der Config hochsetzen. Sag gern Bescheid, ob’s jetzt rundläuft!

LG Manuel

Hier wurden schon einmal mehrere verschiedene Symcon MCP Server implementationen besprochen: [Modul] Symcon-MCP-Server

Darin gibt es ebenfalls alternative API basierte Lösungen ohne Modul

Servus,

den habe ich wohl übersehen.

Ein Modul ist bei meinen auch nicht nötig.

Ich wollte den Sever nur mit der Community teilen, vl kann den ja der eine oder andere gebrauchen.

LG

Manuel

1 „Gefällt mir“

ja, ist ja auch super, das Du Dir so viele Gedanken darum gemacht hast und diese auch mit uns teilen wolltest. Ich wollte das nur mit den anderen Thread verbinden für diejenigen, die damals das nicht gelesen haben. Entscheiden kann dann jeder selber, welche Lösung am Besten passt

mir ist klar, dass MCP Server der Königsweg ist, aber ich habe Bedenken, dass die KI durch den umfassenden Zugriff plötzlich Dinge umsetzt, die ich gar nicht so haben wollte, mein gesamtes Symcon zerschießt und ich langsam auch den Überblick verliere, weil immer mehr durch KI erzeugt wird.

Daher habe ich das ohne MCP Server aber dennoch einigermaßen komfortabel gelöst:

Ich habe Claude ein Symcon Script schreiben lassen, das 3 CSV Dateien erzeugt: alle Variablen, alle Scripte und alle Ereignisse. Dieses Script starte ich immer auf Symcon (Mgmt-Console). Dann habe ich ein zweites Script auf meinem Mac, das alle Scripte und die 3 CSV Dateien per rsync auf meinen Mac kopiert. Claude kennt dieses Vorgehen (einmal beschrieben) und wenn ich jetzt eine neue Aufgabe habe, dann liest Claude die Scripte und csvs und erzeugt oder ändert ein Script. Geänderte Scripte kommen in ein separates Verzeichnis (das am Ende des rsync Jobs gelöscht wird). Das geänderte Script kopiere ich dann per Copy/Paste in das Script in der Management Console und schaue da auch nochmal drüber.

Das funktioniert sehr gut. Aber klar, es ist noch (minimaler) manueller Aufwand notwendig.

Ich habe Claude übrigens nur mit diesen Infos auch eine HTML Datei erzeugen lassen, die mir einen Überblick über alle meine Automationen gibt. Hat super geklappt.

Bestimmt habt ihr auch noch gute Ideen und ich bin gespannt, was ich bei obigen Vorgehen noch verbessern könnte (Script sync in die andere Richtung - nach symcon habe ich absichtlich nicht haben wollen).

Eigentlich stören nur noch 2 Dinge:

Wenn ich eine neue Variable anlegen muss, muss ich den Export+Sync starten und wenn ich ein Ereignis mit einem Script verknüpfen will, muss ich das manuell anlegen. Aber das ist für mich ok, da ich wie oben geschrieben, dadurch immer selbst die Kontrolle und auch Übersicht über Symcon behalte