OAuth2 авторизация для MCP API
Для доступа к MCP REST API используйте обычный OAuth2 Authorization Code flow. Bearer token затем передаётся в Authorization: Bearer <access_token> при вызовах /api/v1/*.
- Перенаправьте пользователя на
/oauth/authorize?client_id=...&redirect_uri=...&response_type=code&scope=.... - После подтверждения доступа обменяйте полученный
codeна токены черезPOST /oauth/token. - Используйте
access_tokenкак bearer для вызовов MCP API. - Когда
access_tokenистечёт, обновите его черезPOST /oauth/tokenсgrant_type=refresh_token. - Для отзыва текущего набора токенов вызовите
POST /api/oauth/revokeс текущим bearer token.
POST /oauth/token Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &client_id=YOUR_CLIENT_ID &client_secret=YOUR_CLIENT_SECRET &redirect_uri=https://example.com/callback &code=AUTHORIZATION_CODE
POST /oauth/token Content-Type: application/x-www-form-urlencoded grant_type=refresh_token &refresh_token=REFRESH_TOKEN &client_id=YOUR_CLIENT_ID &client_secret=YOUR_CLIENT_SECRET
Доступные MCP scopes сейчас включают smarthome.profile.read, smarthome.structure.read, smarthome.scenes.manage, smarthome.schedules.manage и smarthome.mqtt.connect.
Не путайте OAuth2 bearer token для MCP REST API с
GET /api/v1/token. Этот endpoint выдаёт короткоживущий JWT только для MQTT-подключения.