MCPprotocol.ru

Главная / Изменения и устаревшее

Изменения и устаревшее

Что изменилось в ревизии 2026-07-28 и какие возможности MCP признаны устаревшими. Страница нужна, чтобы отличать актуальные материалы от устаревших.

Ревизия MCP 2026-07-28 · проверено 03.10.2026 · Markdown

Главное в ревизии 2026-07-28#

Ревизия вышла 28 июля 2026 года и заменила 2025-11-25. Это самое существенное изменение протокола со времён появления авторизации, поэтому часть материалов о более ранних ревизиях устарела.

  1. Сессии удалены. Заголовок Mcp-Session-Id убран из Streamable HTTP, списки больше не зависят от соединения. Состояние между вызовами передаётся явными идентификаторами, которые выдаёт сервер.
  2. Протокол без состояния. Рукопожатие initialize удалено, каждый запрос несёт версию протокола и возможности клиента в _meta. Несовпадение версий даёт ошибку UnsupportedProtocolVersion.
  3. Метод server/discover. Сервер обязан поддерживать его, клиент может вызвать до любых других запросов.
  4. Поток subscriptions/listen. Он заменил отдельный адрес GET и подписку на ресурсы: клиент подписывается на нужные типы уведомлений.
  5. Удалены ping, logging/setLevel и notifications/roots/list_changed. Уровень журнала задаётся в каждом запросе.
  6. Tasks вынесены в расширение io.modelcontextprotocol/tasks: опрос через tasks/get, новый метод tasks/update, метод tasks/list удалён.
  7. Многошаговые запросы (MRTR) заменили запросы сервера к клиенту для опроса пользователя, обращения к модели и получения каталогов.
  8. Обязательное поле resultType в результатах: complete или input_required.
  9. Возобновление потока 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 при динамической регистрации, привязка учётных данных клиента к серверу авторизации (подробности на странице «Авторизация»).

Что устарело#

Эти возможности остаются в спецификации, но запланированы к удалению. Минимальное окно — двенадцать месяцев. Новые реализации не должны их использовать.

Устаревшие возможности MCP на ревизию 2026-07-28
ВозможностьЧто использовать вместо
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