SuperAPI AI 工具集

adding-mcp-oauth

安全与审计

查看项目

更新于 10-16 04:18

技能介绍

用途

该技能用于指导开发者使用 Scalekit 为 MCP(Model Context Protocol)服务器添加 OAuth 2.1 授权。它提供了一套完整的设置流程,包括配置发现端点、实现令牌验证中间件、可选的基于作用域的授权,以及最终的验证与部署。

主要能力

  • 引导完成 MCP OAuth 设置清单,涵盖从安装 SDK 到测试的六个步骤。
  • 提供 Node.js 和 Python 两种语言的代码示例,用于实现发现端点、令牌验证中间件和基于作用域的授权。
  • 强调关键安全护栏,例如必须使用 Streamable HTTP 传输、必须验证令牌受众、发现端点必须公开访问、无效令牌必须返回带 WWW-Authenticate 头的 401 响应。
  • 包含验证步骤,通过 curl 命令检查 401 响应、WWW-Authenticate 头和元数据端点可达性。
  • 列出常见问题及其排查方法。

使用方式

  1. 安装 Scalekit SDK:Node.js 使用 npm install @scalekit-sdk/node,Python 使用 pip install scalekit-sdk-python。
  2. 在 Scalekit 仪表板注册 MCP 服务器,启用动态客户端注册和 Client ID Metadata Document,并配置服务器 URL、访问令牌生命周期和作用域。
  3. 实现 /.well-known/oauth-protected-resource 发现端点,返回授权服务器、支持的 bearer 方法、资源标识、文档链接和支持的作用域。
  4. 添加令牌验证中间件,初始化 Scalekit 客户端,提取 Bearer 令牌,验证令牌受众,并在失败时返回 401 和 WWW-Authenticate 头。
  5. 可选地添加基于作用域的工具授权,在工具执行级别进行细粒度访问控制。
  6. 验证集成:使用 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 账户和仪表板配置,部分步骤需用户手动完成。
  • 代码示例中的占位符需替换为实际值。
  • 未提供关于收费、价格或具体平台支持的详细信息。