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:
- Input-Node — Registriert Tool(s) beim MCP-Server, sendet Message bei Aufruf
- Output-Node — Empfängt Erfolgsergebnis, beendet Tool-Aufruf
- 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:
| Variable | Beschreibung |
|---|---|
NODERED_AUTHORITY_URL | Authority-Server URL für OAuth2 |
NODERED_AUTH_DISABLED | Authentifizierung deaktivieren (true) |
NODERED_BASE_URL | Basis-URL des Node-RED-Servers |
NODERED_MCP_RESOURCE_NAME | MCP-Ressourcenname (Standard: mcp) |
NODERED_MCP_ADDITIONAL_SCOPES | Zusä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:
| Eigenschaft | Beschreibung |
|---|---|
name | Name des Tools (für AI sichtbar) |
description | Beschreibung des Tools (für AI sichtbar) |
Output:
| Feld | Typ | Beschreibung |
|---|---|---|
msg.payload | Object | Daten vom AI-Tool-Aufruf |
msg.mcpToolInputNodeId | string | Node-ID für Rückmeldung |
msg._client.user.accessToken | string | OAuth2 Access Token |
msg._client.user.id | string | Benutzer-ID |
mcp-tool-output
Beendet einen Tool-Aufruf erfolgreich.
Input:
| Feld | Typ | Beschreibung |
|---|---|---|
msg.payload | any | Ergebnis (wird zu Text konvertiert) |
msg.mcpToolInputNodeId | string | ID des Input-Nodes |
mcp-tool-error
Beendet einen Tool-Aufruf mit Fehler.
Input:
| Feld | Typ | Beschreibung |
|---|---|---|
msg.payload | string/Object | Fehlermeldung |
msg.mcpToolInputNodeId | string | ID 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:
| Eigenschaft | Beschreibung |
|---|---|
engine | Engine-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:
| Feld | Typ | Beschreibung |
|---|---|---|
msg.processModelId | string | Prozessmodell-ID |
msg.startEventId | string | Start-Event-ID |
msg.payload | Object | Leeres 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:
| Eigenschaft | Beschreibung |
|---|---|
engine | Engine-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:
| Feld | Typ | Beschreibung |
|---|---|---|
msg.payload.userTask.flowNodeInstanceId | string | FlowNodeInstance-ID |
msg.result | Object | Validierte 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:
| Eigenschaft | Beschreibung |
|---|---|
engine | Engine-Konfiguration |
Output:
| Feld | Typ | Beschreibung |
|---|---|---|
msg.payload.query.state | string | "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:
| Feld | Typ | Beschreibung |
|---|---|---|
msg._client.user | Object | Optional: Benutzerinformationen |
Output:
| Feld | Typ | Beschreibung |
|---|---|---|
msg.payload | Array | Tool-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:
| Feld | Typ | Beschreibung |
|---|---|---|
msg.payload | Array | Tool-Calls im OpenAI-Format |
[{
id: "call-123",
function: {
name: "tool-name",
arguments: "{\"key\": \"value\"}" // JSON-String
}
}]Output:
| Feld | Typ | Beschreibung |
|---|---|---|
msg.payload | Array | Tool-Ergebnisse |
[{
output: "Ergebnis-Text",
tool_call_id: "call-123"
}]Node-Übersicht
| Node | Beschreibung |
|---|---|
| mcpserver | MCP-Server (Config) |
| mcp-tool-input | Benutzerdefiniertes Tool |
| mcp-tool-output | Tool-Erfolg |
| mcp-tool-error | Tool-Fehler |
| processes-tools-input | Auto-Tools pro Prozess |
| processes-tools-output | Prozess-Tool-Erfolg |
| processes-tools-error | Prozess-Tool-Fehler |
| finish-usertask-tools-input | Auto-Tools pro UserTask |
| finish-usertask-tools-output | UserTask-Tool-Erfolg |
| finish-usertask-tools-error | UserTask-Tool-Fehler |
| list-usertasks-tools-input | UserTasks abfragen |
| list-usertasks-tools-output | Abfrage-Erfolg |
| list-usertasks-tools-error | Abfrage-Fehler |
| list-mcp-tools | Tools auflisten |
| call-mcp-tools | Tools aufrufen |
Nächste Schritte
- Claude Code — Claude CLI-Integration
- Engine Nodes — Engine-Integration
- Chat — Chat-Interface für KI