SuperAPI AI 工具集

mcp-oauth

智能体与模型

查看项目

更新于 10-16 04:31

技能介绍

用途:为远程 MCP 服务器添加生产级 OAuth 2.0 PKCE 认证。当 MCP 服务器需要访问用户专属数据(账户、文件、播放列表等)时,无认证会导致任何拿到服务器 URL 的人都能访问他人数据,OAuth 让每个用户用自己的凭据认证并获得自己的令牌。

架构:MCP 服务器同时扮演两个角色——对 MCP 客户端(Claude、Smithery)来说是颁发自有令牌的 OAuth 服务器;对上游服务(Tidal、GitHub、Slack 等)来说是交换令牌的 OAuth 客户端。流程为:发现 OAuth、注册客户端、授权、重定向到上游登录、回调、下发授权码、交换令牌、调用工具。

所需端点:OAuth 发现(.well-known/oauth-authorization-server)、受保护资源元数据(.well-known/oauth-protected-resource)、动态客户端注册(RFC 7591)、授权端点、上游回调端点、令牌交换端点。用 mcp-handler 的 withMcpAuth 包裹处理器,建议 required: false,以便客户端在未认证时也能发现工具,认证在工具访问用户数据时执行。

令牌存储:使用 Upstash Redis,安装命令为 npm install @upstash/redis,通过 Vercel Marketplace 创建存储后环境变量自动注入。存储模式包括 session(10 分钟)、auth_code(5 分钟)、user 上游令牌(30 天)、mcp_token(24 小时)、refresh(30 天)。

重定向 URI 允许列表:至少允许 claude.ai、claude.com、api.smithery.ai、localhost、127.0.0.1,校验应基于主机名而非完整 URL 匹配,因为客户端回调路径可能不同。

限制:以上内容来自公开资料,实际部署细节、收费与平台支持情况暂未提供,请自行核实。