ignition-mcp-server
ignition-mcp-server
Das erste KI-gestützte Entwicklungstool für Ignition SCADA – ein MCP-Server, der jedem KI-Agenten ermöglicht, Ihre Ignition-Projekte und Gateways zu lesen, zu verstehen und mit ihnen zu interagieren.
[!NOTE] Dieser Connector ist frühe Community-Software von Nodeblue. Das vollständige System ist Nexus, unsere industrielle Intelligenzplattform – diese Repos sind nur ihre Konnektor-Ebenen.
Nexus liest und analysiert Ihren gesamten Betrieb: SPS-Logik, SCADA-Systeme, Live-Controller-Daten, Dokumentation, Störhistorie und MES/ERP-Aufzeichnungen. Es funktioniert herstellerübergreifend – Rockwell, Siemens, Ignition, die CODESYS-Familie und 500+ weitere Marken über PLCopen. Es diagnostiziert Störungen an der laufenden Linie, behält eine dauerhafte Erinnerung an den Betrieb und antwortet in einfachem Englisch, mit Quellenangabe.
Die Nodeblue-Open-Source-Konnektoren
Konnektor | Funktion |
Rockwell/Allen-Bradley Studio 5000 – L5X-Exporte parsen: Tags, UDTs, Routinen, AOIs, Querverweise | |
ignition-mcp-server (dieses Repo) | Ignition SCADA – Views, Skripte, Tags, UDTs, Alarme, Live-Gateway-Lesen/Schreiben |
Korreliert Ignition-SCADA-Tags mit Studio-5000-SPS-Logik über den gesamten Prozess |
Was dieses Tool tut
ignition-mcp-server verbindet KI-Agenten (Claude, GPT, lokale LLMs) über das Model Context Protocol mit Ihren Ignition-SCADA-Projekten. Es gibt der KI strukturierten Zugriff auf:
Tags – Tag-Hierarchien durchsuchen, nach Ordnerpfad filtern, Datentypen und Werte anzeigen
Perspective Views – Komponentenbäume, Bindungen, Ereignisbehandlungen (Event Handler) und Stile lesen
Skripte – Projektbibliotheksskripte und Gateway-Ereignisskripte mit Gültigkeitsbereich (Scope) lesen
UDTs – Definitionen benutzerdefinierter Typen (User Defined Types) mit Mitgliederdetails auflisten und untersuchen
Alarm-Pipelines – Alarmbenachrichtigungskonfigurationen mit Stufen, Profilen und Übergängen lesen
Benannte Abfragen – SQL-Abfragedefinitionen mit Parametern, Datenbankzielen und Typen lesen
Live-Tag-Lesen/Schreiben – Tag-Werte auf einem laufenden Ignition-Gateway über WebDev lesen; Schreiben ist optional (
--enable-writes)Skriptausführung – Python-Skripte im Gateway-Bereich (Gateway Scope) auf dem Gateway ausführen (optional,
--enable-writes)Tag-Verlauf – historische Tag-Daten mit Zeitbereichsfilter abfragen
Funktioniert sowohl mit Ignition-8.1+-Projektexporten (.zip-Dateien) als auch mit dateisystembasierten Projekten ab 8.3+ (direkter Zugriff auf Verzeichnisse).
Related MCP server: ignition-mcp
Warum es dieses Tool gibt
Ignition hat rund 300.000+ Installationen weltweit und null KI-Tools – kein Hersteller-Copilot, keine Drittanbieter-Tools, keine akademische Forschung. Jede andere große Automatisierungsplattform (Siemens, Rockwell, Schneider) hat KI-Assistenten. Ignition hat nichts.
Dieser Server schließt diese Lücke. Er ist Open Source, agentenunabhängig und arbeitet offline.
Entwickelt und gepflegt von Nodeblue. Diese Konnektoren sind frühe Community-Software aus unserer Arbeit an Nexus, wo diese Fähigkeit in Produktionsqualität ausgeliefert wird – zusammen mit herstellerübergreifender Korrelation, Live-Störungsdiagnose und einer dauerhaften Erinnerung an den Betrieb.
Installation
pip install ignition-mcp-serverErfordert Python 3.10+.
Um stattdessen aus dem Quellcode zu installieren:
git clone https://github.com/nodeblue-ai/ignition-mcp-server.git
cd ignition-mcp-server
pip install .Schnellstart
stdio (lokal – kiro-cli, Claude Desktop, Claude Code)
ignition-mcp-serverSSE (remote – Server auf einem Rechner, Agent auf einem anderen)
ignition-mcp-server --transport sse --port 8080Mit Live-Gateway-Verbindung
ignition-mcp-server --gateway-url https://my-gateway:8088 --gateway-username admin --gateway-password changemeDies aktiviert die schreibgeschützten Live-Tools: read_tag und get_history. Erfordert das WebDev-Modul auf dem Gateway mit konfigurierten API-Endpunkten (siehe Gateway-Einrichtung unten).
[!WARNING] Live-Schreibzugriffe sind standardmäßig deaktiviert.
write_tagundexecute_scriptkönnen Werte auf einem laufenden SCADA-System ändern und echte Anlagen betätigen. Um sie zu aktivieren, müssen Sie ausdrücklich mit--enable-writeszustimmen:ignition-mcp-server --gateway-url https://my-gateway:8088 --enable-writesVerwenden Sie dies nur gegen Nicht-Produktions-Gateways oder wenn Sie vollständig verstehen, was der verbundene KI-Agent berühren darf. Gesteuerte, protokollierte und von Menschen genehmigte Live-Schreibzugriffe sind Teil von Nexus.
Konfiguration
kiro-cli
Fügen Sie Folgendes zu Ihrer ~/.kiro/settings.json hinzu:
{
"mcpServers": {
"ignition": {
"command": "ignition-mcp-server",
"args": []
}
}
}Mit Live-Gateway-Zugriff:
{
"mcpServers": {
"ignition": {
"command": "ignition-mcp-server",
"args": ["--gateway-url", "https://my-gateway:8088"]
}
}
}Claude Desktop
Fügen Sie Folgendes zu Ihrer Claude-Desktop-MCP-Konfiguration hinzu:
{
"mcpServers": {
"ignition": {
"command": "ignition-mcp-server",
"args": []
}
}
}SSE (remote)
Starten Sie den Server auf Ihrer Engineering-Workstation:
ignition-mcp-server --transport sse --host 0.0.0.0 --port 8080Verbinden Sie sich von jedem MCP-Client aus über die SSE-URL: http://<host>:8080/sse
Verfügbare Tools
ping
Health-Check. Gibt "pong" zurück.
get_tags(project_path, tag_path?, provider?)
Tags im Projekt durchsuchen. Optional nach Ordnerpfad und Tag-Provider filtern.
get_tags("/path/to/project", "Conveyors/Line1")
get_tags("/path/to/project", "", "edge")Gibt Tag-Namen, Typen, Datentypen, Werte und Dokumentation zurück.
list_tag_providers(project_path)
Alle Tag-Provider-Namen im Projekt auflisten (z. B. default, edge, MQTT).
list_views(project_path)
Alle Perspective-View-Pfade im Projekt auflisten.
get_view(project_path, view_path)
Den Komponentenbaum einer Perspective-View mit Bindungen und Ereignissen abrufen.
get_view("/path/to/project", "Overview")Gibt Komponentenhierarchie, Eigenschaftsbindungen und Event-Handler-Anzahl zurück.
list_scripts(project_path)
Alle Skripte mit ihrem Gültigkeitsbereich (Gateway, Client, alle) auflisten.
get_script(project_path, script_path)
Den Quellcode eines Projektskripts abrufen.
get_script("/path/to/project", "ignition/script-python/utils")list_udts(project_path)
Alle Namen der UDT-Definitionen (User Defined Type) auflisten.
get_udt(project_path, udt_name?)
UDT-Definition(en) mit Mitgliederdetails, Parametern und Dokumentation abrufen.
get_udt("/path/to/project", "Motor_UDT")list_alarms(project_path)
Alle Alarm-Pipeline-Namen im Projekt auflisten.
get_alarm(project_path, pipeline_name)
Die Konfiguration einer Alarm-Pipeline einschließlich Stufen, Benachrichtigungsprofilen und Übergängen abrufen.
get_alarm("/path/to/project", "MainAlarmPipeline")Gibt Pipeline-Stufen mit Typ (Verzögerung, Benachrichtigung), Namen der Benachrichtigungsprofile, Kontaktinformationen, Konsolidierungszeiträume und Übergangszahlen zurück.
list_named_queries(project_path)
Alle Namen der benannten Abfragen (Named Queries) im Projekt auflisten.
get_named_query(project_path, query_name)
SQL, Parameter, Datenbankverbindung und Typ (Query vs. Update) einer benannten Abfrage abrufen.
get_named_query("/path/to/project", "GetActiveFaults")Gibt den SQL-Text, Parameterdefinitionen mit Datentypen und Standardwerten, Zieldatenbank und Beschreibung zurück.
read_tag(tag_path)
Den aktuellen Wert eines oder mehrerer Tags von einem Live-Gateway lesen. Für mehrere Tags durch Komma trennen.
read_tag("[default]Conveyors/Line1/Speed")
read_tag("[default]Conveyors/Line1/Speed, [default]Conveyors/Line1/Running")Erfordert --gateway-url beim Start.
write_tag(tag_path, value)
Schreibt einen Wert auf ein Tag auf einem Live-Gateway. Übernimmt die boolesche/numerische Umwandlung automatisch.
write_tag("[default]Conveyors/Line1/Speed", "1800")Standardmäßig deaktiviert. Erfordert --gateway-url und --enable-writes beim Start.
execute_script(code)
Ein Python-Skript auf dem Ignition-Gateway im Gateway-Bereich ausführen.
execute_script("system.tag.readBlocking(['[default]Conveyors/Line1/Speed'])")Standardmäßig deaktiviert. Erfordert --gateway-url und --enable-writes beim Start.
get_history(tag_path, start, end)
Historische Tag-Daten vom Historian des Gateways abfragen.
get_history("[default]Conveyors/Line1/Speed", "2026-04-12T00:00:00Z", "2026-04-12T12:00:00Z")Erfordert --gateway-url beim Start.
Unterstützte Projektformate
Format | Verwendung |
Projektverzeichnis (8.1+ oder 8.3+) | Zeigen Sie |
Projektexport ( | Zeigen Sie |
8.3-Dateisystem | Zeigen Sie auf |
Beispielkonversation
You: What tags are under the Conveyors folder?
Agent calls: get_tags("/projects/MyPlant", "Conveyors")
Agent: The Conveyors folder contains 2 items:
- Line1 (Folder) — 3 child tags: Running (Boolean), Speed (Float4), Faulted (Boolean)
- Line2_Motor (UDT Instance) — type: Motor_UDT
You: What does the Motor_UDT look like?
Agent calls: get_udt("/projects/MyPlant", "Motor_UDT")
Agent: Motor_UDT has 3 members:
- Running (Boolean) — Motor running status
- Faulted (Boolean) — Motor fault status
- Speed_RPM (Float4) — Motor speed in RPM
Parameters: MotorName (String)
You: Show me the Overview view
Agent calls: get_view("/projects/MyPlant", "Overview")
Agent: The Overview view has a flex container with 3 children:
1. titleLabel (ia.display.label) — bound to view.params.title
2. speedDisplay (ia.display.led-display) — bound to tag [default]Conveyors/Line1/Speed
3. startButton (ia.input.button) — has 1 onClick event handlerGateway-Einrichtung
Die Live-Tools (read_tag, write_tag, execute_script, get_history) erfordern das WebDev-Modul auf Ihrem Ignition-Gateway mit den folgenden REST-Endpunkten:
Endpunkt | Methode | Zweck |
| POST | Tag-Werte lesen |
| POST | Tag-Werte schreiben |
| POST | Gateway-Skripte ausführen |
| POST | Tag-Verlauf abfragen |
Beispiel einer WebDev-Python-Ressource für /api/tags/read:
def doPost(request, session):
import json
body = json.loads(request["data"])
paths = body.get("tagPaths", [])
values = system.tag.readBlocking(paths)
return {
"json": [
{"path": str(v.path), "value": v.value, "quality": str(v.quality)}
for v in values
]
}Vollständige Einrichtungsanweisungen finden Sie in der Ignition-WebDev-Dokumentation.
Roadmap
v0.2 – Alarme & benannte Abfragen ✅
list_alarms/get_alarm– Alarm-Pipeline-Konfigurationen parsenlist_named_queries/get_named_query– SQL-Named-Queries mit Parametern parsen
v0.3 – Live-Gateway-Interaktion ✅
read_tag(tag_path)/write_tag(tag_path, value)– Live-Tag-Interaktion über das Ignition-WebDev-Modulexecute_script(code)– Skripte auf dem Gateway ausführenget_history(tag_path, start, end)– Tag-Verlauf abfragen
v0.4 – Plattformübergreifende Intelligenz ✅
Ignition-Tags mit Studio-5000-L5X-SPS-Logik per bridge-mcp-server verknüpfen
"Dieser Alarm wird ausgelöst, wenn Tag X auf true geht – hier ist die SPS-Logik, die X antreibt"
OPC-Item-Pfad-Extraktion (
opcItemPath,opcServer) in Tag-Zusammenfassungen
v0.5 – Schreibschutz-Gate ✅
write_tag/execute_scriptstandardmäßig deaktiviert – Opt-in mit--enable-writesSicherheitswarnungen in Tool-Beschreibungen und CLI-Hilfe
Wartung
PyPI-Veröffentlichung (
pip install ignition-mcp-server)Unterstützung neuer Ignition-Versionsformate, sobald Releases erscheinen
Fehlerbehebungen und Randfälle aus echten Projektexporten – Issues willkommen
Dieser Connector ist für seinen Zweck funktionsvollständig: Verständnis einzelner Projekte plus Gateway-Konnektivität. Die Entwicklung über diesen Zweck hinaus findet in Nexus statt.
Dieser Connector vs. Nexus
Der Connector ist die Zugriffsebene. Nexus ist die Intelligenz, die darauf sitzt – und auf jedem anderen Connector – als ein System.
Funktion | Dieser Konnektor | Nexus |
Ignition-Projekte parsen (Tags, Ansichten, Skripte, UDTs, Alarme, Abfragen) | ✅ | ✅ |
Live-Gateway-Lesen / Historie | ✅ | ✅ |
Live-Schreibvorgänge | ⚠️ Opt-in-Flag, ungeprüft | ✅ abgesichert, auditiert, von Menschen genehmigt |
Herstellerübergreifend: Rockwell, Siemens, CODESYS-Familie (500+ Marken), OPC UA | — | ✅ |
Live-Fehlerdiagnose an der laufenden Linie (Ursachenanalyse, mit Quellenangabe) | — | ✅ |
Wissensebene: Ihre Handbücher, SFS/DOO-Dokumente, Fehlerhistorie — durchsuchbar, mit Logik verknüpft | — | ✅ |
Dauerhaftes Gedächtnis des Betriebs über Sitzungen hinweg | — | ✅ |
Skriptgenerierung, View-Scaffolding, Codegenerierung | — | ✅ |
Flottenmaßstab: automatische Erkennung, Gesamtanlageninventar, Überwachung, Alarmierung | — | ✅ |
Lokales LLM / Air-Gapped-Bereitstellung | — | ✅ |
Wenn Sie diesen Konnektor für mehr als ein einzelnes Projekt auf einem einzelnen Gateway evaluieren, sprechen Sie mit uns über Nexus.
Entwicklung
git clone https://github.com/nodeblue-ai/ignition-mcp-server.git
cd ignition-mcp-server
pip install -e .
pip install pytest
pytest tests/ -vProjektstruktur
src/ignition_mcp_server/
├── __init__.py
├── __main__.py # CLI entry point (stdio/SSE, gateway config)
├── server.py # FastMCP server with all 17 tool definitions
├── project_source.py # Read from .zip or directory (LRU-cached)
├── gateway_client.py # HTTP client for live Ignition WebDev API
└── parsers/
├── tags.py # Tag hierarchy parser (multi-provider)
├── views.py # Perspective view parser
├── scripts.py # Script discovery and reader
├── udts.py # UDT definition parser
├── alarms.py # Alarm pipeline parser
└── named_queries.py # Named query parser
tests/
├── test_server.py # 59 tests — parsers, project sources, error handling
├── test_gateway.py # 18 tests — live gateway tools + write gating with mock HTTP server
└── fixtures/
├── sample-project/ # Synthetic Ignition project (directory)
└── sample-project.zipMitwirken
Beiträge sind willkommen. Dies ist ein Open-Source-Projekt unter der MIT-Lizenz.
Wenn Sie echte Ignition-Projektexporte teilen können (oder anonymisierte Versionen), sind diese besonders wertvoll, um Grenzfälle zu testen.
Lizenz
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityAmaintenanceMCP server that connects AI assistants to Siemens TIA Portal via the Openness API. AI-assisted PLC programming, project management, hardware configuration, cross-reference analysis, and deployment. 16 tools, 166 actions.27
- AlicenseCqualityCmaintenanceMCP server for Inductive Automation Ignition, enabling AI assistants to browse and write tags, query history and alarms, manage projects, and deploy Perspective views through natural language.431MIT
- AlicenseAqualityAmaintenanceAn MCP server that turns AI assistants into competent Festo/CODESYS PLC engineers by grounding them in curated, manufacturer-accurate knowledge and forcing every artifact through a machine-checked validation pipeline for CODESYS import.18451MIT
- FlicenseBqualityBmaintenanceUniversal MCP server for industrial PLC communication, enabling AI agents to read sensors, alarms, status, setpoints, and write setpoints via adapters for Modbus, S7, or custom PLCs.6
Related MCP Connectors
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Nodeblue-AI/ignition-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server