Skip to main content
Glama

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).

Related MCP server: Yandex Delivery MCP

Авторизация — автоматически при первом использовании

Как только вы впервые обратитесь к сайту (например, 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

Показать корзину и сумму

list_payment_methods

Способы оплаты (карты/Карта Пэй/СБП) и текущий выбранный

place_order

Оформить заказ (по умолчанию dry-run; выбор оплаты через payment)

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 → оформить

Оплата и выбор карты

list_payment_methods показывает доступные способы (карты, «Карта Пэй», СБП) и текущий выбранный. Выбрать способ на оформлении можно параметром payment у place_order (напр. payment: "Карта Пэй").

Важно: оплата через СБП требует ручного подтверждения в приложении банка, поэтому автоматически заказ по ней НЕ оформится (Яндекс создаёт заказ и отменяет его без оплаты). Для автоматического оформления выбирайте карту (payment: "Карта Пэй" или добавьте карту в аккаунте).


Переменные окружения

Переменная

По умолчанию

Описание

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.tsSELECTORS и API.

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

  1. Вызовите debug_snapshot — получите текст и скриншот текущей страницы.

  2. Подправьте нужные селекторы/паттерны в src/eda.ts.

  3. npm run build.


Дисклеймер

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

Available Tools

18 tools
add_productДобавить товар магазина в корзинуA

Добавляет ТОВАР МАГАЗИНА (retail) в корзину — для магазинов используй это, а НЕ add_to_cart (та только для ресторанов). Сам открывает магазин с поиском товара, находит карточку по названию и жмёт «+». Название бери из результатов search_products (чем точнее, тем лучше).

ParametersJSON Schema
NameRequiredDescriptionDefault
shopYesМагазин: имя («Пятёрочка», «Магнит»), slug или retail-URL
productYesНазвание товара как в search_products (напр. «Огурцы среднеплодные вес»)
quantityNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full weight. It discloses the internal process: 'Сам открывает магазин с поиском товара, находит карточку по названию и жмёт «+»' – revealing that the tool performs UI automation. It also warns that name accuracy matters, adding context about potential failure if the name is too vague. However, it does not mention prerequisites like authentication or error handling, which would enhance transparency further.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, with each sentence serving a distinct purpose: function, usage distinction, and process/input guidance. It is front-loaded with the core action and contains no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 params, no output schema, no annotations), the description is largely complete. It covers the tool's purpose, differentiates from a sibling, explains the internal workflow, and advises on input sourcing. The main gaps are missing prerequisites (e.g., login state) and explicit behavior for invalid inputs, but these are not critical for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers shop and product with descriptions, but the tool's description adds valuable guidance for the product parameter: 'Название бери из результатов search_products (чем точнее, тем лучше)' – clarifying the source and quality of the input. Quantity has no description in schema, but its default/min/max are self-explanatory; the tool description doesn't add to it. Overall, it improves understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Добавляет ТОВАР МАГАЗИНА (retail) в корзину' (adds store product to cart), explicitly distinguishing it from the sibling add_to_cart, which is for restaurants. The verb and resource are specific, and the scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit usage guidance: 'для магазинов используй это, а НЕ add_to_cart (та только для ресторанов)' directly instructs when to use this tool over the alternative, and it advises to source product names from search_products results for best accuracy.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_to_cartДобавить в корзинуA

Добавляет блюдо РЕСТОРАНА в корзину по названию (сначала get_menu на нужном ресторане). Для товаров МАГАЗИНА это НЕ работает — там add_product. Меню подгружается лениво — инструмент сам прокручивает страницу до позиции. Если у блюда hasOptions — СНАЧАЛА вызови get_item_options, чтобы узнать точные варианты, и передай выбранные в options (значения должны совпадать с вариантами из get_item_options). Без обязательных опций кнопка добавления заблокирована. Чтобы ПОМЕНЯТЬ опции уже добавленной позиции — Яндекс Еда не даёт их редактировать, поэтому удали её (remove_from_cart, при нескольких вариантах — с options) и добавь заново с новыми options.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemYesНазвание блюда как в меню (get_menu)
optionsNoВыбранные опции — тексты вариантов из get_item_options (напр. ["Воппер Беконез"])
quantityNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, but the description compensates fully by disclosing lazy menu loading/auto-scrolling, blocking of add button without required options, and inability to edit options after adding. This goes well beyond the schema and gives important behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long but every sentence carries essential operational information. It is front-loaded with the core action and then covers alternatives and edge cases without redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and complex interactive behavior, the description fully covers prerequisites, sequencing, lazy loading, option constraints, and the workaround for editing options. It is complete enough for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover item and options, and the description adds key semantics: item must match get_menu and options must exactly match get_item_options values. Quantity is not described in either schema or description beyond numeric constraints, so a small gap remains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool adds a restaurant dish to the cart by name, explicitly contrasting with add_product for shop items. It differentiates from sibling tools and specifies the resource (restaurant dish) and action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use and when-not-to-use guidance: first call get_menu, use add_product for shop goods, call get_item_options before adding if hasOptions, and remove/re-add to change options. This is exemplary usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear_cartОчистить корзинуA

Полностью очищает корзину (ВСЕ позиции и все корзины). Если в корзине есть и другие позиции, а поменять надо одну — используй remove_from_cart, а не это. Яндекс Еда не даёт редактировать опции в корзине, поэтому для смены варианта: remove_from_cart (или clear_cart, если корзина только из этой позиции) → add_to_cart заново.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosure. It explicitly states the destructive nature (clears all items and all carts) and explains that Yandex Eda does not allow editing cart options, which sets expectations for the replacement workflow. This is rich behavioral context beyond simple read/write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary action (clearing the cart) followed by usage alternatives. Every sentence adds crucial information without fluff or redundancy. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameter-less, no-output-schema destructive operation, the description fully covers purpose, scope, and usage alternatives. It also explains a platform limitation (no option editing) that affects how the tool should be used, making it complete for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema trivially covers all of them. Per the baseline rule, a score of 4 is appropriate for zero-parameter tools. The description adds meaningful context about the scope (all items and all carts), which is valuable even without parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Полностью очищает корзину (ВСЕ позиции и все корзины)' – a specific verb and scope. It distinguishes itself from remove_from_cart by indicating it clears all items, not just one, and clarifies that this tool clears all carts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly directs the agent to use remove_from_cart when only one item needs changing, and provides a workflow for changing options: remove_from_cart (or clear_cart if only one item) followed by add_to_cart. This gives concrete when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

debug_snapshotСнимок страницы (отладка)A

Возвращает URL, заголовок и текст текущей страницы, а также сохраняет скриншот. Помогает подстроить селекторы при изменении вёрстки сайта.

ParametersJSON Schema
NameRequiredDescriptionDefault
screenshotNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It explicitly lists the returned data (URL, title, text) and the screenshot action. However, it does not disclose potential side effects (e.g., file creation) or confirm the tool is read-only regarding page state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences: the first states the primary function, the second gives a practical use case. No redundant details or fluff; it is front-loaded and efficiently written.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool, it covers the core functionality but leaves gaps: the screenshot parameter is unexplained, the output format is not described, and no prerequisites (e.g., being on a page) are mentioned. It is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one boolean parameter 'screenshot' with no description, and the tool description never explains that this parameter controls whether a screenshot is saved. The agent must infer the meaning from the parameter name, which is a significant gap given 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns URL, title, and page text, and saves a screenshot, with a specific debugging purpose ('help adjust selectors when site layout changes'). This distinguishes it from sibling tools that handle navigation, login, or other actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use case: when site layout changes and you need to adjust selectors. It implies when to use the tool but does not explicitly mention alternatives or exclusions, so a small gap remains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_addressТекущий адрес доставкиA

Возвращает текущий адрес доставки (метку сохранённого адреса, например «Дом», или улицу). Полезно спросить у пользователя «ищем тут?» перед поиском.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the return value shape (a label or street) and suggests a use case, which provides some transparency. However, it does not disclose edge cases such as behavior when no address is set, authentication requirements, or potential side effects. The description adds value but leaves gaps expected for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two short sentences that front-load the purpose and then add a usage tip. Every phrase adds value, and there is no redundant or verbose language. This is exemplarily efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameterless getter, the description covers the return format and a typical use case. However, the absence of an output schema means the description should fully explain return values and edge cases. It does not mention what happens if no address is saved, or any prerequisites like login. Thus, while adequate for basic use, it has notable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the input schema is empty. The rubric states a baseline of 4 for 0 parameters. The description adds no parameter-specific information because there is nothing to document. The schema coverage is 100% vacuously, so the description does not need to compensate for any undocumented params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the current delivery address, with a specific example of the output format (label like 'Home' or street). It is not a tautology and uses a specific verb ('returns') and resource ('current delivery address'). However, it does not explicitly differentiate from sibling tools like list_saved_addresses or set_address, so it lacks direct sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear use case: asking the user 'are we looking here?' before searching. This gives context for when to use the tool. It does not explicitly mention alternatives or when not to use it, but the usage scenario is clear. This fits 'clear context, no exclusions' rather than full when/when-not/alternatives guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_item_optionsОпции блюдаA

Возвращает группы обязательных/дополнительных опций блюда (вкус, размер, гарнир, добавки) с вариантами и ценами. Вызывай для позиций с hasOptions ПЕРЕД add_to_cart: покажи варианты пользователю (или выбери) и передай нужные в add_to_cart через options. Обязательные группы помечены required: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemYesНазвание блюда (как в get_menu)
restaurantYesURL или slug ресторана

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that required groups are marked `required: true` and explains how the tool fits into the ordering flow. It stops short of detailing error behavior or exact response structure, but offers solid behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and each sentence earns its place. No redundant or vague wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two simple parameters, no output schema, and no annotations, the description covers the essential aspects: what it returns, when to use it, and how to apply the result with add_to_cart. It is complete enough for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters (`item` and `restaurant`), so the schema already documents them. The description adds contextual usage (e.g., `hasOptions`) but does not deepen parameter-level meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns groups of required/optional dish options with variants and prices, using a specific verb and resource. It also gives examples (taste, size, side dish, additives) and distinguishes itself from siblings like get_menu and add_to_cart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to call this for items with `hasOptions` before `add_to_cart`, which provides both a clear when and an implicit when-not (items without hasOptions). It also explains the workflow: show options to the user and pass them to add_to_cart via `options`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_menuМеню ресторанаA

Возвращает ПОЛНОЕ меню ресторана, сгруппированное по категориям (URL или slug из search_restaurants). По умолчанию компактно — без описаний, чтобы влезли все позиции (у крупных ресторанов их 200+): не делай выводов «такого нет», пока не просмотрел все категории. full: true добавит описания блюд. У позиций с hasOptions при добавлении нужен выбор вкуса/размера (options).

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNotrue — добавить описания блюд (дороже по объёму)
limitNoМаксимум позиций (по умолч. 400 — обычно всё меню)
restaurantYesURL ресторана или его slug (из результатов поиска)

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description takes on full responsibility. It reveals that output is compact by default to fit large menus (200+ items), that `full: true` adds descriptions, and that items with `hasOptions` require option selection—all useful behavioral nuances beyond a simple read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences deliver a lot of information, but the second is a long run-on with embedded guidance. No superfluous words; the structure is front-loaded with main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains return organization (grouped by categories), default compactness, and the caveat about large menus. It omits explicit field details, but mentions `hasOptions` which is a key field. Given no output schema, it's reasonably complete for a menu retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already documents all three parameters with descriptions (100% coverage). The description adds a hint about restaurant input from search_restaurants and restates the effect of `full`, but doesn't substantially enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's function: returning the full restaurant menu grouped by categories. It distinguishes from siblings by specifying input from search_restaurants and mentioning the `hasOptions` behavior that connects to get_item_options/add_product.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: use search_restaurants to obtain the restaurant URL/slug, warns against premature 'not found' conclusions until all categories are reviewed, and explains the `full: true` parameter and `hasOptions` requirement for adding items. However, it doesn't explicitly list alternative tools or when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_payment_methodsСпособы оплатыA

Показывает доступные способы оплаты (карты, Карта Пэй, СБП) и текущий выбранный. Нужна НЕПУСТАЯ корзина (способы видны только на экране оформления). ВАЖНО: СБП требует ручного подтверждения в приложении банка и НЕ оформится автоматически — для авто-заказа выбирайте карту/Карту Пэй (параметр payment у place_order).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral disclosure. It reveals the cart requirement, the checkout-screen visibility, and a critical caveat that SBP won't auto-complete. This is rich behavioral context beyond a simple 'list' tool, effectively warning agents about a potential failure mode.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: purpose, prerequisite, and a crucial warning. Front-loaded with the primary action. No filler, no redundancy. The structure aids quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no params and no output schema, the description is fully sufficient. It covers what it returns, when it is usable, and why a specific payment method might fail. It also references a sibling tool (place_order) for the payment parameter, providing necessary integration context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is an empty object. Per guidelines, baseline is 4 for zero params. The description doesn't need to elaborate on non-existent parameters, though it adds useful output context (available methods and selected one), which is a minor bonus beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Shows available payment methods (cards, Card Pay, SBP) and the currently selected one.' The verb 'shows' and specific resource ('payment methods') distinguish it from siblings. It also notes the prerequisite of a non-empty cart, adding clarity about when the tool is relevant.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when it can be used: 'A NON-EMPTY cart is required (methods are visible only on the checkout screen).' Provides an important exclusion: SBP requires manual confirmation and will not auto-process; directs users to choose card/Card Pay for auto-ordering via the 'payment' parameter in place_order. This gives clear guidance on when to use the tool and what to avoid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_saved_addressesСохранённые адресаA

Возвращает сохранённые в аккаунте адреса доставки (с метками «Дом», «На работу» и деталями — подъезд/этаж/квартира). Их можно выбрать через set_address без повторного ввода на карте.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the return content (saved addresses with labels and details) and its relationship to set_address. It does not describe error conditions or explicit read-only behavior, but the verb 'Возвращает' and the non-mutating nature of a list operation are sufficiently clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences with no fluff. The main verb and resource are front-loaded, and the second sentence adds valuable cross-tool integration context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description fully covers what the tool does, what data it returns, and how it fits into the broader workflow (use with set_address). It is complete within its context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter detail to explain. The baseline for no parameters is 4, and the description does not need to add parameter information since none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: it returns saved delivery addresses from the account, including labels and details. The verb 'Возвращает' and resource 'сохранённые адреса' are specific, and the mention of set_address distinguishes it from address-related siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: it explains that returned addresses can be selected via set_address without re-entering them on the map. This implies when to use the tool (to retrieve saved addresses for later selection) but does not explicitly exclude alternatives like get_address.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

loginВойти в ЯндексA

Открывает видимое окно браузера для входа в аккаунт Яндекса (логин/пароль/SMS/капча). После входа сессия сохраняется в профиль, и сервер работает headless. Нужно один раз на компьютере. Обычно вызывается автоматически при первом обращении к сайту, но можно и вручную.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It reveals that the browser window is visible, the session is saved to the profile, and the server runs headless afterward, which is valuable behavioral context beyond trivial statements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, each adding distinct value: the action performed, the session persistence, and the usage frequency. There is no redundancy or verbosity, and the key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, side effects, and usage scenarios, which is sufficient for a tool with no parameters and no output schema. It could mention how to verify successful login (e.g., via login_status), but the essential information is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides complete coverage. The description appropriately describes the parameterless action and its effect, meeting the baseline for parameterless tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool opens a visible browser window for Yandex login and persists the session, which is a specific verb+resource. It distinguishes itself from sibling tools like login_status by describing the interactive login flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that the tool is typically called automatically on first access and only needs to be run once per computer, giving clear context on when manual invocation is appropriate. It does not explicitly mention alternatives like login_status, but the guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

login_statusСтатус авторизацииA

Проверяет, авторизован ли текущий профиль браузера в Яндексе. Если не авторизован — вызовите инструмент login (откроется окно входа).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the core behavior (checking authorization) and provides actionable guidance if not authorized. It does not specify the return format, but for a simple read-only status check, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose and immediately followed by a conditional action. No wasted words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is fully self-contained for a tool of this simplicity. It covers the main function and the necessary follow-up action, making it complete even without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description does not need to add parameter semantics. The baseline of 4 applies as there is nothing to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks whether the current browser profile is authorized in Yandex, using a specific verb and resource. It distinguishes itself from the sibling 'login' tool by focusing on status verification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to call the 'login' tool when the profile is not authorized, providing a clear conditional and alternative. This tells the agent exactly when to use this tool and what to do instead when the condition is met.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

place_orderОформить заказA

Оформляет заказ из корзины. ПО УМОЛЧАНИЮ безопасный dry-run: доходит до кнопки «Оплатить», но НЕ подтверждает. Для реального заказа передайте confirm=true. Через payment можно заранее выбрать способ оплаты (см. list_payment_methods). СБП автоматически НЕ проходит (нужно приложение банка) — для авто-заказа payment должен быть картой.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNoКомментарий курьеру/ресторану
confirmNotrue = реально оформить заказ и списать оплату
paymentNoСпособ оплаты по названию, напр. "Карта Пэй" или "СБП" (см. list_payment_methods)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full responsibility for disclosing behavior. It explicitly states the safe dry-run default, the confirm flag for real orders, and the SBP limitation requiring card for auto-ordering. This is excellent transparency for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, front-loading the core purpose and critical default behavior. Each sentence adds unique value, with emphasis on important warnings via capitalization. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this is a mutation tool with no output schema or annotations, the description covers the essential aspects: purpose, default behavior, confirmation flag, payment selection, and a crucial limitation. It doesn't mention return values or preconditions like cart non-empty, but the coverage is strong for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by clarifying that confirm=false is a dry-run (reaching the pay button without confirming) and explaining the payment method caveat with SBP. This goes beyond the schema's basic type descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: places an order from the cart. It uses a specific verb and resource, distinguishing it from sibling tools like add_to_cart or view_cart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for usage: it explains the default dry-run behavior and how to make a real order via confirm=true. It also directs to list_payment_methods for payment selection. While it doesn't explicitly name alternative tools for when not to use this tool, the sibling context makes this clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_from_cartУдалить позицию из корзиныA

Точечно удаляет ОДНУ позицию из корзины по названию (в отличие от clear_cart, который сносит всё). Одно и то же блюдо может лежать в корзине в нескольких вариантах с разными опциями (они видны в view_cart) — тогда укажи options, чтобы удалить нужный вариант. Это правильный способ ПОМЕНЯТЬ позицию: remove_from_cart нужный вариант → add_to_cart с новыми опциями.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemYesНазвание позиции как в корзине (view_cart)
optionsNoОпции варианта для точного совпадения, если блюдо в корзине в нескольких вариантах (из view_cart)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the targeted one-item removal, the variant-specific removal via `options`, and the recommended sequence for changing an item. However, it does not specify failure behavior (e.g., what happens if the item is not found) or any side effects beyond the cart itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the main action, and each sentence adds important context: scope, variant handling, and the change workflow. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, so the description must carry the contextual burden. It covers the operation, the options nuance, and the recommended workflow, but lacks explicit return-value or failure semantics. Given the simplicity of the tool, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the purpose of `options` in context (same dish with different options) and how it relates to the removal variant. This goes beyond the schema's individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'удаляет ОДНУ позицию из корзины по названию' and explicitly contrasts with clear_cart, which removes everything. This distinguishes it from siblings and gives a specific verb+resource+scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool versus clear_cart ('в отличие от clear_cart, который сносит всё') and provides the correct workflow for changing an item ('remove_from_cart нужный вариант → add_to_cart с новыми опциями'). It also instructs when to use the `options` parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_productsТовары в магазинеA

Работа с МАГАЗИНОМ (Пятёрочка, Магнит, Лента, Лавка…) — в отличие от ресторанов, у магазина тысячи товаров, поэтому меню не выгружают целиком, а ищут/смотрят по категориям: • без query и category → список категорий магазина (посмотреть, что есть); • query (напр. «молоко 3.2») → поиск товаров по запросу — ГЛАВНЫЙ путь для «добавь X из магазина»; • category (из списка категорий) → товары этой категории. Возвращает товары с ценой, ценой по акции (promoPrice), весом и наличием (inStock). Чтобы ДОБАВИТЬ товар в корзину — add_product (не add_to_cart). Требуется заданный адрес. Магазин задаётся именем.

ParametersJSON Schema
NameRequiredDescriptionDefault
shopYesМагазин: имя («Пятёрочка», «Магнит»), slug или retail-URL
limitNo
queryNoЧто искать среди товаров (напр. «молоко 3.2», «хлеб бородинский»)
categoryNoНазвание категории из списка (для просмотра её товаров)

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility. It discloses return fields (price, promoPrice, weight, inStock), prerequisites (a set address, shop specified by name), and the tool's non-destructive nature implicitly. It also clarifies behavioral nuances like the category listing fallback and the need for a specific tool for cart actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured with bullet points for modes, making it easy to scan. Every sentence contributes unique value: mode definitions, return fields, related tool guidance, and prerequisites. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, no output schema, and no annotations, the description covers all essential aspects: return values, prerequisites, alternative tools, and usage modes. It is sufficiently complete for an agent to select and invoke the tool correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the description adds meaning beyond the schema by explaining the interaction of query and category: omitting both lists categories, query searches, category browses. It also clarifies the shop parameter ('Магазин задаётся именем'). The limit parameter is not mentioned, but schema provides min/max/default, so this is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: searching products in a store ('поиск товаров по запросу') and browsing by category, explicitly distinguishing it from restaurant menus. It names concrete use cases and differentiates from siblings like get_menu and add_product.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: it explains the three modes (no query/category = category list, query = product search, category = category items), states this is the main path for 'add X from store', and directs users to add_product rather than add_to_cart. It also notes the requirement of a set address.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_restaurantsПоиск заведенийA

Отдаёт заведения, доставляющие на текущий адрес, с рейтингом и временем доставки (цена доставки — если распознана). • Для запроса «кто вообще доставляет / покажи подборку» вызывай БЕЗ query — вернётся весь каталог. НЕ придумывай ключевые слова (пицца/бургер): без них и так все. • query задавай только когда пользователь ищет конкретное (кухня, блюдо, название). • type разделяет выдачу: restaurant (по умолчанию, готовая еда) и shop (магазины/аптеки/цветы). Каталог смешанный — поэтому по умолчанию отдаём только рестораны. • По умолчанию возвращаются только ОТКРЫТЫЕ сейчас (доставляют прямо сейчас). Закрытые/предзаказ скрыты — не предлагай их и не пытайся собрать корзину в закрытом. includeClosed: true вернёт и закрытые (у них open: false). Требуется заранее установленный адрес (set_address).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNorestaurant — рестораны (готовая еда, по умолч.); shop — магазины/аптеки/цветы; all — всё вперемешкуrestaurant
limitNo
queryNoКонкретный запрос: кухня/блюдо/название. Пусто = весь каталог (для общей подборки — оставляй пустым)
includeClosedNofalse (по умолч.) — только открытые сейчас; true — включая закрытые/предзаказ

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and excels: it discloses default open-only behavior, that closed venues are hidden, warns not to propose or add to cart closed venues, and that set_address is required. Delivery price is noted as conditional ('if recognized').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with a clear purpose sentence followed by scannable bullets. Every bullet conveys a distinct, important guideline; no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description covers all critical behaviors: return contents, query logic, type filtering, open/closed defaults, includeClosed option, and prerequisite address. It is complete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75% (limit lacks description), but the description adds significant meaning: query empty vs filled, type restaurant/shop defaults, and includeClosed toggle behavior. These go well beyond the schema's property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly states the tool returns establishments delivering to the current address, with rating and delivery time. This specific verb+resource+scope distinguishes it from siblings like search_products and get_menu.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Bullet points give explicit when-to-use guidance: omit query for general catalog, use query only for specific searches, use type to separate restaurants/shops, and require set_address. It also warns against inventing keywords and against interacting with closed venues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_addressЗадать адрес доставкиA

Устанавливает адрес доставки. По умолчанию СНАЧАЛА ищет совпадение среди сохранённых адресов (по метке «дом»/«работа» или улице) и выбирает его мгновенно, СОХРАНЯЯ квартиру/подъезд/этаж — без повторного тыканья по карте. Если сохранённого нет — вводит новый адрес через поиск на карте.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesАдрес или метка: «домой», «на работу», «Москва, Тверская 1»
preferSavedNotrue (по умолч.) — сперва искать среди сохранённых; false — сразу вводить новый

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility. It discloses the search priority for saved addresses, preservation of apartment/entrance/floor details, and fallback to map search. This goes beyond a generic 'set address' and gives agents valuable foresight into the tool's runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, directly front-loaded with the action. It uses capitalization for emphasis on key behaviors and contains no filler, making it highly concise and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a relatively simple tool with two parameters and no output schema, the description is sufficient. It covers the main workflow, including the saved-address shortcut and fallback, without unnecessary details. It doesn't address errors or authentication, but those are not critical for this type of operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers both parameters with descriptions (100% coverage), so the baseline is 3. The description adds value by elaborating the meaning of address as a label ('дом'/'работа') and how preferSaved controls the search-first behavior, plus the detail about not needing to re-click on the map when a saved address is used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Устанавливает адрес доставки') and identifies the resource (delivery address). It distinguishes itself from sibling read tools like get_address and list_saved_addresses by describing a write operation with specific behavior around saved addresses, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool: to set a delivery address, and explains the default behavior of first checking saved addresses and the fallback when none match. It doesn't explicitly list alternatives or exclusions, but the distinction from read-only siblings is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

view_cartПоказать корзинуA

Возвращает содержимое корзины: позиции (с количеством и выбранными опциями), подытог, стоимость доставки и итог.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool 'returns' cart contents, implying a read-only operation, but it does not disclose authentication requirements, side effects, or error behavior. For a simple view tool this is acceptable but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that covers the essential output details without any filler. It is well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple no-parameter tool, the description is complete: it lists all return components (items, subtotal, delivery, total) despite lacking an output schema. No additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing to explain. The baseline for zero parameters is 4, and the description correctly adds no param info since none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the contents of the cart, listing specific elements (items with quantity/options, subtotal, delivery, total). This distinguishes it from sibling tools like add_to_cart, remove_from_cart, and clear_cart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions. However, its purpose as a cart viewer is self-evident given the sibling tool names, so the context is clear but not formally guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool targets a distinct resource/action: auth, addresses, restaurant search, menu, product search, cart management, and ordering. Even similar tools like add_product vs add_to_cart and remove_from_cart vs clear_cart are explicitly differentiated by domain (shop vs restaurant) and scope (single vs all). No ambiguous overlaps exist.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern in snake_case (get_menu, set_address, remove_from_cart, search_restaurants). Two bare verbs (login, navigate) are acceptable as unambiguous actions, and the overall style is uniform.

Tool Count4/5

18 tools is on the heavier side but justified by the dual restaurant/shop domains and full order lifecycle (auth, addresses, search, cart, payment, ordering). Each tool serves a clear purpose, though a few utility tools (navigate, debug_snapshot) could be seen as auxiliary.

Completeness4/5

Covers the entire ordering flow from login and address setup through search, menu browsing, cart management, and order placement with payment. Minor gaps exist: no direct quantity editing in cart (workaround via remove/add) and no order history, but these don't block the primary use case.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sandexplus/yandex-eda-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server