От REST к MCP: LLM меняют принципы проектирования API – часть 2
Во второй части серии Авито разбирает новый протокол MCP, созданный для интеграции больших языковых моделей, и показывает, как он решает ограничения традиционных REST‑API.
Во второй части серии «От REST к MCP» Дмитрий Бондарев, backend‑разработчик Авито, подробно описывает новый протокол MCP (Machine Communication Protocol) – архитектурный ответ на вызовы, которые LLM бросают традиционному REST‑подходу. В первой части автор показал, что REST‑интерфейсы, построенные на фиксированных эндпоинтах и статических схемах, плохо подходят для динамичных запросов LLM‑агентов: ограничена гибкость payload‑ов, сложно передавать контекст и управлять токен‑бюджетом.
MCP предлагает несколько ключевых принципов:
- Schema‑less сообщения: вместо жёстких JSON‑схем агент передаёт произвольный набор полей, а получатель динамически их интерпретирует.
- Контекстный поток: протокол поддерживает «streaming‑context», позволяя агенту постепенно передавать контекст в виде токен‑пакетов, что экономит токены и ускоряет отклик.
- Self‑describing capabilities: каждый запрос содержит метаданные о требуемой модели, её версии и ограничениях по времени/памяти.
- Version‑agnostic routing: MCP использует единую точку входа, а маршрутизация происходит внутри системы на основе метаданных, а не URL‑путей.
- Безопасность и контроль: встроенные механизмы аутентификации, ограничения по количеству запросов и мониторинг токен‑использования.
Автор приводит пример реализации MCP в сервисе рекомендаций Авито, где LLM‑агент генерирует запросы к рекомендационному движку, а MCP автоматически подбирает оптимальную модель (Claude‑3, Gemini‑1.5) и управляет токен‑лимитами. По сравнению с REST‑подходом, время отклика сократилось на 30 %, а количество ошибок, связанных с несовпадением схем, почти исчезло.
Бондарев также обсуждает вызовы: необходимость переобучения команд, отсутствие зрелых SDK и риск «привязки» к конкретному провайдеру LLM. В заключении делается вывод, что MCP – это шаг к более гибкой, контекстно‑ориентированной архитектуре, но он требует новых навыков и внимательного подхода к управлению ресурсами.
Ссылка на оригинальную статью: https://habr.com/ru/companies/avito/articles/1056030/
Для разработчиков это значит, что скоро придётся изучать MCP вместо привычных REST‑эндпоинтов, что откроет возможности более естественного взаимодействия с LLM‑агентами. Однако без готовых SDK и чёткой документации риск ошибок и избыточного токен‑расхода остаётся высоким.


