Редакция 2026-07-28: протокол без состояния
28 июля 2026 вышла редакция MCP 2026-07-28: без рукопожатия initialize и без сессий, с многошаговыми запросами, новыми заголовками, кэшем списков и расширениями.
Редакция 2026-07-28 спецификации MCP вышла 28 июля 2026: в этот день проект объявил о выпуске в своём блоге и опубликовал выпуск с такой меткой в репозитории спецификации. Главное в ней - протокол больше не хранит состояние: рукопожатия и сессий нет.
Что изменилось
- Обмен
initialize/initializedи заголовокMcp-Session-Idубраны (SEP-2575, SEP-2567). - Появился запрос
server/discover. Для сервера он обязателен: по списку изменений сервер должен его реализовать. Для клиента он не обязателен: клиент может вызвать его перед любым другим запросом, но может и не вызывать. - Многошаговые запросы, MRTR (SEP-2322), заменили запросы от сервера
elicitation/create,sampling/createMessageиroots/list. Сервер возвращаетresultType: "input_required", клиент повторяет исходный вызов и прикладывает ответы вinputResponses. - Запросы Streamable HTTP обязаны нести заголовки
Mcp-MethodиMcp-Name(SEP-2243). - Ответы
tools/list,prompts/list,resources/listиresources/readнесут поляttlMsиcacheScope(SEP-2549). - Уведомления об изменениях переехали с прежней точки HTTP GET в один поток
subscriptions/listen. Клиент подписывается на каждый вид уведомлений отдельно. - Закреплена модель расширений. Задачи вышли из экспериментального ядра в расширение
io.modelcontextprotocol/tasks(SEP-2663).
Что объявлено устаревшим:
- Roots, Sampling и Logging (SEP-2577). Они работают и будут работать ещё не меньше двенадцати месяцев.
- Dynamic Client Registration - в пользу CIMD. Для обратной совместимости DCR продолжает работать.
- Старый транспорт HTTP+SSE: запись называет его официально устаревшим и отводит на уход год.
Кого это касается
Авторов серверов: в новой редакции сервер обязан реализовать server/discover, а запросы Streamable HTTP приходят с заголовками Mcp-Method и Mcp-Name.
Авторов клиентов: вместо ответа на встречный запрос сервера клиент повторяет свой вызов с ответами в inputResponses.
Тех, кто выбирает SDK: по записи, в день выпуска на редакции 2026-07-28 работали все четыре SDK первого уровня (Tier 1) - TypeScript, Python, Go и C#. Rust SDK поддерживает новую редакцию в бета-версии.
Тех, кто пользуется Roots, Sampling, Logging, DCR или HTTP+SSE: они не выключены, но помечены устаревшими. Запись советует не брать Roots, Sampling и Logging в новые реализации.
Как это выглядит сейчас
Правила работы без состояния собраны на странице «Ядро без состояния», а запрос server/discover разобран на странице «Обнаружение: server/discover». Что менять в своей программе, описано на странице «Переход на редакцию 2026-07-28». Сроки по устаревшим возможностям ведёт страница «Что устарело в MCP».