Строка 156: |
Строка 156: |
| ==== HTTP + SSE (Server-Sent Events) / Streamable HTTP ==== | | ==== HTTP + SSE (Server-Sent Events) / Streamable HTTP ==== |
| Транспорт HTTP+[[Server-sent events|SSE]] используется для удалённого взаимодействия, когда клиент и сервер могут находиться на разных машинах: Обмен данными осуществляется по протоколу [[HTTP]], при этом сервер использует события, отправляемые сервером (SSE), для передачи обновлений клиенту по постоянному соединению. Этот транспорт используется для подключения к удалённым API, облачным сервисам или общим ресурсам. Основные преимущества этого транспорта заключаются в его сетевой работе, интеграции с веб-сервисами и совместимости с бессерверными средами. В последних обновлениях стандарта MCP был представлен транспорт [[Streamable HTTP]]. Он обеспечивает большую гибкость, позволяя серверам динамически обновляться до SSE для потоковой передачи при необходимости, сохраняя при этом совместимость с [[Бессерверная среда|бессерверными средами]]. | | Транспорт HTTP+[[Server-sent events|SSE]] используется для удалённого взаимодействия, когда клиент и сервер могут находиться на разных машинах: Обмен данными осуществляется по протоколу [[HTTP]], при этом сервер использует события, отправляемые сервером (SSE), для передачи обновлений клиенту по постоянному соединению. Этот транспорт используется для подключения к удалённым API, облачным сервисам или общим ресурсам. Основные преимущества этого транспорта заключаются в его сетевой работе, интеграции с веб-сервисами и совместимости с бессерверными средами. В последних обновлениях стандарта MCP был представлен транспорт [[Streamable HTTP]]. Он обеспечивает большую гибкость, позволяя серверам динамически обновляться до SSE для потоковой передачи при необходимости, сохраняя при этом совместимость с [[Бессерверная среда|бессерверными средами]]. |
| + | |
| + | === Пример полного цикла обмена информацией в MCP === |
| + | Ниже представлен пример полного цикл взаимодействия Клиента (💻) и Сервера (🌐) в контексте протокола MCP. |
| + | |
| + | ==== Инициализация работы ==== |
| + | Клиент подключается к серверу, и они обмениваются доступными им версиями протокола и его опциями/возможностями. |
| + | {| class="wikitable" |
| + | |💻 |
| + | |→ инициализация соединения |
| + | |🌐 |
| + | |- |
| + | |💻 |
| + | |← |
| + | ответ |
| + | |🌐 |
| + | |- |
| + | |💻 |
| + | |→ |
| + | подтверждение инициализации |
| + | |🌐 |
| + | |} |
| + | Клиент подтверждает завершение инициализации с помощью уведомления (notification). |
| + | |
| + | ==== Обнаружение возможностей ==== |
| + | Клиент запрашивает информацию о доступных возможностях сервера, а cервер отвечает списком доступных инструментов. |
| + | {| class="wikitable" |
| + | |💻 |
| + | |→ |
| + | список доступных инструментов |
| + | |🌐 |
| + | |- |
| + | |💻 |
| + | |← |
| + | ответ |
| + | |🌐 |
| + | |} |
| + | Этот процесс можно повторить для каждого инструмента, ресурса или типа подсказки. |
| + | |
| + | ==== Выполнение конкретной задачи ==== |
| + | Клиент использует возможности Сервера, основываясь на потребностях Хоста. |
| + | {| class="wikitable" |
| + | |💻 |
| + | |→ |
| + | запрос инструмента |
| + | |🌐 |
| + | |- |
| + | |💻 |
| + | |← |
| + | опциональная нотификация (или несколько) |
| + | |🌐 |
| + | |- |
| + | |💻 |
| + | |← |
| + | ответ |
| + | |🌐 |
| + | |} |
| + | |
| + | ==== Завершение работы ==== |
| + | Соединение корректно закрывается, когда оно больше не нужно, и сервер подтверждает запрос на завершение работы |
| + | {| class="wikitable" |
| + | |💻 |
| + | |→ |
| + | завершение сессии |
| + | |🌐 |
| + | |- |
| + | |💻 |
| + | |← |
| + | подтверждение завершения сессии |
| + | |🌐 |
| + | |- |
| + | |💻 |
| + | |→ |
| + | выход |
| + | |🌐 |
| + | |} |
| + | Клиент отправляет финальное сообщение о выходе для завершения завершения операции. |
| | | |
| == Внедрение == | | == Внедрение == |