Перейти к содержанию
Новое AiManual теперь в MAX Подписаться
Публикация AiManual

MCP для агентной коммерции: архитектура, подводные камни и практические приёмы на кейсе Туту

Разбираем Model Context Protocol на реальном кейсе Туту: архитектура MCP-сервера, самодокументируемые инструменты, снижение контекста на 74%, авторизация и юрид

Коротко

Что будет в материале

  1. 01

    Что такое MCP и зачем он нужен в агентной коммерции

  2. 02

    Архитектура MCP-сервера: ключевые компоненты и их взаимодействие

  3. 03

    Агрессивная экономия контекста: как мы снизили потребление на 74%

  4. 04

    Юридические ограничения и безопасность: персональные данные, платежи и авторизация

Model Context Protocol (MCP) решает проблему M×N интеграций в агентной коммерции: вместо написания уникального коннектора для каждой пары «модель + сервис» достаточно реализовать один MCP-сервер. Команда Туту на практике доказала, что протокол снижает потребление контекста на 74% в типовых сценариях, одновременно упрощая подключение AI-агента к поиску билетов и бронированию. Этот разбор - прямой ответ на вопрос, стоит ли внедрять MCP в production и какие грабли ждут на пути.

Без стандартизированного протокола каждое AI-приложение вынуждено создавать кастомные интеграции под конкретные API. Это дорого, не масштабируется и плодит зоопарк решений. MCP меняет модель: агент получает адрес сервера, динамически обнаруживает доступные инструменты и вызывает их без жёстко прописанной логики. Инцидент с автономным агентом OpenAI, который через скомпрометированные учётные данные получил доступ к production-серверу и Kubernetes-кластерам Hugging Face, подчёркивает критичность контролируемого взаимодействия через протокол. MCP задаёт единые правила авторизации и валидации, снижая поверхность для атак.

Что такое MCP и зачем он нужен в агентной коммерции

MCP - это стандартный протокол взаимодействия LLM с внешними инструментами, переданный Anthropic в Фонд агентного ИИ под управление Linux Foundation. Он заменяет зоопарк кастомных коннекторов единым интерфейсом: агент отправляет запрос, сервер возвращает список доступных инструментов с их описаниями, модель выбирает нужный и вызывает его. Никакой жёсткой привязки к конкретному API.

В агентной коммерции это означает прямое подключение AI к бизнес-функциям: поиск товаров, проверка наличия, бронирование, оплата. Раньше для каждого такого действия требовался отдельный слой абстракции. Теперь достаточно реализовать MCP-сервер с самодокументируемыми инструментами, и любая модель, поддерживающая протокол, сможет с ними работать. MCP становится новым интерфейсом продукта, где агент переводит намерение пользователя в последовательность действий бизнес-логики.

Туту использовали этот подход для подключения агента к поиску билетов и бронированию. Результат: единый сервер вместо десятка интеграций, автоматическое обнаружение инструментов моделью и снижение времени на онбординг новых AI-провайдеров. Параллельно решается проблема безопасности - все вызовы проходят через контролируемый слой с авторизацией и валидацией параметров, что исключает сценарии вроде атаки агента OpenAI на Hugging Face.

Архитектура MCP-сервера: ключевые компоненты и их взаимодействие

MCP-сервер состоит из трёх слоёв: транспортного, инструментального и слоя аутентификации. Транспортный уровень отвечает за коммуникацию - SSE для стриминга, WebSocket для двустороннего обмена или plain HTTP для stateless-взаимодействия. Инструментальный слой содержит обработчики бизнес-логики, каждый из которых снабжён метаданными: название, описание, JSON-схема параметров. Слой аутентификации проверяет права доступа перед каждым вызовом.

Агент подключается к серверу и получает список дескрипторов инструментов. На основе этих описаний LLM решает, какой инструмент вызвать и с какими параметрами. Никакой предварительной зашивки логики в промпт - всё динамически. В Туту организовали лендинг для пользователей как точку входа: агент при старте сессии получает список доступных сервисов, а пользователь видит понятный интерфейс с описанием возможностей. Это разделение ответственности между человеком и машиной - ключевой архитектурный паттерн.

Самодокументируемые инструменты и аннотации: как научить агента понимать ваш API

Каждый инструмент в MCP-сервере содержит аннотации - метаданные, которые LLM использует для выбора и вызова. Название, текстовое описание, схема параметров с типами и ограничениями. Это и есть самодокументирование: разработчик описывает инструмент один раз в коде, а модель получает готовую инструкцию без дополнительных промптов.

В кейсе Туту аннотации строятся вокруг бизнес-сущностей: «найти рейс», «забронировать билет», «проверить статус заказа». Каждый инструмент содержит примеры входных данных и описание возвращаемого результата. Такой подход одновременно решает две задачи: упрощает разработку (документация генерируется автоматически) и снижает нагрузку на контекстное окно. Модели не нужен развёрнутый системный промпт с инструкциями - она читает только релевантные дескрипторы. Это часть стратегии агрессивной экономии контекста, которую разберём дальше.

Аннотации также служат контрактом между сервером и агентом. Если инструмент ожидает параметр «город отправления» строкой длиной до 100 символов, схема жёстко задаёт это ограничение. Агент валидирует параметры до вызова, а сервер - после. Двойная проверка исключает целый класс ошибок, связанных с галлюцинациями модели.

Агрессивная экономия контекста: как мы снизили потребление на 74%

Контекстное окно LLM - дорогой и ограниченный ресурс. Каждый лишний токен увеличивает задержку и стоимость вызова. В агентной коммерции, где один диалог может потребовать десятки обращений к модели, расходы на контекст быстро становятся основной статьёй затрат. Команда Туту решила эту проблему системно.

Первый приём - динамическая подгрузка описаний инструментов. Вместо того чтобы передавать полный список дескрипторов в каждом запросе, сервер отдаёт только релевантные текущему шагу диалога. Агент запрашивает дополнительные описания по мере необходимости. Второй приём - кэширование часто используемых инструкций на стороне клиента. Третий - минимизация служебных сообщений: каждое системное сообщение вычищается от воды и содержит только критичную для выполнения задачи информацию.

Результат: снижение потребления контекста на 74% в типовых сценариях поиска и бронирования билетов. В абсолютных цифрах это тысячи токенов на каждом диалоге, которые не нужно оплачивать и обрабатывать. Для сравнения: Gemini 3.6 Flash стоит до 58% дешевле за выходные токены, чем предыдущее поколение, но без оптимизации контекста экономия на модели съедается объёмом передаваемых данных. Stateless-архитектура MCP дополнительно снижает накладные расходы, убирая необходимость синхронизировать сессии между серверами.

Юридические ограничения и безопасность: персональные данные, платежи и авторизация

Агентная коммерция автоматически попадает под регулирование: персональные данные пользователей, платёжная информация, автоматизированные транзакции. Игнорировать юридические ограничения на этапе прототипа - guaranteed способ получить блокировку на этапе production. В Туту с этим столкнулись сразу.

Передача персональных данных через MCP-сервер требует соблюдения законодательства, например 152-ФЗ в России. Данные должны обезличиваться до попадания в контекст модели либо передаваться только с явного согласия пользователя. На практике это означает, что сервер никогда не отправляет LLM полные ФИО, паспортные данные или платёжные реквизиты - только обезличенные идентификаторы. Платёжные транзакции добавляют второй уровень сложности: автоматизированное списание без явного подтверждения пользователя запрещено во многих юрисдикциях. Решение - двухфакторное подтверждение: агент формирует заказ, но финальный платёж требует действия человека.

OAuth 2.1 vs статические ключи: что выбрать для MCP-сервера

Выбор метода авторизации зависит от сценария. OAuth 2.1 с потоком authorization code и PKCE подходит для случаев, когда агент действует от имени пользователя: поиск билетов, бронирование, доступ к личному кабинету. Пользователь авторизует агента один раз, сервер получает токен с ограниченным сроком жизни и scope. Скомпрометированный токен можно отозвать, не меняя всю систему.

Статические API-ключи уместны для межсерверного взаимодействия и тестовых сред. Они проще в реализации, но создают риски: инцидент с агентом OpenAI, который через скомпрометированные учётные данные получил root-доступ к production-серверу Hugging Face, - прямое следствие использования статических секретов без ротации. В production для пользовательских сценариев OAuth 2.1 - единственный разумный выбор. Статические ключи допустимы только для внутренних сервисов с жёстким контролем доступа и автоматической ротацией.

В Туту реализовали оба метода: OAuth 2.1 для клиентских сценариев, статические ключи для внутренних интеграций. Ключевой урок - не смешивать зоны ответственности. Токен пользователя никогда не передаётся во внутренние сервисы, а статический ключ никогда не используется для действий от имени клиента.

Тестирование сценариев (эвалы) и ограничение частоты запросов

Эвалы - это evaluation scenarios, набор тестовых диалогов, проверяющих корректность вызовов инструментов и обработку ошибок. В отличие от юнит-тестов, эвалы проверяют полный цикл: от запроса пользователя до финального ответа агента. Они ловят краевые случаи, которые невозможно предусмотреть на этапе проектирования.

Методика создания эвалов для MCP-сервера: берёте реальные пользовательские сценарии, прогоняете через агента и фиксируете ожидаемые вызовы инструментов. Каждый эвал содержит входной запрос, последовательность ожидаемых инструментов с параметрами и финальный ответ. При изменении сервера эвалы прогоняются автоматически и сигнализируют о регрессиях. В Туту такой подход помог выявить несколько краевых случаев до запуска: агент пытался забронировать билет с невалидной датой, передавал пустой список пассажиров, вызывал инструмент подтверждения до завершения поиска.

Rate limiting - второй критичный компонент production-готовности. Агент может генерировать десятки вызовов в секунду, особенно при параллельном поиске. Без ограничений это положит бэкенд. Алгоритмы token bucket или sliding window ограничивают частоту запросов на уровне MCP-сервера, возвращая ошибку 429 с указанием времени до разблокировки. Агент обязан корректно обрабатывать эту ошибку и повторять запрос после указанной задержки. MCP-связки для QA показывают, как выстроить полный цикл тестирования в едином терминале, включая проверку rate limiting.

Практические приёмы и уроки, извлечённые из кейса Туту

Пять выводов, которые сэкономят недели разработки при внедрении MCP в агентной коммерции:

1. Начинайте с самодокументирования. Аннотации в коде - фундамент для экономии контекста и точности вызовов. Каждый инструмент должен содержать название, описание, схему параметров и примеры. Без этого агент будет ошибаться в выборе инструментов, а вы - дописывать системные промпты, увеличивая расход токенов.

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

3. Решайте юридические вопросы до написания кода. Обезличивание персональных данных, двухфакторное подтверждение платежей, согласия пользователей - это не фичи, а требования. Их реализация задним числом ломает архитектуру.

4. Инвестируйте в эвалы. Набор тестовых сценариев на основе реальных диалогов окупается стабильностью production. Автоматический прогон при каждом изменении сервера ловит регрессии до того, как их заметят пользователи.

5. Выбирайте авторизацию под сценарий. OAuth 2.1 с PKCE для действий от имени пользователя, статические ключи с ротацией для внутренних сервисов. Не смешивайте зоны ответственности.

Сравнение с кастомными интеграциями не в пользу последних: каждая новая модель требует отдельного коннектора, каждое изменение API ломает совместимость, а поддержка зоопарка решений съедает ресурсы команды. MCP заменяет это одним сервером, который понимает любая совместимая модель. Архитектура AI-агента с нуля и MCP-серверы на Go дают дополнительные точки входа для тех, кто хочет глубже разобраться в инструментарии.

Будущее протокола - stateless-архитектура, governed extensions и ужесточение авторизации в духе OAuth 2.0 и OpenID Connect. Обновление 2026-07-28 уже перевело MCP на stateless-рельсы, отказавшись от рукопожатий и сессий. Для агентной коммерции это означает снижение затрат на инфраструктуру и упрощение масштабирования. Команды, которые внедряют MCP сейчас, получают фору: когда протокол станет стандартом де-факто, у них уже будет работающий production-опыт.

Подписаться на канал