用途:为用户现有的 MCP 服务器加上 OAuth 2.1 保护,使 agent 能安全调用用户自己的 MCP 服务。仅用于 MCP OAuth 场景,不添加 API Key,也不用于把 AgentKit 工具通过 MCP 暴露。
主要能力与硬性约束:必须使用 Streamable HTTP(stdio 无法做 OAuth);保持 /.well-known/oauth-protected-resource 公开;令牌缺失或无效时返回 401,并带 WWW-Authenticate 与 resource_metadata;调用 validateToken 时需以控制台 Server URL 作为 audience;注册顺序必须为 well-known → Bearer 中间件 → MCP POST。写 Node 文件后即停止,不运行 npm install,不启动服务器。
使用方式:默认路径为 Node + Express + Streamable HTTP;FastAPI 参见 references/fastapi.md,FastMCP Scalekit provider 参见 references/fastmcp.md。环境变量读取 SCALEKIT_ENVIRONMENT_URL、SCALEKIT_CLIENT_ID、SCALEKIT_CLIENT_SECRET(不是 SCALEKIT_ENV_URL),且不要为其补加 https://。先在 app.scalekit.com 的 MCP servers 中添加服务器,启用动态客户端注册与 CIMD,设置 Server URL(本地默认 http://localhost:3002/,保留末尾斜杠),复制 Metadata JSON。audience 必须与控制台 Server URL 完全一致,含末尾斜杠;若为空则使用生成的 resource id。复用已有的 Express app,不要新建第二个 express() 实例。
验证:使用 curl -i -X POST http://localhost:3002/ 与 curl -i http://localhost:3002/.well-known/oauth-protected-resource;MCP POST 应返回 401 及 resource_metadata,well-known 应返回含 resource、authorization_servers、scopes_supported 的 JSON。该技能只将命令交给用户,不代为执行。
可选范围:如用户要求工具级 scopes,可在 validateToken 中传 requiredScopes,例如 ['todo:write'],权限不足返回 403 insufficient_scope。缺失环境变量时可用 setup-saaskit,需要 API Key 或客户端凭证时用 add-api-auth。原文未说明费用与其他平台限制。