Doku: MCP-OAuth (claude.ai-Verbindung)

This commit is contained in:
Claude (Erik)
2026-07-04 09:43:08 +02:00
parent 9233ebe58e
commit 4e81245c32
2 changed files with 16 additions and 0 deletions
+3
View File
@@ -1,5 +1,8 @@
# Changelog
## 2026-07-04 (MCP OAuth)
- **Neu:** OAuth-2.1-Bruecke fuer den Workflow-MCP (claude.ai & Co.). Discovery + Dynamic Client Registration + authorize/token am Domain-Root; Login mit MCP-Key, Token traegt dessen Scopes. Dual-Auth (statischer Key ODER OAuth). Siehe mcp/README.md.
## 2026-07-04 (Geo-Reihe komplett)
- **Neu (Tasks):** `geo_lade` (Kartenobjekte in Kontext), `geo_verschneidung` (intersection/union/difference/symdifference, optional als Kartenobjekt speichern), `geo_wfs` (WFS-GetFeature mit GML-3.2-Fallback fuer ALKIS & Co.), `geo_visualisieren` (OpenLayers-Karten-Viewer mit Basemap.de/Luftbild-DOP/DTK/OSM + schaltbaren Layern, oeffentlicher Link karte.php?id=...). Editor-Palette-Gruppe Geo-Operationen erweitert. End-to-end getestet: ALKIS-WFS -> Verschneidung (56 ha) -> Karten-Link.
+13
View File
@@ -44,3 +44,16 @@ curl -s -X POST https://workflow.flurneuordnung-sachsen.de/mcp \
## 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).
## Verbinden mit claude.ai (OAuth)
Der claude.ai-Connector nutzt **OAuth 2.1** (statische Bearer-Keys funktionieren dort nicht). Der Server bildet OAuth auf die MCP-Keys ab.
1. In claude.ai einen **Custom Connector** anlegen, als URL **nur** `https://workflow.flurneuordnung-sachsen.de/mcp` eintragen — KEIN client_id / kein Key in die Connector-Felder.
2. Auf **Verbinden** klicken. Es öffnet sich eine Anmeldeseite des Workflow-MCP.
3. Dort den `wfmcp_…`-Key (aus dem Dashboard) eingeben → Zugriff erlauben. Das erteilte Token trägt die Scopes dieses Keys.
Discovery/Endpunkte (automatisch genutzt): `/.well-known/oauth-protected-resource`, `/.well-known/oauth-authorization-server`, `/register` (DCR), `/authorize`, `/token`.
**Fehler „nur die Startseite erscheint" / „invalid_client":** Der Connector wurde mit dem Key als client_id angelegt (ohne Discovery). Connector entfernen und neu hinzufügen — dann registriert sich claude.ai selbst.