Neu: Workflow-MCP-Server + Doku
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Workflow-MCP-Server
|
||||
|
||||
MCP-Server (Model Context Protocol) des Workflow-Systems. Erlaubt KI-Clients, Workflows zu erstellen, zu bearbeiten, zu starten und mit laufenden Instanzen zu interagieren.
|
||||
|
||||
## Endpoint & Auth
|
||||
|
||||
- **URL:** `https://workflow.flurneuordnung-sachsen.de/mcp` (JSON-RPC 2.0 ueber HTTP POST, „Streamable HTTP")
|
||||
- **Auth:** HTTP-Header `Authorization: Bearer <token>`
|
||||
- **Keys:** werden im Workflow-Dashboard (`dashboard.php` → Card „MCP-API-Keys") erstellt. Der Klartext-Token ist **nur einmal** bei der Erstellung sichtbar (Server speichert nur den SHA-256-Hash).
|
||||
|
||||
## Scopes
|
||||
|
||||
Jeder Key traegt eine Auswahl aus drei Scopes; `tools/list` zeigt nur erlaubte Tools, `tools/call` prueft den Scope.
|
||||
|
||||
| Scope | Tools |
|
||||
|---|---|
|
||||
| `read` | workflow_list, workflow_get, workflow_validate, workflow_instances, workflow_status, workflow_log |
|
||||
| `author` | workflow_create, workflow_update |
|
||||
| `interact` | workflow_start, workflow_interact |
|
||||
|
||||
## Tools
|
||||
|
||||
| Tool | Zweck |
|
||||
|---|---|
|
||||
| `workflow_list` | Alle Definitionen (workflows/*.xml) mit ID/Task-Anzahl. |
|
||||
| `workflow_get` | XML-Definition eines Workflows. |
|
||||
| `workflow_validate` | Workflow-XML auf Wohlgeformtheit + Grundstruktur pruefen. |
|
||||
| `workflow_instances` | Laufende/vergangene Instanzen (filterbar nach status/type/assignee). |
|
||||
| `workflow_status` | Detailstatus einer Instanz (Status, Bearbeiter, Kontext, Tokens). |
|
||||
| `workflow_log` | Fachliches Audit-Log einer Instanz. |
|
||||
| `workflow_create` | Neue Definition anlegen (Fehler, wenn Name existiert). |
|
||||
| `workflow_update` | Definition ueberschreiben (mit automatischem Backup). |
|
||||
| `workflow_start` | Neue Instanz starten und ersten Schritt ausfuehren. |
|
||||
| `workflow_interact` | Laufende Instanz weiterfuehren; optional Kontextvariablen einspielen. |
|
||||
|
||||
## Beispiel
|
||||
|
||||
```bash
|
||||
curl -s -X POST https://workflow.flurneuordnung-sachsen.de/mcp \
|
||||
-H "Authorization: Bearer wfmcp_..." \
|
||||
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"workflow_list\",\"arguments\":{}}}"
|
||||
```
|
||||
|
||||
## Technik
|
||||
|
||||
Code unter `0_workflow/mcp/`: `index.php` (Bootstrap + Auth + JSON-RPC-Transport), `McpServer.php` (Protokoll + Registry + Scope-Enforcement), `WorkflowTools.php` (Fachlogik), `McpKeys.php` (Key-Verwaltung, Tabelle `WORKFLOW_MCP_KEY`). nginx: exakte `location = /mcp` noetig (sonst faengt der Scan-Blocker den slash-losen Pfad ab).
|
||||
Reference in New Issue
Block a user