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

# Xác thực MCP

> Cách xác thực Flowstep MCP cho các ứng dụng khách: quy trình OAuth 2.1 PKCE và tạo tài khoản.

Điểm cuối `/mcp` yêu cầu `access_token` của Supabase được chuyển dưới dạng token Bearer. Hầu hết các ứng dụng khách MCP thu được điều này tự động thông qua quy trình OAuth 2.1 PKCE. Bạn cũng có thể cung cấp token theo cách thủ công để kiểm tra.

## Quy trình OAuth 2.1 PKCE

Flowstep thực hiện một máy chủ ủy quyền OAuth 2.1 đầy đủ tại `https://api.flowstep.ai`. Các ứng dụng khách MCP tự động khám phá và hoàn thành quy trình: chúng sẽ mở một cửa sổ trình duyệt để bạn đăng nhập, sau đó xử lý trao đổi token phía sau các cảnh.

### Phương pháp đăng nhập được hỗ trợ

Trang ủy quyền tại `/oauth/authorize` hỗ trợ:

* **Email/password** (email/mật khẩu) — bất kỳ tài khoản Flowstep nào có mật khẩu được đặt
* **Google SSO** — chuyển hướng thông qua xác thực xã hội Supabase, trả về ứng dụng khách tự động

### Tạo tài khoản cho người dùng kết nối claude.ai

Trang đăng nhập OAuth không bao gồm biểu mẫu đăng ký. Nếu bạn đang kết nối qua trình kết nối tùy chỉnh của claude.ai và chưa có tài khoản Flowstep, hãy tạo một tài khoản trước tại [app.flowstep.ai](https://app.flowstep.ai), sau đó quay lại cài đặt trình kết nối để xác thực.

## Dự phòng cookie

Nếu không có tiêu đề `Authorization`, phần mềm trung gian quay lại phiên dựa trên cookie của Supabase. Điều này hoạt động khi truy cập `/mcp` trực tiếp từ trình duyệt có phiên Flowstep hoạt động. Các ứng dụng khách MCP luôn sử dụng đường dẫn Bearer.

## Token thủ công (kiểm tra)

Để gọi điểm cuối trực tiếp mà không cần quy trình OAuth ứng dụng khách:

1. Đăng nhập vào [app.flowstep.ai](https://app.flowstep.ai) trong trình duyệt của bạn
2. Mở DevTools → Console, chạy:

```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. Chuyển token dưới dạng tiêu đề:

```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>
  Các phiên MCP kéo dài 30 ngày — máy chủ làm mới token cơ bản minh bạch, vì vậy các ứng dụng khách sử dụng quy trình OAuth không cần xác thực lại trong quá trình sử dụng bình thường. Một token được trích xuất theo cách thủ công như trên vẫn hết hạn sau khoảng một giờ; nó chỉ dành cho kiểm tra nhanh.
</Warning>
