Hopp til hovedinnhold
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 den via standard RFC-metadataendepunkter.

Oppdagingskjede

Client                       Flowstep API

  ├─ 1. POST /mcp (no token) ──────────────────────────► 401
  │        WWW-Authenticate: Bearer resource_metadata=
  │        "https://api.flowstep.ai/.well-known/oauth-protected-resource"

  ├─ 2. GET /.well-known/oauth-protected-resource ──────► { authorization_servers: ["https://api.flowstep.ai"] }

  ├─ 3. GET /.well-known/oauth-authorization-server ────► { authorization_endpoint, token_endpoint, ... }

  ├─ 4. Client generates PKCE pair (code_verifier + code_challenge S256)
  │     Opens browser → https://api.flowstep.ai/oauth/authorize
  │     User logs in (email/password or Google SSO)

  ├─ 5. Server redirects → http://127.0.0.1:<port>?code=AUTH_CODE
  │     (client's temporary local HTTP server captures this)

  ├─ 6. Client sends code + code_verifier → POST /oauth/token
  │     ◄──────────────────────────────────────── { access_token, refresh_token }

  └─ 7. Client sends Authorization: Bearer <access_token> on all /mcp requests

OAuth-endepunkter

MetodeEndepunktFormål
GET/.well-known/oauth-protected-resourceRFC 9728 ressursmetadata
GET/.well-known/oauth-authorization-serverRFC 8414 servermetadata
POST/oauth/registerRFC 7591 dynamisk klientregistrering
GET/oauth/authorizeVis påloggingsskjema
POST/oauth/authorizeBehandle e-post/passord-pålogging
GET/POST/oauth/social-callbackGoogle SSO-tilbakekall
POST/oauth/tokenKodeutveksling og token-fornyelse

Støttede påloggingsmetoder

Autorisasjonssiden på /oauth/authorize støtter:
  • E-post/passord — hvilken som helst Flowstep-konto med passord satt
  • Google SSO — omdirigerer gjennom Supabase sosial autentisering, returnerer til klienten automatisk

Opprettelse av konto 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, og gå deretter tilbake til kobblingskonfigurasjonen for å autentisere.

Token-mekanikk

EgenskapVerdi
Token-typeSupabase JWT (Bearer)
Utløp for tilgangstoken~1 time (fornyet gjennomsiktig av serveren)
MCP-sesjonens levetid30 dager
Token-fornyelseHåndtert på serversiden — serveren fornyer den underliggende økten gjennomsiktig; MCP-klienter administrerer ikke fornyelsen selv
Auth-kodenes TTL5 minutter (engangsbruk)
Ventende sosial autentisering TTL10 minutter
Omfangopenid, offline_access
Tokens valideres på hver forespørsel via supabase.auth.getUser(token). En utløpt eller ugyldig token returnerer 401 med en WWW-Authenticate-header, som utløser klientens gjenautentiseringflyt. 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 i nettleseren din
  2. Åpne DevTools → Console, kjør:
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);
  1. Lever tokenen som en header:
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"}'
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.