MCP-Server
Die Engine enthält einen integrierten MCP-Server (Model Context Protocol), über den KI-Assistenten wie Claude Desktop oder Claude Code die Engine fernsteuern können — Prozessmodelle deployen, Prozessinstanzen starten, UserTasks abschließen und den aktuellen Zustand abfragen.
Anders als der Studio MCP-Server, der einen Modellier-Workflow unterstützt, ist der Engine MCP-Server auf die Laufzeit ausgerichtet: starten, beobachten und abschließen von Prozessen.
Architektur
Der MCP-Server läuft im selben Prozess wie die Engine und teilt sich den HTTP-Port. Der Endpunkt /mcp wird genau dann registriert, wenn er in der Konfiguration aktiviert ist.
Konfiguration
In der Engine-Konfiguration wird der MCP-Server über den Abschnitt mcp aktiviert:
{
"mcp": {
"enabled": true
}
}| Schlüssel | Umgebungsvariable | Standard | Beschreibung |
|---|---|---|---|
mcp.enabled | mcp__enabled | false | Aktiviert den HTTP-Endpunkt /mcp auf dem Engine-Port |
Ohne enabled: true wird kein MCP-Endpunkt registriert.
Transport
Die Engine stellt MCP ausschließlich über HTTP bereit. Der Endpunkt teilt sich den Port mit der Engine:
- URL:
http(s)://<engine-host>:<port>/mcp - Sessions: Jeder Client erhält eine UUID-basierte Session über den Header
mcp-session-id - Resumability: Reconnects sind über den
InMemoryEventStoremöglich, Sessions überleben aber keinen Engine-Neustart
Der HTTP-Transport unterstützt sowohl Root-Token- als auch Authority-basierte Authentifizierung (siehe unten).
Ein stdio-Transport wird nicht angeboten. Die Engine schreibt Log-Ausgaben auf stdout, was das MCP-JSON-RPC-Protokoll auf stdio zerstören würde. Für lokale Anbindungen an Claude Desktop nutze HTTP mit mcp-remote (siehe unten).
Authentifizierung
Der HTTP-Endpunkt akzeptiert zwei Authentifizierungs-Varianten:
Variante 1: Root Access Token
Für lokale Entwicklungs- und Testszenarien reicht der Root Access Token:
{
"iam": {
"allowAnonymousRootAccess": true,
"rootAccessToken": "mein-geheimer-access-token"
},
"mcp": {
"enabled": true
}
}Aufrufe gegen /mcp funktionieren dann auf zwei Arten:
- Mit Header:
Authorization: Bearer mein-geheimer-access-token - Ohne Header: Wenn
allowAnonymousRootAccess: trueist, fällt die Engine automatisch auf den Root-Zugriff zurück.
allowAnonymousRootAccess: true ohne gesetzten rootAccessToken ist nur für lokale Erprobung geeignet. Für jeden anderen Einsatz muss ein eigener Token gesetzt werden — siehe Root Access Token.
Variante 2: Authority (OpenID Connect)
Für produktive Multi-User-Szenarien wird die Authority für die Authentifizierung verwendet. Es reicht, die baseUrl der Authority zu setzen — die Engine zieht die OAuth-Metadaten automatisch und veröffentlicht sie unter /.well-known/oauth-protected-resource:
{
"iam": {
"baseUrl": "https://authority.example.com/",
"allowAnonymousRootAccess": false
},
"mcp": {
"enabled": true
}
}Der MCP-Client führt damit den üblichen OAuth/OIDC-Flow gegen die Authority durch und schickt den erhaltenen Access Token im Authorization: Bearer <token>-Header.
Was muss in der Authority eingerichtet sein?
- Die Authority muss eine erreichbare
/.well-known/openid-configurationausliefern. - Für den MCP-Client muss ein OAuth-Client registriert sein, der einen für die Engine gültigen Access Token erhalten kann (Authorization Code + PKCE empfohlen).
- Es ist keine spezielle MCP-Scope-Registrierung in der Authority nötig — der Server setzt intern
scopes: []. Es genügt ein gültiger Token, der von der Engine viaIdentityService.getIdentityvalidiert werden kann. - Alle Aufrufe der MCP-Tools werden anschließend gegen die Identity des Users ausgeführt — das normale Berechtigungskonzept der Engine greift unverändert.
Verfügbare Tools
Der Engine MCP-Server stellt folgende Tools bereit:
Prozessmodelle
| Tool | Beschreibung |
|---|---|
list-processmodels | Alle deployten Prozessmodelle der Engine auflisten |
<processModelId> | Pro deploytem Prozessmodell wird ein Start-Tool registriert |
deploy-processmodel | Neues BPMN-Prozessmodell zur Engine deployen |
UserTasks
| Tool | Beschreibung |
|---|---|
query-userTasks | Offene UserTasks abfragen |
query-completed-userTasks | Abgeschlossene UserTasks samt Ergebnis abfragen |
finish-usertask-<name> | Pro UserTask-Namen wird ein Abschluss-Tool registriert; Argumente werden automatisch aus den FormFields des UserTasks generiert |
Laufzeit-Abfragen
| Tool | Beschreibung |
|---|---|
query-processInstances | Aktive und abgeschlossene Prozessinstanzen abfragen |
query-flowNodeInstances | Alle FlowNodeInstances abfragen |
Die Tools für Prozessmodelle und UserTasks werden dynamisch beim Deploy bzw. Undeploy aktualisiert. MCP-Clients erhalten automatisch eine notifications/tools/list_changed-Nachricht und sehen die geänderten Tools, ohne dass die Session neu aufgebaut werden muss.
MCP-Clients einrichten
Claude Desktop (HTTP via mcp-remote)
claude_desktop_config.json öffnen
| Plattform | Pfad |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
Engine-Server eintragen
{
"mcpServers": {
"ProcessCube Engine": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:8000/mcp",
"--header",
"Authorization: Bearer mein-geheimer-access-token"
]
}
}
}Den Token an den eigenen Root Access Token bzw. einen Authority-Token anpassen.
Claude Desktop neu starten
Beim nächsten Start tauchen die Engine-Tools (list-processmodels, deploy-processmodel, …) in der Tool-Liste auf.
Claude Code
claude mcp add --transport http processcube-engine http://localhost:8000/mcp \
--header "Authorization: Bearer mein-geheimer-access-token"MCP Inspector
Der offizielle MCP Inspector ist hilfreich zum Debuggen:
npx @modelcontextprotocol/inspectorIm Inspector als Transport „Streamable HTTP” wählen, URL http://localhost:8000/mcp eintragen und im Header-Feld Authorization: Bearer <token> ergänzen.
Technische Details
- Protokoll: MCP 2.0 über JSON-RPC mit
StreamableHTTPServerTransport - Session-Header:
mcp-session-idwird per CORS bereits exposed — Browser-Clients funktionieren ohne weitere Konfiguration - OAuth-Metadaten: Werden bei gesetzter
iam.baseUrlautomatisch unter/.well-known/oauth-protected-resourceausgeliefert - User-Identität: Alle Tool-Aufrufe werden gegen die
Identitydes authentifizierten Users ausgeführt; Berechtigungen folgen den üblichen Engine-Regeln
Bekannte Einschränkungen
- Sessions überleben keinen Engine-Neustart — der Event-Store ist In-Memory.
deploy-processmodelmit User-Identität unterliegt den gleichen Berechtigungen wie das Deploy über die REST-API.
Weitere Informationen
- Root Access Token — Engine-Absicherung über Bearer Token
- Authority — Identity Provider für die Engine
- Berechtigungskonzept — Wie User-Berechtigungen in der Engine wirken
- Studio MCP-Server — MCP für die Modellier-Umgebung