Обмен одноразового кода на MCP-токен. Вызывает агент с исходным PKCE verifier; фронтенд этот метод не вызывает.
POST form /mcp-auth.php?method=token
| Название | Описание | Тип | Обязательный |
| grant_type | Всегда authorization_code | Строка | Да |
| client_id | Зарегистрированный клиент. В пилоте: iq-academy-pilot | Строка | Да |
| code | Одноразовый код из callback, действует 120 секунд | Строка | Да |
| redirect_uri | Callback агента. В пилоте: http://127.0.0.1:PORT/callback или http://[::1]:PORT/callback, PORT 1024–65535. При обмене кода должен совпасть полностью. | Строка | Да |
| resource | Всегда https://api.iq.academy/mcp.php | Строка | Да |
| code_verifier | Исходный PKCE verifier агента, 43–128 допустимых ASCII-символов | Строка | Да |
Условные значения REQUEST_ID_FROM_LOGIN_URL, IQ_SESSION_TOKEN, ONE_TIME_CODE и MCP_ACCESS_TOKEN замените своими. Пример PKCE-пары иллюстративный; агент создаёт собственную случайную пару для каждого подключения.
POST https://api.iq.academy/mcp-auth.php?method=token Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&client_id=iq-academy-pilot&code=ONE_TIME_CODE&redirect_uri=http%3A%2F%2F127.0.0.1%3A49231%2Fcallback&resource=https%3A%2F%2Fapi.iq.academy%2Fmcp.php&code_verifier=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "MCP_ACCESS_TOKEN",
"token_type": "Bearer",
"expires_in": 2592000,
"scope": "read write",
"actor_id": "3",
"course_id": null
}
| Код | Описание |
| invalid_request | Некорректные параметры или формат запроса. |
| invalid_grant | Код истёк, использован или не совпадают PKCE / параметры обмена. |
| server_error / temporarily_unavailable | Сервис временно недоступен. |
{"error": "invalid_request", "error_description": "Invalid request parameters."}
Доступ требует enable_mcp=yes у авторизованного пользователя и выбранного курса, а также роли владельца или администратора. Секреты не сохраняются формой. Для реального запроса используйте request_id и PKCE-параметры своего приложения агента.
Введите данные и нажмите выполнить |