MCP (Echtzeit-Datengateway)
In der AI-Verwaltungskonsole unter MCP Gateway › Servers befindet sich die Zeile PlantPulse Platform (Art «Platform»).
Dort sehen Sie Status · Anzahl der Werkzeuge · letzte Erkennung und können mit Discover die Werkzeugliste erneut abrufen.
Diese Zeile ist über PP_API_URL · PP_API_TOKEN in der Installations-env angebunden, daher lassen sich Name und Adresse
im Bildschirm weder bearbeiten noch löschen (nur Ausschalten ist möglich), und die Plattformwerkzeuge sind von Anfang an alle aktiviert → MCP Gateway
Vor 2026.10 Re-Release (2026-10-20) befand sich diese Zeile in der Copilot-Verwaltungskonsole unter Werkzeugserver (MCP) (/admin/mcp). Dieser Bildschirm ist entfallen.
Überblick
Der PlantPulse Integrations-MCP ist ein MCP (Model Context Protocol) Datengateway, das der KI Zugriff auf alle Echtzeitdaten der PlantPulse-IIoT-Plattform ermöglicht.
Über schreibgeschützte Datenwerkzeuge stellt er der KI sämtliche Betriebsdaten der Anlage bereit: Werksstruktur, Sensordaten, Alarme, OEE, Arbeitsaufträge, Energie, Systemstatus und mehr. Auch die Ontologie-Werkzeuge (Wissensgraph) sind in diesem Integrations-MCP enthalten.
MCP (Model Context Protocol) ist ein von Anthropic vorgeschlagenes Standardprotokoll zur Anbindung von KI-Modellen an Datenquellen.
Umstellung 2026-07: Der Integrations-MCP wird nun über den Endpunkt /api/v5/mcp (api_key-Authentifizierung)
der PlantPulse-Plattform-server-web bereitgestellt. Die früheren eigenständigen Dienste
plantpulse-mcp-server (:50000) und plantpulse-ontology (:8888) wurden archiviert, und die Ontologie-Werkzeuge wurden in
den Integrations-MCP integriert. Das MCP Gateway entdeckt die Werkzeuge
dynamisch über tools/list und gibt sie an den Copilot (Fragen) weiter (2026.10 Re-Release (2026-10-20) — vorher entdeckte der Copilot sie selbst).
Abdeckbare Daten
Werksstruktur
Fragen Sie die gesamte Hierarchie Standort → Bereich → Linie → Anlage → Tag ab. Wird nur die Hierarchie benötigt, nutzen Sie den Anlagenbaum; benötigen Sie zusätzlich Konfigurationsüberblick und Tag-Anzahl, die Ontologie; für Wirkungsausbreitung den Beziehungsgraphen.
Bei Abfragen nach Namen findet search_domains zuerst die ID — es durchsucht 14 Domänen wie
Standort · Anlage · Tag · Auftrag · Benutzer anhand von Name, ID und Beschreibung per
Teilübereinstimmung.
Echtzeitwerte und Verlauf
- Massenabruf aktueller Tag-Werte (bis zu 100 auf einmal)
- Zeitverlauf eines Tags
- Vollständiger Tag-Snapshot einer Anlage — statt einzelner Tags wird der aktuelle Zustand auf Anlagenebene abgerufen
Alarme
- Alarmliste abrufen (Filter nach Zeitraum · Schweregrad)
- Diagnosepaket zur Alarmursache — bündelt zu einem Alarm zugehörige Tags und Zustandsänderungen
- Alarmbestätigung — das Werkzeug existiert, wird aber im Chat nicht ausgeführt (siehe unten „Freigabe-Gate“)
Produktionskennzahlen (OEE / RAM / EMS)
Die Abfrage erfolgt anlagenzentriert.
| Benötigt | Werkzeug |
|---|---|
| Eine Zeile pro Auftrag (welcher Auftrag war problematisch) | get_asset_kpi |
| Gesamten Zeitraum in einer Zeile (wie lief diese Woche) | get_asset_stats |
| Details eines einzelnen Auftrags | get_order_metrics |
Verhältniswerte wie OEE liegen nicht als Prozentangabe, sondern im Bereich 0–1 vor. Ein
im Bildschirm als 85 % angezeigter Wert erscheint in der Werkzeugantwort als 0.85.
Erfassungsstatus
Fragen Sie den Status und die Verlaufsdaten des Edge-Gateways sowie die Liste der OPC-Erfassungsverbindungen ab. Die Frage „Es kommen keine Daten an“ lässt sich meist hier beantworten.
Anlagendokumente
Fragen Sie die Liste der an eine Anlage angehängten Dokumente ab. Die inhaltliche Suche in Dokumenten ist nicht Aufgabe des MCP, sondern von RAG.
Bereitgestellte Werkzeuge (22)
Dies ist die vollständige Liste der vom Integrations-MCP bereitgestellten Werkzeuge. Da eine Erweiterung oder Reduzierung der Werkzeuganzahl die Contract-Tests der Plattform zum Scheitern bringt, entspricht diese Liste exakt dem tatsächlichen Bestand.
Zeit
| Werkzeug | Rückgabe |
|---|---|
get_current_time | Aktuelle Serverzeit — Referenz zur Interpretation relativer Zeitangaben ("gestern", "letzte Woche") |
Struktur — was befindet sich wo
| Werkzeug | Rückgabe |
|---|---|
search_domains | Entitätssuche (Name → ID-Auflösung) |
get_asset_tree | Anlagenhierarchiebaum |
get_ontology | Standort-Ontologieüberblick (Struktur + Tag-Anzahl pro Anlage) |
query_ontology | Navigation im Anlagen-Beziehungsgraphen (Wirkungsausbreitung) |
query_sparql | Ontologie-SPARQL-Abfrage |
get_asset_documents | Liste der an Anlagen angehängten Dokumente |
search_domainsDie meisten Werkzeuge erwarten eine ID. Da Benutzer Namen verwenden wie „Injektor Linie 3, Daejeon“,
löst die KI über search_domains zunächst die ID auf und ruft erst dann das eigentliche Werkzeug auf.
Kommt als Antwort „Anlage nicht gefunden“ zurück, weicht meist der Name vom in der
Plattform registrierten Namen ab.
Verbindung — läuft die Erfassung
| Werkzeug | Rückgabe |
|---|---|
get_edge_status | Edge-Gateway-Status |
get_edge_health_history | Edge-Gesundheitsverlauf (tagesweise Abschnitte) |
list_connections | Liste der OPC-Erfassungsverbindungen |
Daten — Tags
| Werkzeug | Rückgabe |
|---|---|
get_tag_values | Aktueller Tag-Wert |
get_tag_history | Zeitverlauf eines Tags |
Daten — Alarme
| Werkzeug | Rückgabe |
|---|---|
list_alarms | Alarmliste |
get_alarm_context | Diagnosepaket zur Alarmursache |
ack_alarm | Alarmbestätigung |
Daten — Anlage
| Werkzeug | Rückgabe |
|---|---|
get_asset_snapshot | Vollständiger Tag-Snapshot einer Anlage |
get_asset_timeline | Ereignis-Zeitachse einer Anlage |
get_asset_stats | Betriebswirtschaftliche Statistik einer Anlage über einen Zeitraum |
Produktion
| Werkzeug | Rückgabe |
|---|---|
list_orders | Liste der Arbeitsaufträge |
get_order_metrics | Arbeitsauftragsdetails · KPI |
get_asset_kpi | KPI je Anlage und Auftrag (OEE / EMS / RAM) |
Rollup
| Werkzeug | Rückgabe |
|---|---|
get_health | Gesundheits-Rollup der Anlagenhierarchie |
Von den 22 Werkzeugen ändert nur ack_alarm den Plattformzustand — es bestätigt Alarme.
Die übrigen 21 sind sämtlich schreibgeschützt. Es gibt kein Werkzeug, das Anlagen steuert
oder Einstellungen ändert.
Freigabe-Gate — zustandsändernde Werkzeuge laufen nicht im Chat
Copilot unterscheidet die von der KI aufgerufenen Werkzeuge in Abfragewerkzeuge und
Änderungswerkzeuge. Der Plattform-Integrations-MCP teilt für jedes Werkzeug selbst
mit, ob es „nur lesend“ ist, und meldet ack_alarm als Änderungswerkzeug.
Änderungswerkzeuge werden ohne Freigabe nicht ausgeführt (Standardverhalten). Im Bereich Fragen gibt es jedoch keine Schaltfläche, um solche Werkzeuge direkt vor Ort freizugeben. Wenn Sie im Chat also sagen „Bestätige diesen Alarm“, wird der Alarm nicht bestätigt:
- Klappen Sie die Werkzeugzeile über der Antwort auf („N Werkzeuge verwendet · N Sek.“), bleibt dieser Aufruf als fehlgeschlagen stehen, und
- die KI erhält eine Ablehnung „Dieses Werkzeug kann im Chat nicht direkt ausgeführt werden … öffnen Sie im Vorschlagsbildschirm den entsprechenden Incident und führen Sie ihn über die Aktionsschaltfläche aus“ und gibt diese unverändert als Hinweis weiter.
Für Alarm- bzw. Incident-Maßnahmen gibt es im Incident-Detail der Vorschläge einen eigenen Weg, der von einem Menschen ausgelöst wird. Dies ist unabhängig von diesem Gate. Auch die Aktionskarte unter der Antwort im Bereich Fragen (ein Entwurf in einem anderen System) ist ein von diesem Gate getrennter Weg → Fragen — Aktionskarte
| Einstellung | Bedeutung | Standard |
|---|---|---|
copilot.agent.tools.approval.enabled (CO_AGENT_TOOL_APPROVAL_ENABLED) | Freigabe-Gate für Änderungswerkzeuge | true |
copilot.agent.tools.readonly (CO_AGENT_TOOLS_READONLY) | Namensliste (Glob) für Werkzeuge, die sich selbst nicht als Abfragewerkzeug melden | Abfrageverben wie get_* · list_* · search_* |
Auch bei deaktiviertem Gate werden sämtliche Werkzeugaufrufe im Hauptbuch (agent_tool_call_log)
festgehalten — wer · wann · welches Werkzeug · mit welchen Argumenten (vertrauliche
Werte maskiert) · mit welchem Ergebnis (Erfolg · Fehler · Ablehnung). Diese Aufzeichnung
lässt sich nicht abschalten → Datenbankmodell
Wichtige Einstellungen
Da der Integrations-MCP von der Plattform server-web bereitgestellt wird, verwaltet Copilot
(copliot-web) nur die clientseitigen Verbindungseinstellungen.
| Punkt | Beschreibung | Standard |
|---|---|---|
platform.api.url (CO_PLATFORM_API_URL) | Basis-URL der Plattform-server-web — hierüber läuft auch der Integrations-MCP | (bei Installation festgelegt) |
platform.api.token (CO_PLATFORM_API_TOKEN) | Authentifizierungstoken (api_key) der Plattform | (bei Installation festgelegt) |
mcp.tools.enabled (CO_MCP_TOOLS_ENABLED) | Nutzung der Integrations-MCP-Werkzeuge | true |
Die alten Namen mcp.api.url · mcp.api.token existieren nicht mehr — werden sie dennoch angegeben,
passiert nichts. Sind URL oder Token leer, fehlen die Plattformwerkzeuge im Chat.
Das Präfix der Umgebungsvariablen wurde 2026.10 von CH_ zu CO_ geändert. Der alte
Name CH_* wird nicht mehr gelesen → Konfiguration
Der Endpunkt lautet <platform.api.url>/api/v5/mcp und kommuniziert nach dem Verfahren JSON-RPC 2.0 (tools/list · tools/call).
Serverseitige Richtlinien wie Paginierung und Zeitraum der Alarmabfrage richten sich nach
der Konfiguration der Plattform-server-web.
Merkmale
Vollständige Datenabdeckung
Sämtliche für den Werksbetrieb benötigten Datendomänen werden über einen einzigen MCP bereitgestellt. Abfragen sind hierarchisch möglich — von rohen Sensordaten bis zu aggregierten KPIs.
Eng begrenzter Schreibbereich
Alle Datenabfragewerkzeuge sind schreibgeschützt; das einzige zustandsändernde Werkzeug
ist die Alarmbestätigung (ack_alarm). Da es keinerlei Mittel zur Anlagensteuerung oder
Konfigurationsänderung gibt, kann die KI angebunden werden, ohne dass ein Eingriffsrisiko
in den Prozess besteht.
MCP-Standardprotokoll
Es wird der Anthropic-MCP-Standard eingehalten. Unterstützt werden HTTP-POST-Kommunikation auf Basis von JSON-RPC 2.0 sowie Eingabevalidierung auf Basis von JSON Schema.
Zeitzone des Servers maßgeblich
Zeitangaben werden gemäß der Zeitzone des Plattformservers interpretiert. get_current_time liefert
zusätzlich den Namen dieser Zeitzone (z. B. Asia/Seoul), und das Suffixfeld _iso stellt ein
menschenlesbares Zeitformat bereit.