Завершить запрос с согласием или отказом. Требуется обычный IQ session token пользователя. Возвращает redirect_url; форма показывает результат, автоматически не перенаправляет.
POST JSON /mcp-auth.php?method=complete
| Название | Описание | Тип | Обязательный |
| iq_bearer | Обычный IQ session token. Передаётся только в заголовке Authorization: Bearer, не в теле/URL. Для inspect до входа необязателен. | Строка | Да |
| request_id | Идентификатор запроса из ссылки /login?type=mcp&request_id=… | Строка | Да |
| approved | Согласие: boolean true или false. Фронт вызывает complete только после обязательной галочки с true; false поддерживается протоколом для отказа. | Boolean | Да |
Условные значения REQUEST_ID_FROM_LOGIN_URL, IQ_SESSION_TOKEN, ONE_TIME_CODE и MCP_ACCESS_TOKEN замените своими. Пример PKCE-пары иллюстративный; агент создаёт собственную случайную пару для каждого подключения.
POST https://api.iq.academy/mcp-auth.php?method=complete
Authorization: Bearer IQ_SESSION_TOKEN
Content-Type: application/json
{
"request_id": "REQUEST_ID_FROM_LOGIN_URL",
"approved": true
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"ok": true,
"data": {
"status": "approved",
"redirect_url": "http://127.0.0.1:49231/callback?code=ONE_TIME_CODE&state=RANDOM_STATE&iss=https%3A%2F%2Fapi.iq.academy",
"code_expires_in": 120
}
}
Фронт перенаправляет пользователя через window.location.replace(data.redirect_url). Форме ниже переход не выполняет: она только показывает ответ. При approved=false протокол возвращает status=denied и redirect_url с error=access_denied; текущий фронт требует галочку и отправляет true.
{
"ok": true,
"data": {
"status": "denied",
"redirect_url": "http://127.0.0.1:49231/callback?error=access_denied&state=RANDOM_STATE&iss=https%3A%2F%2Fapi.iq.academy"
}
}| Код | Описание |
| VALIDATION_ERROR | Некорректные параметры. |
| TOKEN_NOT_FOUND | Требуется действующая сессия IQ. |
| FORBIDDEN | Аккаунту или курсу недоступен MCP. |
| CONFLICT | Запрос истёк или уже завершён. |
| RATE_LIMITED | Слишком много попыток. |
| FEATURE_UNAVAILABLE / UPSTREAM_ERROR | Подключение временно недоступно. |
Как в существующем API: ошибка возвращается с HTTP 200, error — строка с кодом. Проверяйте поле error, одного HTTP-статуса недостаточно.
{"error": "TOKEN_NOT_FOUND"}
Доступ требует enable_mcp=yes у авторизованного пользователя и выбранного курса, а также роли владельца или администратора. Секреты не сохраняются формой. Для реального запроса используйте request_id и PKCE-параметры своего приложения агента.
Введите данные и нажмите выполнить |