> ## 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-autentisering

> Hur Flowstep MCP autentiserar klienter: OAuth 2.1 PKCE-flöde och kontoskapande.

Slutpunkten `/mcp` kräver en Supabase `access_token` som skickas som en Bearer-token. De flesta MCP-klienter hämtar detta automatiskt via OAuth 2.1 PKCE-flödet. Du kan också ange en token manuellt för testning.

## OAuth 2.1 PKCE-flöde

Flowstep implementerar en fullständig OAuth 2.1-auktoriseringsserver på `https://api.flowstep.ai`. MCP-klienter upptäcker och slutför flödet automatiskt: de öppnar ett webbläsarfönster för att du ska logga in, sedan hanterar de tokenbytesprocessen bakom kulisserna.

### Inloggningsmetoder som stöds

Auktoriseringssidan på `/oauth/authorize` stöder:

* **Email/password** (e-post/lösenord) — något Flowstep-konto med lösenord inställt
* **Google SSO** — omdirigerar genom Supabase-socialauthentisering, återkommer till klienten automatiskt

### Kontoskapande för claude.ai-anslutningsanvändare

OAuth-inloggningssidan innehåller inget anmälningsformulär. Om du ansluter via claude.ai:s anpassade anslutning och ännu inte har ett Flowstep-konto, skapar du ett först på [app.flowstep.ai](https://app.flowstep.ai) och återgår sedan till anslutningskonfigurationen för att autentisera.

## Cookie-återgång

Om inget `Authorization`-huvud finns, faller mellanvaran tillbaka till en cookie-baserad Supabase-session. Detta fungerar när du får åtkomst till `/mcp` direkt från en webbläsare med en aktiv Flowstep-session. MCP-klienter använder alltid Bearer-vägen.

## Manuell token (testning)

För att anropa slutpunkten direkt utan ett klient-OAuth-flöde:

1. Logga in på [app.flowstep.ai](https://app.flowstep.ai) i din webbläsare
2. Öppna DevTools → Console, kör:

```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. Skicka token som ett huvud:

```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-sessioner varar 30 dagar — servern uppdaterar den underliggande token transparent, så klienter som använder OAuth-flödet behöver inte omautentiseras vid normal användning. En manuellt extraherad token som den ovan utgår fortfarande efter cirka en timme; det är endast för snabb testning.
</Warning>
