MCP выбросил сессии: крупнейшее обновление протокола с момента запуска

MCP выбросил сессии: крупнейшее обновление протокола с момента запуска

28 июля вышла новая спецификация Model Context Protocol — версия 2026-07-28. Это самое крупное изменение стандарта с момента его появления.

MCP — общий язык, на котором ИИ-агенты разговаривают с внешними инструментами: базами, API, репозиториями. Сейчас протокол развивается в Agentic AI Foundation под крылом Linux Foundation.

Главное изменение — протокол стал stateless. Раньше клиент и сервер начинали с рукопожатия initialize/initialized, а дальше держались за общий Mcp-Session-Id. Теперь нет ни того, ни другого: каждый запрос сам несёт версию протокола, данные о клиенте и список нужных возможностей. Узнать заранее, что умеет сервер, можно через новый метод server/discover, но это необязательно.

Звучит скучно, но это снимает главную боль эксплуатации. Раньше все запросы одного пользователя приходилось гнать на один и тот же сервер или заводить общую базу для хранения сессий. Теперь MCP-сервер разворачивается как обычный HTTP-сервис — Kubernetes, serverless, edge — и масштабируется за любым балансировщиком.

Состояние приложения никуда не делось. Корзина покупок или позиция в браузере возвращаются как идентификатор, который агент явно передаёт в следующем вызове инструмента. То, что пряталось внутри соединения, стало обычным аргументом.

Для уточняющих вопросов придумали MRTR — Multi Round-Trip Requests. Если серверу нужно подтверждение перед удалением данных, он отвечает статусом input_required и вопросом. Клиент спрашивает пользователя и отправляет тот же запрос заново, уже с ответом.

Заголовки Mcp-Method и Mcp-Name стали обязательными: шлюзы и файрволы маршрутизируют трафик, не разбирая JSON. У списков инструментов появились время жизни (ttlMs), область кеширования и фиксированный порядок сортировки — промпт перестаёт меняться от подключения к подключению, и кеш не сбрасывается.

Долгие задачи (MCP Tasks) и интерфейсы внутри чата (MCP Apps) вынесли в официальные расширения. В OAuth обязательной стала проверка поля iss, а регистрацию клиента на лету объявили устаревшей.

Устарели также Roots, Sampling, Logging и старый транспорт HTTP + Server-Sent Events. Удалять их будут не раньше чем через 12 месяцев — теперь это официальная политика.

SDK для TypeScript, Python, Go и C# обновились в день релиза, Rust — в бете, обратная совместимость сохранена. GitHub уже перевёл свой MCP-сервер на новую спецификацию и выкинул Redis, где хранил сессии. Anthropic внедряет поддержку в продукты Claude — в каталоге коннекторов больше 950 MCP-серверов.

Всё, что завязано на session ID, придётся переписывать.

Александр Чернов
Александр Чернов

Журналист с техническим бэкграундом, пишущий о практических аспектах внедрения искусственного интеллекта. Бывший главред федерального издания. Любит сбалансированную подачу информации без хайпа.