MCP версии 2 выходит в эксплуатацию 28 июля 2026 года. Она отказывается от всех рукопожатий (handshakes), заголовков session-ID и трех устаревших подсистем, которые привязывали Model Context Protocol (MCP) к серверам с привязкой сессий (sticky sessions). Протокол становится полностью безстейтовым (stateless), поэтому любой экземпляр с автомасштабированием или serverless-инстанс может обрабатывать любой запрос без необходимости сохранения состояния клиента.

Почему это важно

MCP v1 заставлял клиента начинать сессию с рукопожатия initialize; затем сервер назначал Mcp-Session-Id. Каждый последующий вызов должен был содержать этот заголовок, привязывая пользователя к одному узлу бэкенда. Балансировщикам нагрузки приходилось обеспечивать привязку сессий (session affinity), что увеличивало задержки и усложняло эксплуатацию.

Отсутствие состояния (statelessness) устраняет эти сложности. Весь контекст теперь хранится в специальных метаполях, которые передаются с каждым HTTP-вызовом. Запрос может попасть на любой экземпляр, быть обработанным, а экземпляр может быть удален сразу после отправки ответа. Команды, использующие serverless-платформы, кластеры под управлением оркестраторов контейнеров или любую среду, которая динамически создает и удаляет поды, теперь могут привести протокол в соответствие со своей инфраструктурой.

Что выводится из эксплуатации

Три подсистемы, зависевшие от постоянных соединений, официально признаны устаревшими (deprecated):

  • Sampling — В v1 сервер мог попросить клиента сгенерировать текст, что требовало открытой сессии. В v2 ожидается, что сервер будет вызывать провайдера больших языковых моделей (LLM) напрямую или использовать паттерн InputRequiredResult, при котором клиент предоставляет недостающие данные в последующем запросе.
  • Roots — Ранее клиенты отправляли URI, которые ограничивали область видимости внешних ресурсов для сервера. Новый подход передает эти URI в качестве параметров инструментов или встраивает их в поля ресурсов запроса, устраняя отдельный этап согласования «корней» (roots).
  • Logging — Заголовки логирования на уровне протокола исчезают. Используйте stderr для локальной отладки или внедряйте OpenTelemetry для мониторинга в продакшене.

Период вывода из эксплуатации составляет один год. Устаревшие функции продолжат работать в течение этого времени, давая командам возможность провести рефакторинг до того, как протокол перестанет их поддерживать.

Что нового, помимо отсутствия состояния

MCP v2 добавляет два официальных расширения:

  • MCP Apps — Легковесный способ описания пользовательских интерфейсов, отрисовываемых на стороне сервера, которые протокол может вызывать.
  • Tasks — Паттерн для обработки длительных операций, которые могут охватывать несколько циклов «запрос-ответ».

Оба расширения опираются на модель безстейтовых запросов и избегают скрытого состояния сессии.

Риски и контраргументы

Это изменение не является обновлением по принципу «подключил и забыл» (plug-and-play). SDK версии 2 все еще находятся в стадии бета-тестирования, и их публичные API могут измениться до выхода стабильного релиза. Для рабочих нагрузок в продакшене, которые не допускают критических изменений (breaking changes), оставайтесь на стабильном SDK v1 до тех пор, пока SDK v2 не выйдет из стадии бета-тестирования.

Разработчикам также необходимо провести аудит существующего кода на предмет использования любой из трех устаревших подсистем.

Прагматичный план миграции

  1. Проведите аудит сегодня — Просканируйте свои сервисы на предмет использования рукопожатий, Mcp-Session-Id, вызовов sampling, URI корней (roots) и логирования на уровне протокола. Выявите код, который перестанет работать в безстейтовой модели.
  2. Протестируйте на некритичном узле — Когда выйдет стабильный SDK v2, разверните сервер в песочнице, подключите к нему тестового клиента и убедитесь, что все необходимые метаполя присутствуют и правильно интерпретируются.
  3. Полная миграция до дедлайна — Завершите переход на всех рабочих узлах до окончания годового льготного периода, чтобы избежать отказов в работе во время выполнения.

На что обратить внимание дальше

  • Выпуск стабильного SDK — Бета-версии SDK будут заморожены, и будет опубликован версионный стабильный пакет. Эта версия станет безопасной целью для любого критически важного развертывания.

Переход потребует изменений в коде и короткого периода экспериментов с бета-SDK, но результатом станет более чистая и масштабируемая точка интеграции для любого приложения на базе LLM.

Итог: Если ваш стек все еще опирается на рукопожатия MCP или три устаревшие подсистемы, начинайте аудит прямо сейчас; годовой льготный период — это щедро, но реальная цена — это усилия на рефакторинг, а не дедлайн.