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

> Hvordan Flowstep MCP autentiserer klienter: OAuth 2.1 PKCE-flyt og kontoopprettelse.

Endepunktet `/mcp` krever en Supabase `access_token` som sendes som en Bearer-token. De fleste MCP-klienter får denne automatisk via OAuth 2.1 PKCE-flyten. Du kan også levere en token manuelt for testing.

## OAuth 2.1 PKCE-flyt

Flowstep implementerer en fullstendig OAuth 2.1-autorisasjonsserver på `https://api.flowstep.ai`. MCP-klienter oppdager og gjennomfører flyten automatisk: de åpner et nettleservindu for deg å logge inn, og håndterer deretter token-utvekslingen bak kulissene.

### Støttede påloggingsmetoder

Autorisasjonssiden på `/oauth/authorize` støtter:

* **Email/password** (e-post/passord) — hvilken som helst Flowstep-konto med passord satt
* **Google SSO** — omdirigerer gjennom Supabase sosial autentisering, returnerer til klienten automatisk

### Kontoopprettelse for claude.ai-koblings-brukere

OAuth-påloggingssiden inneholder ikke et registreringsskjema. Hvis du kobler deg til via claude.ai sin tilpassede kobling og ikke har en Flowstep-konto ennå, opprett en først på [app.flowstep.ai](https://app.flowstep.ai), og gå deretter tilbake til koblingskonfigurasjonen for å autentisere.

## Cookie-reserveløsning

Hvis ingen `Authorization`-header er tilstede, faller mellomvaren tilbake til en cookie-basert Supabase-sesjon. Dette fungerer når `/mcp` åpnes direkte fra en nettleser med en aktiv Flowstep-sesjon. MCP-klienter bruker alltid Bearer-banen.

## Manuell token (testing)

For å kalle endepunktet direkte uten en OAuth-flyt for klienten:

1. Logg deg på [app.flowstep.ai](https://app.flowstep.ai) i nettleseren din
2. Åpne DevTools → Console, kjø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. Lever tokenen som en 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-sesjoner varer 30 dager — serveren fornyer den underliggende tokenen gjennomsiktig, så klienter som bruker OAuth-flyten trenger ikke å gjenautentisere under normal bruk. En manuelt ekstrahert token som den ovenfor utløper fortsatt etter cirka en time; den er kun for rask testing.
</Warning>
