Claude API интеграция с Яндекс Лавкой: один разработчик собрал MCP-сервер за вечер
Яндекс Лавка не даёт публичного API, но разработчик из сообщества нашёл способ подключить Claude к этому сервису через реверс-инжиниринг приватного веб-интерфейса и протокол MCP, превратив чат с ИИ в голосовую корзину для доставки продуктов.

Готовый открытый MCP-сервер позволяет управлять заказами в Яндекс Лавке прямо из диалога с Claude: написал «закажи молоко и хлеб», и заказ ушёл курьеру, без единого клика в приложении.
Проект неофициальный и использует тот же приватный веб-API, что и сайт lavka.yandex.ru. Автор опубликовал код на GitHub под лицензией MIT. Это значит, что любой разработчик может повторить интеграцию, но с оговорками: Яндекс может в любой момент изменить или закрыть доступ, а оформление заказа списывает реальные деньги.
Сам факт, что claude api интеграция с закрытым российским сервисом собрана одним человеком за вечер, показывает, насколько протокол MCP упростил подключение внешних инструментов к ИИ-ассистентам.
Что такое MCP и почему он здесь ключевой?
MCP (Model Context Protocol, протокол подключения внешних инструментов к языковой модели) работает так: вы описываете набор функций, например search_products, add_to_cart, checkout_preview, и модель сама вызывает нужную функцию по ходу диалога.
Задача автора свелась к двум вещам:
- Научиться общаться с бэкендом Лавки, у которого нет документации
- Завернуть это общение в аккуратные инструменты, которые не дадут модели случайно потратить ваши деньги
Что понадобится
- Claude Desktop или другой клиент с поддержкой MCP
- Python 3.10+ и менеджер зависимостей (pip или uv)
- Залогиненный аккаунт Яндекса с подключённой Лавкой и сохранённым адресом доставки
- Куки сессии из браузера (Session_id и сопутствующие)
- Примерно 30 минут на установку и настройку
- Готовность к тому, что заказ спишет реальные деньги с привязанной карты
Пошаговая инструкция
- Клонируйте репозиторий с GitHub:
git clone https://github.com/Dudude-bit/yandex-lavka-mcp.git
cd yandex-lavka-mcp
- Установите зависимости. Автор использует Python, достаточно стандартного pip:
pip install -r requirements.txt
-
Извлеките куки сессии из браузера. Откройте lavka.yandex.ru в Chrome, зайдите в DevTools (F12), вкладка Application, раздел Cookies. Скопируйте значения
Session_idи связанных кук. -
Пропишите куки в конфигурации MCP-сервера. Сервер при старте обращается к главной странице Лавки и с помощью регулярного выражения вытаскивает CSRF-токен (токен защиты от подделки запросов) из HTML:
_CSRF_RE = re.compile(r'"csrfToken"\s*:\s*"([^"]+)"')
async def _ensure_csrf(self, *, force=False):
if self._csrf_token and not force:
return
resp = await self._client.get("/")
m = _CSRF_RE.search(resp.text)
if m:
self._csrf_token = m.group(1)
Без этого токена и набора специальных заголовков (X-CSRF-Token, X-Lavka-Web-City, X-Lavka-Web-Locale и других) сервер Лавки возвращает ошибку 401, даже если куки корректны.
-
Подключите MCP-сервер к Claude Desktop через стандартную конфигурацию MCP-клиента. После подключения Claude получает доступ к инструментам: поиск товаров, добавление в корзину, предпросмотр заказа, подтверждение.
-
Проверьте работу простым запросом. Напишите Claude что-то вроде «найди молоко в Лавке». Если интеграция настроена верно, модель вызовет
search_productsи вернёт список товаров с ценами. -
Оформление заказа работает в два шага, и это принципиально. Сначала
checkout_previewпоказывает итог (товары, скидки, стоимость доставки, время), но ничего не списывает. Затемconfirm_orderоформляет заказ, но только если сумма совпадает с превью. Если между двумя вызовами корзина изменилась (цена, наличие, промоакция), заказ не уйдёт:
if abs(live_total - confirmed_total) > 0.01:
raise LavkaApiError("Сумма изменилась — переоформи.")
Разработчик сознательно ввёл этот механизм: модель может ошибиться, «нафантазировать» сумму или зациклиться, а деньги при этом реальные.
Пользователь пишет в Claude Desktop: «Закажи молоко, хлеб и что-нибудь к ужину». Claude вызывает search_products с запросом «молоко», получает список с ценами и идентификаторами. Затем повторяет для «хлеб» и подбирает что-то для ужина по контексту. Добавляет товары в корзину через add_to_cart, вызывает checkout_preview, показывает пользователю итог: «Молоко 2,5% за 99 руб., хлеб за 59 руб., доставка бесплатная, итого 158 руб., привезут через 15 минут. Оформляю?». Пользователь подтверждает, Claude вызывает confirm_order, и заказ уходит курьеру.
Два идентификатора товара. У каждого товара в Лавке есть хэш (id, по нему кладут в корзину) и слаг (deepLink, по нему открывают карточку). Перепутаете, получите «товар не найден».
Гонка за общую корзину. Корзина Лавки одна на весь аккаунт. Claude умеет отправлять несколько вызовов инструментов одновременно, и параллельные добавления получают ошибку HTTP 409 (конфликт версий). Автор решил это через asyncio.Lock, сериализацию записей и автоповтор при 409.
«Фантомные» товары. Поиск может вернуть товар с другого склада, который нельзя добавить в корзину по вашему адресу. Проверяйте поле in_stock в ответе.
Протухший CSRF-токен. Если сервер долго простаивает, токен может устареть. Клиент автоматически обновляет его при получении 401, но если вы модифицируете код, не забудьте этот механизм.
Пустой способ оплаты. Если к аккаунту не привязана карта, оформление упадёт без внятной ошибки. Убедитесь, что хотя бы одна карта сохранена в Лавке через браузер.
Что делать с этим прямо сейчас?
Разработчику в РФ. Это рабочий пример claude api интеграции с закрытым российским сервисом. Тот же подход (реверс-инжиниринг веб-API плюс MCP-обёртка) применим к десяткам других сервисов без публичного API: Самокат, Вкусвилл, СберМаркет. Код открыт, берите как шаблон.
Автору Дзена. Тема «подключил ИИ к бытовому сервису» собирает просмотры, потому что понятна любому. Повторите эксперимент, запишите экран, покажите реальный заказ. Контент с живой демонстрацией работает лучше, чем пересказ чужого поста.
Предпринимателю. Если у вашего бизнеса есть веб-интерфейс, клиенты смогут подключить к нему ИИ-ассистента тем же способом, и вы это не контролируете. Стоит подумать, не лучше ли дать официальный API или MCP-сервер самим.
Проект красивый, но я бы пользовался им с осторожностью. Реверс-инжиниринг приватного API может нарушать пользовательское соглашение Яндекса, автор сам об этом предупреждает. Эндпоинты могут измениться без предупреждения, и утром вместо заказа вы получите ошибку.
Но как учебный материал это отличный пример. Двухшаговое оформление с проверкой суммы, сериализация записей через блокировку, автообновление CSRF: такие паттерны пригодятся в любой интеграции, не только с Лавкой. По моим наблюдениям, MCP-серверы для российских сервисов пока появляются штучно и по инициативе энтузиастов. Если Яндекс, Сбер или другие крупные игроки дадут официальные MCP-серверы, это изменит расклад быстрее любого стороннего проекта.
Пока этого не произошло, подобные неофициальные интеграции остаются единственным способом подружить Claude с российской инфраструктурой, и именно поэтому стоит разобрать код, пока он работает.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Запуск больших моделей ИИ на четырёх Mac Studio: 1,5 ТБ памяти за $40 000 без облака
Компания Apple предоставила автору кластер из четырёх Mac Studio для тестирования технологии RDMA (прямой доступ к памяти по сети, когда одна машина читает…

Atoms Каланика привлёк $1,7 млрд: крупнейшие инвестиции в робототехнику от Uber и a16z
Стартап Atoms, основанный бывшим CEO Uber Трэвисом Калаником, привлёк 1,7 млрд долларов в раунде, который возглавила венчурная фирма Andreessen Horowitz, и…

Substack первым из платформ встроил детектор ИИ: читатели проверят любой пост в один клик
Почему это важно Substack встроил в приложение проверку текстов на использование нейросетей, и теперь любой читатель может оценить, какую долю поста написал…
Комментарии