> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowstep.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP-Authentifizierung

> Wie Flowstep MCP-Clients authentifiziert: OAuth 2.1 PKCE-Flow und Kontoerstellung.

Der `/mcp`-Endpunkt erfordert ein Supabase `access_token`, das als Bearer-Token übergeben wird. Die meisten MCP-Clients erhalten diesen automatisch über den OAuth 2.1 PKCE-Flow. Sie können auch manuell ein Token für Tests bereitstellen.

## OAuth 2.1 PKCE-Flow

Flowstep implementiert einen vollständigen OAuth 2.1-Autorisierungsserver unter `https://api.flowstep.ai`. MCP-Clients erkennen und durchlaufen den Flow automatisch: Sie öffnen ein Browserfenster für die Anmeldung und handhaben den Token-Austausch dahinter.

### Unterstützte Anmeldeverfahren

Die Autorisierungsseite unter `/oauth/authorize` unterstützt:

* **Email/password** (E-Mail/Passwort) — jedes Flowstep-Konto mit gesetztem Passwort
* **Google SSO** — leitet durch Supabase Social Auth um, leitet automatisch zum Client zurück

### Kontoerstellung für claude.ai-Connector-Benutzer

Die OAuth-Anmeldeseite enthält kein Registrierungsformular. Wenn Sie sich über den benutzerdefinierten Connector von claude.ai verbinden und noch kein Flowstep-Konto haben, erstellen Sie zuerst eines unter [app.flowstep.ai](https://app.flowstep.ai), und kehren Sie dann zur Connector-Einrichtung zurück, um sich zu authentifizieren.

## Cookie-Fallback

Wenn kein `Authorization`-Header vorhanden ist, greift die Middleware auf eine Cookie-basierte Supabase-Sitzung zurück. Dies funktioniert beim direkten Zugriff auf `/mcp` aus einem Browser mit einer aktiven Flowstep-Sitzung. MCP-Clients verwenden immer den Bearer-Pfad.

## Manuelles Token (Tests)

Um den Endpunkt direkt ohne einen Client OAuth-Flow aufzurufen:

1. Melden Sie sich unter [app.flowstep.ai](https://app.flowstep.ai) in Ihrem Browser an
2. Öffnen Sie DevTools → Konsole und führen Sie Folgendes aus:

```javascript theme={"system"}
const pairs = document.cookie.split("; ").map((c) => {
  const i = c.indexOf("=");
  return [c.slice(0, i), c.slice(i + 1)];
});
const authPairs = pairs
  .filter(([k]) => /^sb-.+-auth-token(\.\d+)?$/.test(k))
  .sort(([a], [b]) => a.localeCompare(b));
const raw = authPairs.map(([, v]) => decodeURIComponent(v)).join("");
const session = JSON.parse(
  raw.startsWith("base64-") ? atob(raw.slice(7)) : raw,
);
console.log(session.access_token);
```

3. Übergeben Sie das Token als Header:

```bash theme={"system"}
curl -X POST https://api.flowstep.ai/mcp \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

<Warning>
  MCP-Sitzungen dauern 30 Tage — der Server aktualisiert das zugrunde liegende Token transparent, sodass Clients, die den OAuth-Flow verwenden, sich während der normalen Nutzung nicht neu authentifizieren müssen. Ein manuell extrahiertes Token wie das obige verfällt immer noch nach etwa einer Stunde; es ist nur für schnelle Tests gedacht.
</Warning>
