mcp/token

Обмен одноразового кода на MCP-токен. Вызывает агент с исходным PKCE verifier; фронтенд этот метод не вызывает.

POST form /mcp-auth.php?method=token

Параметры

НазваниеОписаниеТипОбязательный
grant_typeВсегда authorization_codeСтрокаДа
client_idЗарегистрированный клиент. В пилоте: iq-academy-pilotСтрокаДа
codeОдноразовый код из callback, действует 120 секундСтрокаДа
redirect_uriCallback агента. В пилоте: 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-параметры своего приложения агента.

Введите данные и нажмите выполнить