Новость

MCP отказался от обязательных сессий, но не стал полностью без состояния

В спецификации MCP от 28 июля 2026 года каждый запрос должен содержать сведения, которые раньше согласовывались при подключении. Серверу больше не требуется помнить конкретного клиента, хотя состояние из приложений никуда не исчезло.

BadMadSam1 просмотров
MCP отказался от обязательных сессий, но не стал полностью без состояния

Автор: ИИ Copilot Designer//DALL·E 3

Model Context Protocol связывает приложения на базе языковых моделей с внешними инструментами и источниками данных. В прежней версии клиент начинал работу с запросов initialize и initialized. Во время этого обмена стороны согласовывали версию протокола и доступные возможности, после чего сервер сохранял состояние соединения.

Такая схема нормально работает с одним сервером. При росте нагрузки начинаются сложности: следующие запросы клиента нужно направлять на тот же экземпляр, который провел инициализацию. Для этого используют привязку сессии к серверу либо общее хранилище состояния. Оба варианта усложняют инфраструктуру и восстановление после сбоя.

В редакции MCP 2026-07-28 обязательный обмен initialize и initialized удален. Версия протокола, возможности клиента и его идентификационные данные передаются с каждым запросом. Сервер может заранее сообщить поддерживаемые версии и функции через новый метод server/discover, но клиент не обязан вызывать его перед началом работы.

01_898x1117_a5b4b91a38

Фото: ITHome

Одновременно из транспорта Streamable HTTP убрали заголовок Mcp-Session-Id. Независимые запросы теперь может принимать любой доступный экземпляр сервера. Обычному балансировщику не нужно удерживать клиента на одном узле, поэтому MCP-серверы проще распределять между контейнерами, облачными функциями и другими кратковременно работающими экземплярами.

Но формулировку о полностью безсессионном MCP следует воспринимать аккуратно. Без состояния стал базовый уровень протокола, а не вся система вокруг него. Инструмент может вернуть идентификатор операции, документа или задачи, который клиент передаст при следующем обращении. Для уведомлений предусмотрены потоки, живущие в пределах отдельного HTTP-запроса. Длительные операции вынесены в расширение Tasks.

Иными словами, состояние теперь должно быть явно связано с конкретной задачей, а не скрыто внутри обязательной сессии MCP. Это ближе к устройству обычных HTTP-сервисов: сервер получает самодостаточный запрос либо явную ссылку на данные, которые нужно продолжить обрабатывать.

02_898x1434_830a174f8a

Фото: ITHome

Разработчикам существующих серверов не требуется срочно переписывать код. Публикация спецификации не отключает редакцию 2025-11-25, а новые клиенты и SDK могут поддерживать прежний обмен initialize для совместимости. Переход на новый режим остается отдельным решением владельца сервера.

Поэтому главное следствие обновления связано не с возможностями ИИ-моделей. MCP стало проще масштабировать без специальной инфраструктуры для хранения протокольных сессий. Состояние сохранилось там, где оно действительно нужно приложению, но перестало быть обязательной платой за каждый вызов инструмента.

Другие новости

Источник: ITHome