MCP — разбираемся раз и навсегда
Продолжаем курс про AI агентов. Серия 2.2 MCP (Model Context Protocol) — подключаем к агенту.
Теория.
Простое определение MCP я давал тут, в контексте тулов. Более научно MCP — это стандартизированный протокол, предназначенный для подключения моделей ИИ к внешним тулам, источникам данных и средам. По существу он решает так называемую проблему MxN: чтобы соединить M AI приложений и N тулов, без MCP нужно создать MxN коннектеров. А с MCP — всего M+N коннектеров.
В контексте MCP говорят о 3-х компонентах:
- Host — любое AI приложение, которое обращается к MCP-серверу (например, Cursor, Claude и тд)
- Client — это часть Хоста, которая отвечает за общение с MCP сервером
- Server — собственно, основная часть, которая оборачивает тулы (и не только!)
Говоря об MCP обычно вспоминают возможность вызывать тулы, но вообще-то возможности этого протокола включают еще 5 пунктов:
- Resources. Через MCP сервер предоставляет ресурсы, например доп файлы или текст, для доп контекста в использовании тулов.
- Prompts. Через MCP сервер предоставляет шаблоны промптов для более эффективного использования предоставляемых в этом MCP тулов.
- Sampling. Сервер MCP может передавать запрос к клиенту, чтобы тот вызвал LLM (вместо того, чтобы обращаться к LLM самостоятельно). Это нужно, чтобы все косты на запросы к LLM прозрачно аггрегировались на стороне клиента.
- Elicitation. MCP позволяет передавать запрос со стороны сервера к юзеру, чтобы тот передал доп информацию туле (например имя пользователя, контактную информацию и тд).
- Roots. Эта возможность MCP позволяет передавать запрос со стороны сервера к файловой системе, в которой обитает агент.
Собственно, как вы могли почувствовать, все операции, кроме вызова самого тула — представляют риски для информационной безопасности. Ровно поэтому из всех возможностей MCP серверов чаще всего используются тулы (реже всего используются Elicitation и Roots) ☕
MCP SDK — это абстракция над самим MCP, адаптированная под разные языки программирования. С ним запустить свой MCP сервер становится супер просто. Мне нравится пример работы с SDK от Hugging Face.
Практика.
Теперь покодим 🎹. Как обычно, копируйте и заупскайте ноутбук. Сегодня подключаем MCP тулы к AI агенту.
- Секция 1 — прокликиваем. Это установка уже привычных нам компонентов. Из новенького импортируется McpToolset — это класс из Google ADK, предназначенный для интеграции инструментов MCP‑сервера в агента
- В Секции 2.2 — создается тулсет
mcp_image_server
который коннектится с MCP сервером
@modelcontextprotocol/server-everything
И с этого сервера выбирается конкретный тул
getTinyImage
Это тетсовый MCP сервер, который просто возвращает мини логотип MCP.
- В следующем шаге этой Секции этот тул добавляется в уже привычного нам AI агента. Прокликиваем до конца секцию и собственно по промпту, который распознает агент и дернет этот MCP сервер — получаем картинку
- Чтобы поэкспериментировать с другими MCP серверами нужно просто поменять
connection_params
Вот так просто пользоваться MCP серверами. И вы только что это сделали 💪
Для самых увлеченных — добейте ноутбук до конца. Там описывается как строить асинхронные воркфлоу с Human-in-the-Loop (HIIT) в ADK. Такие воркфлоу нужны, чтобы выполнять функции только после мануального согласия юзера. Например, осуществлять покупки.
Подписывайтесь на Telegram Заместители.