/mcp 端点需要将 Supabase access_token 作为 Bearer 令牌传递。大多数 MCP 客户端通过 OAuth 2.1 PKCE 流程自动获取。您也可以手动提供令牌用于测试。
OAuth 2.1 PKCE 流程
Flowstep 在https://api.flowstep.ai 实现了完整的 OAuth 2.1 授权服务器。MCP 客户端通过标准 RFC 元数据端点发现它。
发现链
OAuth 端点
| 方法 | 端点 | 用途 |
|---|---|---|
GET | /.well-known/oauth-protected-resource | RFC 9728 资源元数据 |
GET | /.well-known/oauth-authorization-server | RFC 8414 服务器元数据 |
POST | /oauth/register | RFC 7591 动态客户端注册 |
GET | /oauth/authorize | 显示登录表单 |
POST | /oauth/authorize | 处理电子邮件/密码登录 |
GET/POST | /oauth/social-callback | Google 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 客户端不会自己管理刷新 |
| 认证代码 TTL | 5 分钟(一次性使用) |
| 待处理社交认证 TTL | 10 分钟 |
| 作用域 | openid, offline_access |
supabase.auth.getUser(token) 验证。过期或无效的令牌返回 401 及 WWW-Authenticate 标头,触发客户端的重新身份验证流程。
Cookie 后备方案
如果不存在Authorization 标头,中间件会回退到基于 cookie 的 Supabase 会话。这在从具有活跃 Flowstep 会话的浏览器直接访问 /mcp 时有效。MCP 客户端始终使用 Bearer 路径。
手动令牌(测试)
要在没有客户端 OAuth 流程的情况下直接调用端点:- 在浏览器中登录 app.flowstep.ai
- 打开 DevTools → Console,运行:
- 将令牌作为标头传递: