MCP — разбираемся раз и навсегда

Продолжаем курс про AI агентов. Серия 2.2 MCP (Model Context Protocol) — подключаем к агенту.

Теория.

Простое определение MCP я давал тут, в контексте тулов. Более научно MCP — это стандартизированный протокол, предназначенный для подключения моделей ИИ к внешним тулам, источникам данных и средам. По существу он решает так называемую проблему MxN: чтобы соединить M AI приложений и N тулов, без MCP нужно создать MxN коннектеров. А с MCP — всего M+N коннектеров.

В контексте MCP говорят о 3-х компонентах:

  1. Host — любое AI приложение, которое обращается к MCP-серверу (например, Cursor, Claude и тд)
  2. Client — это часть Хоста, которая отвечает за общение с MCP сервером
  3. Server — собственно, основная часть, которая оборачивает тулы (и не только!)

Говоря об MCP обычно вспоминают возможность вызывать тулы, но вообще-то возможности этого протокола включают еще 5 пунктов:

  • Resources. Через MCP сервер предоставляет ресурсы, например доп файлы или текст, для доп контекста в использовании тулов.
  • Prompts. Через MCP сервер предоставляет шаблоны промптов для более эффективного использования предоставляемых в этом MCP тулов.
  • Sampling. Сервер MCP может передавать запрос к клиенту, чтобы тот вызвал LLM (вместо того, чтобы обращаться к LLM самостоятельно). Это нужно, чтобы все косты на запросы к LLM прозрачно аггрегировались на стороне клиента.
  • Elicitation. MCP позволяет передавать запрос со стороны сервера к юзеру, чтобы тот передал доп информацию туле (например имя пользователя, контактную информацию и тд).
  • Roots. Эта возможность MCP позволяет передавать запрос со стороны сервера к файловой системе, в которой обитает агент.

Собственно, как вы могли почувствовать, все операции, кроме вызова самого тула — представляют риски для информационной безопасности. Ровно поэтому из всех возможностей MCP серверов чаще всего используются тулы (реже всего используются Elicitation и Roots) ☕

У MCP серверов есть централизованный реестр — это инициатива самих авторов протокола. А чтобы добавить свой MCP сервер — жмак сюда.

MCP SDK — это абстракция над самим MCP, адаптированная под разные языки программирования. С ним запустить свой MCP сервер становится супер просто. Мне нравится пример работы с SDK от Hugging Face.

Практика.

Теперь покодим 🎹. Как обычно, копируйте и заупскайте ноутбук. Сегодня подключаем MCP тулы к AI агенту.

  1. Секция 1 — прокликиваем. Это установка уже привычных нам компонентов. Из новенького импортируется McpToolset — это класс из Google ADK, предназначенный для интеграции инструментов MCP‑сервера в агента
  2. В Секции 2.2 — создается тулсет

mcp_image_server

который коннектится с MCP сервером

@modelcontextprotocol/server-everything

И с этого сервера выбирается конкретный тул

getTinyImage

Это тетсовый MCP сервер, который просто возвращает мини логотип MCP.

  1. В следующем шаге этой Секции этот тул добавляется в уже привычного нам AI агента. Прокликиваем до конца секцию и собственно по промпту, который распознает агент и дернет этот MCP сервер — получаем картинку
  2. Чтобы поэкспериментировать с другими MCP серверами нужно просто поменять

connection_params

во время создания тулсета. Например от Kaggle или от GitHub. Пример настройки тулсетов с этими MCP в Секции 2.3.

Вот так просто пользоваться MCP серверами. И вы только что это сделали 💪

Для самых увлеченных — добейте ноутбук до конца. Там описывается как строить асинхронные воркфлоу с Human-in-the-Loop (HIIT) в ADK. Такие воркфлоу нужны, чтобы выполнять функции только после мануального согласия юзера. Например, осуществлять покупки.

Подписывайтесь на Telegram Заместители.

Начать дискуссию