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

# Autentikasi MCP

> Cara Flowstep MCP mengautentikasi klien: aliran OAuth 2.1 PKCE dan pembuatan akun.

Titik akhir `/mcp` memerlukan `access_token` Supabase yang diteruskan sebagai token Bearer. Sebagian besar klien MCP memperoleh ini secara otomatis melalui aliran OAuth 2.1 PKCE. Anda juga dapat menyediakan token secara manual untuk pengujian.

## Aliran OAuth 2.1 PKCE

Flowstep mengimplementasikan server otorisasi OAuth 2.1 lengkap di `https://api.flowstep.ai`. Klien MCP menemukan dan menyelesaikan aliran secara otomatis: mereka membuka jendela browser agar Anda dapat masuk, kemudian menangani pertukaran token di balik layar.

### Metode login yang didukung

Halaman otorisasi di `/oauth/authorize` mendukung:

* **Email/password** (email/sandi) — akun Flowstep apa pun dengan sandi yang telah ditetapkan
* **Google SSO** — dialihkan melalui autentikasi sosial Supabase, kembali ke klien secara otomatis

### Pembuatan akun untuk pengguna konektor claude.ai

Halaman login OAuth tidak menyertakan formulir pendaftaran. Jika Anda terhubung melalui konektor kustom claude.ai dan belum memiliki akun Flowstep, buat satu terlebih dahulu di [app.flowstep.ai](https://app.flowstep.ai), lalu kembali ke pengaturan konektor untuk mengautentikasi.

## Fallback cookie

Jika tidak ada header `Authorization`, middleware kembali ke sesi Supabase berbasis cookie. Ini berfungsi saat mengakses `/mcp` langsung dari browser dengan sesi Flowstep yang aktif. Klien MCP selalu menggunakan jalur Bearer.

## Token manual (pengujian)

Untuk memanggil titik akhir secara langsung tanpa aliran OAuth klien:

1. Masuk ke [app.flowstep.ai](https://app.flowstep.ai) di browser Anda
2. Buka DevTools → Console, jalankan:

```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. Berikan token sebagai 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>
  Sesi MCP berlangsung selama 30 hari — server menyegarkan token yang mendasarinya secara transparan, sehingga klien yang menggunakan aliran OAuth tidak perlu re-autentikasi selama penggunaan normal. Token yang diekstrak secara manual seperti di atas masih kedaluwarsa setelah sekitar satu jam; hanya untuk pengujian cepat.
</Warning>
