Главное в ревизии 2026-07-28#
Ревизия вышла 28 июля 2026 года и заменила 2025-11-25. Это самое существенное изменение протокола со времён появления авторизации, поэтому часть материалов о более ранних ревизиях устарела.
- Сессии удалены. Заголовок
Mcp-Session-Idубран из Streamable HTTP, списки больше не зависят от соединения. Состояние между вызовами передаётся явными идентификаторами, которые выдаёт сервер. - Протокол без состояния. Рукопожатие
initializeудалено, каждый запрос несёт версию протокола и возможности клиента в_meta. Несовпадение версий даёт ошибкуUnsupportedProtocolVersion. - Метод
server/discover. Сервер обязан поддерживать его, клиент может вызвать до любых других запросов. - Поток
subscriptions/listen. Он заменил отдельный адрес GET и подписку на ресурсы: клиент подписывается на нужные типы уведомлений. - Удалены
ping,logging/setLevelиnotifications/roots/list_changed. Уровень журнала задаётся в каждом запросе. - Tasks вынесены в расширение
io.modelcontextprotocol/tasks: опрос черезtasks/get, новый методtasks/update, методtasks/listудалён. - Многошаговые запросы (MRTR) заменили запросы сервера к клиенту для опроса пользователя, обращения к модели и получения каталогов.
- Обязательное поле
resultTypeв результатах:completeилиinput_required. - Возобновление потока SSE удалено. Прерванный ответ означает потерю запроса, клиент отправляет его заново с новым идентификатором.
Остальные изменения#
- Поле
extensionsв возможностях клиента и сервера для необязательных расширений. - Договорённости об OpenTelemetry: поля
traceparent,tracestate,baggageв_meta. - Список инструментов должен отдаваться в стабильном порядке, чтобы клиенты могли его кэшировать.
- Заголовки
Mcp-MethodиMcp-Nameобязательны для запросов POST; черезx-mcp-headerможно выносить в заголовки параметры инструментов. - Поля
ttlMsиcacheScopeобязательны в результатах списков и чтения ресурса. - Код ошибки «ресурс не найден» заменён с
-32002на-32602. - Схемы
inputSchemaиoutputSchemaдопускают любые ключевые слова JSON Schema 2020-12, структурированный результат может быть любым значением JSON. - Уведомление об окончании запроса данных у пользователя удалено: клиент узнаёт результат, повторяя исходный запрос.
- Введена политика распределения кодов ошибок: диапазон от -32020 до -32099 зарезервирован за спецификацией.
- Изменения авторизации: параметр
iss,application_typeпри динамической регистрации, привязка учётных данных клиента к серверу авторизации (подробности на странице «Авторизация»).
Что устарело#
Эти возможности остаются в спецификации, но запланированы к удалению. Минимальное окно — двенадцать месяцев. Новые реализации не должны их использовать.
| Возможность | Что использовать вместо |
|---|---|
| Roots (корневые каталоги) устарело | Пути в параметрах инструментов, адреса ресурсов или настройки сервера |
| Sampling (сэмплинг) устарело | Прямая работа с интерфейсом поставщика модели |
| Logging (журналирование) устарело | Вывод в stderr для stdio или OpenTelemetry |
| Транспорт HTTP+SSE устарело | Streamable HTTP |
| Значения includeContext «thisServer» и «allServers» устарело | Не указывать поле или использовать «none»; значения удалят не позднее самого Sampling |
| Динамическая регистрация клиента (DCR) устарело | Документы метаданных клиента (CIMD); DCR остаётся для совместимости |
Перечень устаревших возможностей ведётся в самой спецификации. Эта таблица отражает его на 03.10.2026.
Как читать материалы о прежних ревизиях#
Если в статье или документации встречаются перечисленные ниже понятия, она описывает ревизию 2025-11-25 или более раннюю:
| Признак в тексте | Что с ним теперь |
|---|---|
Рукопожатие initialize и initialized | Удалено |
Заголовок Mcp-Session-Id, «сессия MCP» | Удалены |
Запросы elicitation/create, sampling/createMessage, roots/list от сервера | Заменены многошаговыми запросами |
Метод ping, logging/setLevel | Удалены |
Tasks как часть ядра, tasks/result, tasks/list | Вынесены в расширение, заменены опросом |
Возобновление SSE по Last-Event-ID | Удалено |
| Регистрация клиентов через DCR как основной способ | Устарело в пользу CIMD |