yandex-eda-mcp

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.

Category
访问服务器

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.

Типичный сценарий:

  1. set_address → «домой» (или «Москва, Тверская 1»)
  2. search_restaurants → «пицца»
  3. get_menu → выбранный ресторан
  4. add_to_cart → нужные блюда
  5. view_cart → проверить состав и сумму
  6. place_order (dry-run) → убедиться, что всё готово
  7. 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.

Если что-то перестало работать:

  1. Вызовите debug_snapshot — получите текст и скриншот текущей страницы.
  2. Подправьте нужные селекторы/паттерны в src/eda.ts.
  3. npm run build.

Дисклеймер

Проект автоматизирует ваш собственный аккаунт для личного использования. Соблюдайте условия использования Яндекс Еды. Автор не несёт ответственности за списания и заказы, совершённые автоматизацией.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选