Бета · редакция 2026.10-beta1 · MCP 2026-07-28
Multi Round Trip Requests
L15 · MCP 2026-07-28 · открытая бета · редакция 2026.10-beta1
Мне нравится MRTR тем, что сервер может попросить недостающий ввод без скрытого долгоживущего диалога в памяти. Результат input_required возвращает inputRequests и непрозрачный requestState. Клиент обрабатывает запросы ввода и повторяет исходный метод.
Как я это использую
У повтора новый JSON-RPC id. inputResponses сопоставляются с идентификаторами inputRequests, а requestState возвращается неизменным. Сервер защищает состояние от подмены и связывает его с principal, методом, аргументами и сроком действия. Непрозрачность не равна криптографической защите: base64 сам по себе ничего не подписывает.
Разбираем конкретный контракт
Это учебный fixture: поля с доменом .example и идентификаторы вымышлены. Если показан фрагмент, его нужно поместить в соответствующий envelope выбранного профиля.
{
"resultType": "input_required",
"inputRequests": {
"project-choice": {
"method": "elicitation/create",
"params": {
"mode": "form",
"message": "Выберите проект",
"requestedSchema": {
"type": "object",
"properties": {
"project": {
"type": "string"
}
},
"required": [
"project"
]
}
}
}
},
"requestState": "opaque-state-from-server"
}
Лаборатория · L15
Измените условия, проверьте результат и разберите ошибку. Все адреса и данные учебные.
Что легко сломать
Повтор может прийти дважды после сетевого обрыва. Побочный эффект должен иметь отдельную защиту от дублирования. Никогда не доверяйте присланному клиентом состоянию как доказательству уже выданных прав. Отказ пользователя не разрешает продолжить действие.
Практика и самопроверка
Пройти InputRequiredResult → inputResponses → повтор запроса. Проверить новый id, точный возврат opaque requestState и отклонение подменённого состояния.
Я советую сначала предсказать результат, затем изменить один параметр в лаборатории и объяснить разницу. Сохраните небольшой fixture с нормальным и ошибочным случаем для своего проекта. Тренажёр открыт без регистрации; для сохранения ответов на тесты и завершения урока войдите в аккаунт.
В конце страницы — три вопроса. После правильных ответов можно завершить урок; ошибка в следующей тренировке не стирает уже полученное подтверждение этой редакции теста.
На что я опирался
Профиль и ссылки проверены 15 октября 2026. Core, deprecated compatibility и extensions в этом курсе помечены отдельно. Примеры объясняют выбранные сценарии; для реализации сверяйте нормативные MUST/SHOULD и schema соответствующей версии.
Проверка знаний
Читайте свободно. Войдите, чтобы отвечать и сохранять прогресс.