Skip to Content

MCP Integration

@5minds/node-red-contrib-processcube-mcp — 15 Nodes für die Integration von ProcessCube® mit AI-Modellen über das Model Context Protocol (MCP).

Überblick

Das MCP-Package stellt ProcessCube®-Funktionen als AI-Tools bereit. AI-Assistenten können darüber Workflows starten, UserTasks verwalten und benutzerdefinierte Tools aufrufen. Die Nodes implementieren das Model Context Protocol  mit OAuth2-Authentifizierung.

npm-Paket: @5minds/node-red-contrib-processcube-mcp Version: 0.5.x Lizenz: Proprietary

Architektur

Das Package folgt dem Tool-Input/Output Pattern:

  1. Input-Node — Registriert Tool(s) beim MCP-Server, sendet Message bei Aufruf
  2. Output-Node — Empfängt Erfolgsergebnis, beendet Tool-Aufruf
  3. Error-Node — Empfängt Fehler, beendet Tool-Aufruf mit Fehlermeldung
┌→ [Output-Node] (Erfolg) [MCP Server] ← [Tool-Input-Node] ──┤ └→ [Error-Node] (Fehler)

MCP Server

mcpserver (Config-Node)

Zentraler MCP-Server mit HTTP-Endpunkt unter /mcp.

Umgebungsvariablen:

VariableBeschreibung
NODERED_AUTHORITY_URLAuthority-Server URL für OAuth2
NODERED_AUTH_DISABLEDAuthentifizierung deaktivieren (true)
NODERED_BASE_URLBasis-URL des Node-RED-Servers
NODERED_MCP_RESOURCE_NAMEMCP-Ressourcenname (Standard: mcp)
NODERED_MCP_ADDITIONAL_SCOPESZusätzliche OAuth2-Scopes (kommasepariert)

Der Server sammelt automatisch alle Tool-Input-Nodes und registriert deren Tools.


Benutzerdefinierte Tools

mcp-tool-input

Generischer Input-Node für benutzerdefinierte MCP-Tools.

Konfiguration:

EigenschaftBeschreibung
nameName des Tools (für AI sichtbar)
descriptionBeschreibung des Tools (für AI sichtbar)

Output:

FeldTypBeschreibung
msg.payloadObjectDaten vom AI-Tool-Aufruf
msg.mcpToolInputNodeIdstringNode-ID für Rückmeldung
msg._client.user.accessTokenstringOAuth2 Access Token
msg._client.user.idstringBenutzer-ID

mcp-tool-output

Beendet einen Tool-Aufruf erfolgreich.

Input:

FeldTypBeschreibung
msg.payloadanyErgebnis (wird zu Text konvertiert)
msg.mcpToolInputNodeIdstringID des Input-Nodes

mcp-tool-error

Beendet einen Tool-Aufruf mit Fehler.

Input:

FeldTypBeschreibung
msg.payloadstring/ObjectFehlermeldung
msg.mcpToolInputNodeIdstringID des Input-Nodes

Beispiel:

[mcp-tool-input] → [Function: Daten verarbeiten] → [mcp-tool-output] (name: "suche") ↓ (bei Fehler) [mcp-tool-error]

Prozess-Tools

processes-tools-input

Erstellt automatisch ein MCP-Tool pro BPMN-Prozess, um Prozessinstanzen zu starten.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration

Verhalten:

  • Liest alle Prozessmodelle aus der Engine
  • Erstellt für jeden Prozess ein Tool (Name = processModelId)
  • Beschreibung enthält Prozess-Dokumentation und UserTask-Liste
  • Bei Aufruf wird der Prozess gestartet

Output:

FeldTypBeschreibung
msg.processModelIdstringProzessmodell-ID
msg.startEventIdstringStart-Event-ID
msg.payloadObjectLeeres Objekt

processes-tools-output / processes-tools-error

Beenden den Prozess-Start-Aufruf. Der Output erwartet msg.payload.processInstanceId.


UserTask-Tools

finish-usertask-tools-input

Erstellt automatisch ein MCP-Tool pro UserTask zum Abschließen.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration

Verhalten:

  • Liest alle Prozessmodelle und extrahiert UserTasks
  • Erstellt für jeden benannten UserTask ein Tool
  • Tool-Name: finish-usertask-{task_name} (lowercase, sanitized)
  • Generiert Zod-Schemas basierend auf FormFields
  • Unterstützte Feldtypen: string, number, boolean, date, object, array

Output:

FeldTypBeschreibung
msg.payload.userTask.flowNodeInstanceIdstringFlowNodeInstance-ID
msg.resultObjectValidierte Formulardaten

finish-usertask-tools-output / finish-usertask-tools-error

Beenden den UserTask-Abschluss. Erfolg gibt "Die Aufgabe '<Name>' wurde abgeschlossen" zurück.


UserTask-Abfrage

list-usertasks-tools-input

Stellt ein MCP-Tool query-userTasks bereit, um alle offenen UserTasks abzufragen.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration

Output:

FeldTypBeschreibung
msg.payload.query.statestring"suspended" (fest)

Verhalten:

  • Fragt alle suspendierten FlowNodeInstances ab
  • Formatiert Ergebnis mit Name, FlowNodeId, Daten und FormField-Beschreibungen
  • Bei keinen Tasks: “Es gibt keine offenen Aufgaben”

list-usertasks-tools-output / list-usertasks-tools-error

Beenden die Abfrage. Output erwartet msg.payload.userTasks Array.


MCP-Client-Nodes

list-mcp-tools

Listet alle verfügbaren MCP-Tools im OpenAI-Function-Calling-Format.

Input:

FeldTypBeschreibung
msg._client.userObjectOptional: Benutzerinformationen

Output:

FeldTypBeschreibung
msg.payloadArrayTool-Definitionen im OpenAI-Format
[{ type: "function", function: { name: "tool-name", description: "Beschreibung", parameters: { /* JSON Schema */ } } }]

call-mcp-tools

Führt MCP-Tool-Aufrufe im OpenAI-Format aus.

Input:

FeldTypBeschreibung
msg.payloadArrayTool-Calls im OpenAI-Format
[{ id: "call-123", function: { name: "tool-name", arguments: "{\"key\": \"value\"}" // JSON-String } }]

Output:

FeldTypBeschreibung
msg.payloadArrayTool-Ergebnisse
[{ output: "Ergebnis-Text", tool_call_id: "call-123" }]

Node-Übersicht

NodeBeschreibung
mcpserverMCP-Server (Config)
mcp-tool-inputBenutzerdefiniertes Tool
mcp-tool-outputTool-Erfolg
mcp-tool-errorTool-Fehler
processes-tools-inputAuto-Tools pro Prozess
processes-tools-outputProzess-Tool-Erfolg
processes-tools-errorProzess-Tool-Fehler
finish-usertask-tools-inputAuto-Tools pro UserTask
finish-usertask-tools-outputUserTask-Tool-Erfolg
finish-usertask-tools-errorUserTask-Tool-Fehler
list-usertasks-tools-inputUserTasks abfragen
list-usertasks-tools-outputAbfrage-Erfolg
list-usertasks-tools-errorAbfrage-Fehler
list-mcp-toolsTools auflisten
call-mcp-toolsTools aufrufen

Nächste Schritte