yandex-eda-mcp
MCP server for Yandex Eda (food delivery) that allows checking authorization, setting delivery address, searching restaurants, viewing menus, managing cart, and placing orders with safety features.
README
yandex-eda-mcp
MCP-сервер для Яндекс Еды на базе Playwright (headless). Позволяет из любого MCP-клиента (Claude Desktop, Claude Code и т.п.):
- проверять статус авторизации;
- задавать адрес доставки;
- искать рестораны и смотреть меню;
- собирать корзину;
- оформлять заказ (с защитой от случайного подтверждения).
Работает через персистентный профиль Chromium: вы логинитесь один раз в видимом браузере, дальше сервер ходит на сайт headless в том же профиле.
Профиль хранится вне папки с кодом — в ~/.yandex-eda-mcp/profile, поэтому
переживает обновления кода и работает даже при запуске через npx.
Установка
Вариант A — через npx (без клонирования, рекомендуется)
Клонировать и собирать ничего не нужно. Нужен только Node.js ≥ 20. Пропишите сервер в конфиг MCP-клиента:
{
"mcpServers": {
"yandex-eda": {
"command": "npx",
"args": ["-y", "yandex-eda-mcp"]
}
}
}
Или одной командой через CLI Claude Code (сразу в user-scope — сервер доступен в любой сессии, а не только в текущей папке):
claude mcp add -s user yandex-eda -- npx -y yandex-eda-mcp
При первом запуске npx сам скачает пакет и Chromium (~150 МБ, разово).
Вход в аккаунт Яндекса — автоматически при первом обращении к сайту (см. ниже).
Это единственная настройка: раздел «Подключение к MCP-клиенту» ниже нужен
только при установке из исходников (Вариант B).
Вариант B — из исходников
git clone <repo> && cd yandex-eda-mcp
npm install # ставит зависимости, Chromium и собирает dist/ (скрипт prepare)
Отдельный npm run build больше не нужен — сборка идёт автоматически при
npm install (скрипт prepare).
Авторизация — автоматически при первом использовании
Как только вы впервые обратитесь к
сайту (например, search_restaurants), сервер сам увидит, что профиль не
авторизован, и откроет видимое окно браузера для входа. Войдите в свой
аккаунт Яндекса (логин/пароль/SMS/капча), окно закроется само, дальше всё
работает headless. Вход нужен один раз на компьютере.
Можно и явно — вызвав MCP-инструмент login (или из терминала npm run login).
Профиль и авторизация индивидуальны для каждого пользователя: чужую сессию шарить нельзя, каждый входит в свой аккаунт.
Подключение к MCP-клиенту (только для установки из исходников, Вариант B)
Если вы поставили сервер через npx (Вариант A) — этот раздел пропустите,
настройка уже готова. При установке из исходников укажите путь к собранному
dist/index.js:
{
"mcpServers": {
"yandex-eda": {
"command": "node",
"args": ["/абсолютный/путь/к/yandex-eda-mcp/dist/index.js"]
}
}
}
Через CLI:
claude mcp add yandex-eda -- node /абсолютный/путь/к/yandex-eda-mcp/dist/index.js
Инструменты (MCP tools)
| Инструмент | Назначение |
|---|---|
login_status |
Проверить, авторизован ли профиль |
login |
Открыть окно входа в Яндекс (обычно вызывается сам) |
get_address |
Текущий адрес доставки (метка «Дом» или улица) |
list_saved_addresses |
Сохранённые в аккаунте адреса (с подъездом/квартирой) |
set_address |
Задать адрес: сперва ищет среди сохранённых, иначе новый по карте |
search_restaurants |
Поиск ресторанов / каталог |
get_menu |
Меню ресторана по URL или slug |
add_to_cart |
Добавить блюдо в корзину |
view_cart |
Показать корзину и сумму |
place_order |
Оформить заказ (по умолчанию dry-run) |
navigate |
Перейти по пути/URL внутри сайта |
debug_snapshot |
URL + текст + скриншот страницы для отладки |
Сохранённые адреса
set_address по умолчанию сначала ищет совпадение среди адресов, уже
сохранённых в аккаунте Яндекс Еды (по метке или улице), и выбирает его
мгновенно, сохраняя квартиру/подъезд/этаж — без повторного тыканья по карте.
set_address «домой» → выбирает сохранённый «Дом» со всеми деталями
set_address «на работу» → выбирает сохранённый «На работу»
set_address «Казань, Баумана 10» → нет в сохранённых → вводит новый по карте
Посмотреть список — list_saved_addresses. Форсировать ввод нового адреса
(минуя сохранённые) — set_address с preferSaved: false.
Безопасность оформления заказа
place_order по умолчанию работает в режиме dry-run: доходит до кнопки
«Оформить заказ», но НЕ нажимает её и не списывает деньги. Чтобы реально
оформить заказ, нужно явно передать confirm: true.
Типичный сценарий:
set_address→ «домой» (или «Москва, Тверская 1»)search_restaurants→ «пицца»get_menu→ выбранный ресторанadd_to_cart→ нужные блюдаview_cart→ проверить состав и суммуplace_order(dry-run) → убедиться, что всё готовоplace_orderсconfirm: true→ оформить
Переменные окружения
| Переменная | По умолчанию | Описание |
|---|---|---|
YANDEX_EDA_HEADLESS |
1 |
0/false — показывать браузер |
YANDEX_EDA_AUTO_LOGIN |
1 |
0 — не открывать окно входа автоматически |
YANDEX_EDA_LOGIN_TIMEOUT |
180000 |
Сколько ждать входа в окне, мс |
YANDEX_EDA_DATA_DIR |
~/.yandex-eda-mcp |
Каталог данных (профиль + скриншоты) |
YANDEX_EDA_PROFILE |
<DATA_DIR>/profile |
Каталог профиля с авторизацией |
YANDEX_EDA_SCREENSHOT_DIR |
<DATA_DIR>/screenshots |
Куда сохранять скриншоты |
YANDEX_EDA_BASE_URL |
https://eda.yandex.ru |
Базовый URL |
YANDEX_EDA_TIMEOUT |
30000 |
Таймаут ожиданий, мс |
YANDEX_EDA_USER_AGENT |
Chrome 131 | User-Agent |
Обслуживание селекторов
Яндекс использует хешированные CSS-классы, поэтому данные читаются в первую
очередь из внутреннего JSON-API сайта (перехват сетевых ответов) — это
устойчиво к смене вёрстки. Действия (адрес, корзина, кнопки) выполняются по
DOM-селекторам, собранным в src/eda.ts → SELECTORS и API.
Если что-то перестало работать:
- Вызовите
debug_snapshot— получите текст и скриншот текущей страницы. - Подправьте нужные селекторы/паттерны в
src/eda.ts. npm run build.
Дисклеймер
Проект автоматизирует ваш собственный аккаунт для личного использования. Соблюдайте условия использования Яндекс Еды. Автор не несёт ответственности за списания и заказы, совершённые автоматизацией.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。