用途:在 Python 的 FastAPI 与 FastMCP 组合服务器上接入 Scalekit OAuth 认证,适合需要 FastAPI 级中间件对令牌校验与请求处理进行控制的场景;若构建独立 MCP 服务器且无需 FastAPI 特性,应改用 mcp-auth-fastmcp-scalekit 技能。
主要能力:通过 @app.middleware("http") 校验 Authorization: Bearer 令牌,缺令牌或校验失败返回 401 并附带 WWW-Authenticate 头;放行 /.well-known/oauth-protected-resource 与 /health 公共路径;用 scalekit_client.validate_access_token(token, options=TokenValidationOptions(issuer=SK_ENV_URL, audience=[EXPECTED_AUDIENCE])) 校验;把 FastMCP 以 lifespan=mcp_app.lifespan 挂载到 / 并注册至少一个 @mcp.tool。
使用方式:新建项目可 mkdir 目录、python3 -m venv .venv、source .venv/bin/activate、pip install -r assets/requirements.txt,配置 .env 后 python main.py,并用 npx @modelcontextprotocol/inspector@latest 连接 http://localhost:3002/ 测试。改造现有应用需按顺序:由 FastMCP 创建 mcp_app,创建 FastAPI(lifespan=mcp_app.lifespan),加 CORS 中间件,加认证中间件,加公共路由,最后 app.mount("/", mcp_app)。需收集 PORT(默认 3002)、SK_ENV_URL、SK_CLIENT_ID、SK_CLIENT_SECRET、EXPECTED_AUDIENCE(须与 Scalekit 注册的 Server URL 一致,含尾斜杠)、PROTECTED_RESOURCE_METADATA。
限制:挂载顺序敏感,mount 必须最后;若原应用已有 lifespan 需合并;若 POST / 已被占用,改装到 /mcp 并更新 RESOURCE_METADATA_URL。具体收费、定价与效果资料暂未提供。