Zum Hauptinhalt springen

MCP-Zugang — Einstellungen

Zweck

Diese Seite verwaltet die MCP-Access-Tokens, mit denen externe KI-Assistenten (z. B. Claude oder ChatGPT) auf SpeamCore zugreifen. Wie der Zugang technisch funktioniert und welche Sicherheitsregeln gelten, beschreibt das Konzept MCP-Zugang (SpeamCore als MCP-Server).

Voraussetzungen

- Berechtigung `view:FE_Settings` + `view:Settings` (Seite öffnen). - Zum Anlegen/Widerrufen: `create:McpAccessToken` bzw. `delete:McpAccessToken`. - Für die Claude-Anbindung (OAuth) ist serverseitig der MCP-Endpunkt erreichbar konfiguriert.

Berechtigungen (CASL)

ActionSubjectWirkung
viewFE_Settings, SettingsSeite aufrufbar
viewMcpAccessTokenToken-Liste lesen (ohne Klartext)
createMcpAccessTokenNeues Token erzeugen
deleteMcpAccessTokenToken widerrufen

Token anlegen

  1. Einstellungen → MCP-ZugangNeues Token.
  2. Name vergeben (z. B. „Claude Bot", „ChatGPT Integration") und ein Ablaufdatum (expiresAt) wählen — Pflicht.
  3. Speichern. Der Klartext-Token (mcp_…) erscheint genau einmal — sofort kopieren und sicher hinterlegen. SpeamCore speichert nur einen SHA-256-Hash, der Klartext ist danach nicht mehr abrufbar.
Ein statisches MCP-Token gewährt **vollen Zugriff** auf den Mandanten — wie ein Passwort behandeln: kurzes Ablaufdatum, nicht teilen, nach Gebrauch widerrufen. Wer nutzergebundene Rechte will, bindet Claude über den **OAuth/Keycloak-Weg** an (dann gelten die Rechte der angemeldeten Person). Details: [MCP-Zugang-Konzept](/konzepte/mcp-zugang#sicherheit).

Token-Liste

SpalteBedeutung
namefrei vergebener Name
tokenPrefixAnzeige-Präfix mcp_… (kein Geheimnis, nur zur Wiedererkennung)
statusactive (grün), expired (grau), revoked (rot)
expiresAtAblaufzeitpunkt
lastUsedAtletzter Zugriff über dieses Token

Widerrufen setzt revokedAt und macht das Token sofort ungültig (POST /mcp-access-tokens/:id/revoke).

<Screenshot status="todo" beschreibung="MCP-Zugang-Einstellungen: Liste der Tokens mit Name, Präfix, Status-Badge, Ablauf- und Letzter-Zugriff-Datum, Widerrufen-Button; oben Button „Neues Token"; darunter das aufklappbare Setup-Guide-Accordion für Claude/ChatGPT." />

Anbindung in Claude / ChatGPT

Auf der Seite ist eine Setup-Anleitung hinterlegt. Kernangaben:

  • MCP-Endpunkt: die auf der Seite angezeigte URL (Form …/mcp).
  • Authentifizierung: Header Authorization: Bearer <dein-token>.

Claude (Desktop oder claude.ai): Einstellungen → ConnectorsCustom Connector → Endpunkt-URL eintragen. Claude kann sich auch per OAuth/Keycloak anmelden — dann wirkt der Zugriff mit den Rechten des angemeldeten Nutzers (kein ROOT).

ChatGPT: Connectors → MCP-Server hinzufügen → Endpunkt-URL + Bearer-Header (erfordert je nach Plan Business/Enterprise).

Der MCP-Endpunkt läuft serverseitig auf einem **eigenen Port** (Standard `4001`, nicht der normalen API auf `2001`). Der Reverse-Proxy muss `/mcp` auf diesen Port leiten. Zum Schutz vor DNS-Rebinding ist `MCP_ALLOWED_HOSTS` zu setzen; eine abweichende öffentliche URL/­Pfad lässt sich über `REACT_APP_MCP_PUBLIC_URL` hinterlegen.

Verknüpfungen zu anderen Modulen

Wiederverwendbare Konzepte

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/mcp-access-tokensToken-Liste (ohne Klartext)view McpAccessToken
POST/api/mcp-access-tokensToken erzeugen (Klartext nur 1× in der Antwort)create McpAccessToken
POST/api/mcp-access-tokens/:id/revokeToken widerrufendelete McpAccessToken

Versionshinweise

  • 2026-06-30: Initiale Veröffentlichung — MCP-Access-Token-Verwaltung (anlegen/ansehen/widerrufen, SHA-256-Hash, ROOT-Scope) + Claude/ChatGPT-Setup-Guide. Verifiziert an mcpAccessToken.model.ts, mcpAccessToken.router.ts, casl.ts (McpAccessToken), SettingsMcpTokensPage.tsx, mcp/server.ts.