Протокол MCP получил значительное обновление: он полностью лишен статуса и упрощает HTTP-коммуникации

Новости ИИОпубликовано 5 месяцев назад Круг обмена ИИ
6.8K 00

Основные пункты: MCP Благодаря внедрению транспортной схемы "потокового HTTP" протокол достигает полной безстатусности и упрощает взаимодействие, закладывая основу для более широкого спектра будущих приложений.

MCP 协议迎来重大更新:走向完全无状态化,简化 HTTP 通信

Ключевое предложение по техническому усовершенствованию протокола Message Channel Protocol (MCP) было одобрено, что свидетельствует о более широком будущем этого нового протокола. В основе этого обновления лежит революция в способе передачи данных MCP, делающая его полностью статичным и упрощающая коммуникацию до обычного протокола HTTP.

 

Справочная информация: Ограничения HTTP+SSE

Ранее протокол MCP использовал HTTP плюс SSE (Server Sent Events) для передачи данных. Такой подход имел ряд ограничений:

  • Отключение и повторное подключение не поддерживается
  • Серверы должны поддерживать длительные соединения для обеспечения стабильности
  • Серверные сообщения можно отправлять только через SSE

Инновационные решения: потоковая передача данных HTTP

Для решения этих проблем сообщество предложило транспортную схему "Streaming HTTP". Эта схема содержит следующие ключевые изменения:

  • Отказ от интерфейса /sse: все сообщения между клиентом и сервером передаются единообразно через интерфейс /message (или аналогичный).
  • Эскалация запроса на SSE: сервер может эскалировать запрос клиента на SSE-соединение для получения push-уведомлений или данных в режиме реального времени.
  • Управление идентификатором сеанса: клиент предоставляет идентификатор сеанса в заголовке HTTP-запроса, который сервер может по желанию использовать для идентификации сеанса.
  • Инициировать SSE-поток: клиент может отправить пустой GET-запрос в интерфейс /message, чтобы создать SSE-поток.

Эти усовершенствования позволяют сделать серверы MCP полностью статичными, что устраняет необходимость в постоянном подключении и значительно снижает сложность сервера и потребление ресурсов. В то же время использование чистого протокола HTTP повышает совместимость MCP, позволяя ему лучше вписываться в существующую сетевую инфраструктуру и промежуточное программное обеспечение.

 

Позитивная реакция сообщества

Это предложенное усовершенствование получило широкую поддержку и положительные отзывы от сообщества MCP. shopify, Pydantic, Cloudflare, LangChain, Vercel и Антропология Команда и многие другие организации и люди внесли свой вклад в это дело.

 

Многочисленные преимущества безгражданства

Безгражданство - главная изюминка этого обновления протокола MCP, и оно дает MCP множество преимуществ:

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

 

Перспективы сценариев применения

Реализация MCP без статического состояния открывает новые возможности для многих сценариев применения:

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

 

Зачем нужен потоковый HTTP через WebSocket?

WebSocket также рассматривался при выборе транспортной схемы, но в итоге сообщество выбрало "Потоковый HTTP", руководствуясь следующими соображениями:

  • Накладные расходы в сценариях RPC: для простых сценариев RPC (Remote Procedure Call) принудительное использование WebSocket создает ненужную операционную и сетевую нагрузку.
  • Совместимость с браузерами: WebSocket не так гибок, как SSE, в плане настроек заголовков HTTP-запросов и реализаций сторонних библиотек в среде браузера.
  • Сложность обновления протокола: WebSocket поддерживает только обновление GET-запросов, процесс обновления POST-запросов сложен и увеличивает задержку.
  • Оптимизированная спецификация протокола: спецификация протокола MCP стремится ограничить разнообразие официальных транспортных протоколов, чтобы избежать проблем совместимости.

 

Исследование безопасности

Хотя безгражданство дает множество преимуществ, оно также поднимает вопрос о безопасности, особенно в отношении управления идентификаторами сеансов и авторизации.

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

Для разработчиков, стремящихся к минималистичному серверу, сложные механизмы аутентификации могут быть неприменимы. В режиме stateful сам HTTP-запрос можно считать границей сессии. Однако в модели без состояния все еще остается вопрос о том, как безопасно управлять сессией без HTTP-куки.

Некоторые разработчики предлагают внедрить HTTP-only cookies для управления клиентскими сессиями, а также назначить уникальный идентификатор каждой клиентской сессии и затем управлять несколькими идентификаторами сессий MCP под ним, чтобы достичь иерархического управления сессиями и сбалансировать безопасность и гибкость.

 

Резюме и перспективы

Эволюция протокола MCP в сторону отсутствия статичности является важным шагом на пути к практичности и простоте использования. Ожидается, что принятие схемы "Streaming HTTP" снизит порог развертывания MCP и привлечет больше разработчиков и сценариев применения. Несмотря на то, что в области безопасности еще есть место для дискуссий, мы считаем, что по мере дальнейшего совершенствования сообщества будущее протокола MCP заслуживает внимания.

 

Соответствующие предложения

[RFC] Замена HTTP+SSE новым транспортом "Streamable HTTP" #206 Предлагаемая ссылка: [RFC] Замена HTTP+SSE новым транспортом "Streamable HTTP" #206

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...