用途
该技能用于指导开发者使用 Scalekit 为 MCP(Model Context Protocol)服务器添加 OAuth 2.1 授权。它提供了一套完整的设置流程,包括配置发现端点、实现令牌验证中间件、可选的基于作用域的授权,以及最终的验证与部署。
主要能力
- 引导完成 MCP OAuth 设置清单,涵盖从安装 SDK 到测试的六个步骤。
- 提供 Node.js 和 Python 两种语言的代码示例,用于实现发现端点、令牌验证中间件和基于作用域的授权。
- 强调关键安全护栏,例如必须使用 Streamable HTTP 传输、必须验证令牌受众、发现端点必须公开访问、无效令牌必须返回带 WWW-Authenticate 头的 401 响应。
- 包含验证步骤,通过 curl 命令检查 401 响应、WWW-Authenticate 头和元数据端点可达性。
- 列出常见问题及其排查方法。
使用方式
- 安装 Scalekit SDK:Node.js 使用
npm install @scalekit-sdk/node,Python 使用pip install scalekit-sdk-python。 - 在 Scalekit 仪表板注册 MCP 服务器,启用动态客户端注册和 Client ID Metadata Document,并配置服务器 URL、访问令牌生命周期和作用域。
- 实现
/.well-known/oauth-protected-resource发现端点,返回授权服务器、支持的 bearer 方法、资源标识、文档链接和支持的作用域。 - 添加令牌验证中间件,初始化 Scalekit 客户端,提取 Bearer 令牌,验证令牌受众,并在失败时返回 401 和 WWW-Authenticate 头。
- 可选地添加基于作用域的工具授权,在工具执行级别进行细粒度访问控制。
- 验证集成:使用 curl 检查 401 响应、WWW-Authenticate 头和元数据端点,然后使用 Claude Desktop、Cursor 和 VS Code 等 AI 主机进行测试。
适用场景
- 需要为 MCP 服务器添加 OAuth 2.1 授权的开发者。
- 使用 Node.js(Express)或 Python(FastAPI、FastMCP)构建 MCP 服务器的项目。
- 需要实现安全访问控制、令牌验证和基于作用域授权的场景。
限制
- 必须使用 Streamable HTTP 传输,stdio 不支持 OAuth。
- 发现端点必须公开访问,不能受认证中间件保护。
- 无效令牌必须返回带 WWW-Authenticate 头的 401 响应,否则 AI 主机会静默失败。
- 需要 Scalekit 账户和仪表板配置,部分步骤需用户手动完成。
- 代码示例中的占位符需替换为实际值。
- 未提供关于收费、价格或具体平台支持的详细信息。