MCP переписали на stateless: вышел release candidate спецификации 2026-07-28

Крупнейшая ревизия Model Context Protocol с момента запуска: никакого initialize-хендшейка и session id, кэширование списков инструментов, расширения MCP Apps и Tasks. Есть ломающие изменения.

DB
DBG · по материалам Model Context Protocol Blog
0

21 мая команда Model Context Protocol опубликовала release candidate спецификации 2026-07-28 — по их же формулировке, самую большую ревизию протокола с момента запуска. Финальная версия выходит 28 июля, между RC и релизом — десять недель, за которые мейнтейнеры SDK и клиентов должны прогнать изменения на реальных нагрузках.

Главное изменение: протокол стал stateless на уровне ядра. Исчезают хендшейк initialize и заголовок Mcp-Session-Id; метаданные клиента едут в _meta в каждом запросе. Практический эффект — удалённый MCP-сервер, которому раньше нужны были sticky-сессии, общее хранилище состояния и разбор тела запроса на гейтвее, теперь живёт за обычным round-robin балансировщиком. Транспорт Streamable HTTP требует заголовки Mcp-Method и Mcp-Name, чтобы гейтвеи и rate-limiter'ы маршрутизировали и считали лимиты, не заглядывая внутрь JSON-RPC. Ответы на list- и read-запросы теперь несут ttlMs и cacheScope: клиент может законно кэшировать tools/list.

Из расширений добавились два заметных. MCP Apps позволяет серверу отдавать интерактивный HTML-интерфейс, который клиент рендерит в песочнице-iframe, — при этом действия из UI идут тем же JSON-RPC путём, что и обычные вызовы инструментов, то есть попадают в тот же аудит-лог. Tasks выехал из экспериментального ядра в официальное расширение и переехал на stateless-модель: жизненным циклом длинной задачи управляет клиент через tasks/get, tasks/update и tasks/cancel. Отдельно подтянули авторизацию — шесть правок в сторону OAuth 2.0 и OpenID Connect, включая обязательную проверку параметра iss и объявление application_type. Ещё зафиксировали W3C Trace Context в _meta, так что распределённые трейсы наконец сшиваются между SDK и гейтвеями.

Что делать тем, кто уже держит MCP-серверы в проде. Во-первых, релиз ломающий — планируйте окно на миграцию SDK, а не «обновимся как-нибудь». Во-вторых, если ваша инфраструктура держалась на sticky-сессиях, это шанс её упростить: убрать привязку к инстансу, вынести кэш tools/list на клиента, разгрузить гейтвей. В-третьих, если у вас MCP-сервер как продукт — сейчас удачный момент прогнать RC на стейджинге и отдать баг-репорты, пока десятинедельное окно не закрылось.

Отдельная заметка для тех, кто пишет клиентов: кэширование списков инструментов через ttlMs меняет поведение агента в рантайме. Инструмент, который сервер уже снял с публикации, может ещё жить в кэше клиента — обработку «инструмент исчез» придётся писать явно.

Комментарии