跳轉到主要內容
/mcp 端點需要作為 Bearer 令牌傳遞的 Supabase access_token。大多數 MCP 客戶端透過 OAuth 2.1 PKCE 流程自動取得此令牌。你也可以手動提供令牌以進行測試。

OAuth 2.1 PKCE 流程

Flowstep 在 https://api.flowstep.ai 實作完整的 OAuth 2.1 授權伺服器。MCP 客戶端透過標準 RFC 中繼資料端點探索它。

探索鏈

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 端點

方法端點目的
GET/.well-known/oauth-protected-resourceRFC 9728 資源中繼資料
GET/.well-known/oauth-authorization-serverRFC 8414 伺服器中繼資料
POST/oauth/registerRFC 7591 動態客戶端註冊
GET/oauth/authorize顯示登入表單
POST/oauth/authorize處理電子郵件/密碼登入
GET/POST/oauth/social-callbackGoogle SSO 回呼
POST/oauth/token代碼交換和令牌重新整理

支援的登入方法

/oauth/authorize 上的授權頁面支援:
  • 電子郵件/密碼 — 任何已設定密碼的 Flowstep 帳戶
  • Google SSO — 透過 Supabase 社交身份驗證重新導向,自動返回客戶端

claude.ai 連接器使用者的帳戶建立

OAuth 登入頁面不包括註冊表單。如果你透過 claude.ai 的自訂連接器進行連接且還沒有 Flowstep 帳戶,請先在 app.flowstep.ai 建立帳戶,然後返回連接器設定進行身份驗證。

令牌機制

屬性
令牌類型Supabase JWT (Bearer)
存取令牌到期~1 小時(由伺服器透明重新整理)
MCP 工作階段生命週期30 天
令牌重新整理由伺服器端處理 — 伺服器以透明方式重新整理基礎工作階段;MCP 客戶端不自行管理重新整理
授權代碼 TTL5 分鐘(一次使用)
待決社交身份驗證 TTL10 分鐘
範圍openid, offline_access
令牌透過 supabase.auth.getUser(token) 在每個請求上驗證。過期或無效的令牌傳回 401WWW-Authenticate 標頭,這會觸發客戶端的重新身份驗證流程。 如果沒有 Authorization 標頭,中介軟體會回退到基於 Cookie 的 Supabase 工作階段。這在使用有效 Flowstep 工作階段從瀏覽器直接存取 /mcp 時有效。MCP 客戶端始終使用 Bearer 路徑。

手動令牌(測試)

要在不使用客戶端 OAuth 流程的情況下直接呼叫端點:
  1. 在瀏覽器中登入 app.flowstep.ai
  2. 開啟 DevTools → Console,執行:
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. 將令牌作為標頭傳遞:
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 工作階段持續 30 天 — 伺服器以透明方式重新整理基礎令牌,因此使用 OAuth 流程的客戶端在正常使用期間不需要重新身份驗證。像上面這樣手動提取的令牌仍在約一小時後到期;它僅供快速測試使用。