marketplaces-mcp-ru
This server connects an AI assistant to Russian e-commerce marketplaces (Wildberries, Ozon, Ozon Performance) for querying and managing seller data via Seller APIs.
Authorize & manage credentials: Check API keys are configured (
*_check_auth), add/switch/remove multiple store cabinets (*_add_cabinet,*_use_cabinet,*_remove_cabinet), rotate keys (*_set_key) – all without exposing secrets.Discover capabilities: List API sections (
*_list_sections), view endpoints in a section (*_get_section), search methods by keyword in Russian/English (*_search_methods), get a business-entity overview (*_map), and fetch detailed endpoint info (*_describe_method).Call API methods safely: Execute any catalog endpoint (
*_call_method) or any raw path (*_call_raw) with verb-based safety – read runs immediately, write requiresconfirm_write, destructive requires additional confirmation.Paginate large datasets: Auto-fetch all pages of a read endpoint (
*_fetch_all), handling offset, cursor, last_id, and date-based pagination.Get pre-built workflows: List and retrieve step-by-step analytical recipes (e.g., sales pulse, stock health, price audit, ABC analysis) (
*_list_workflows,*_get_workflow).Typed convenience tools: Direct calls for common tasks – Wildberries: sales/returns, current stocks, new FBS orders, prices/discounts, and setting a price (with write confirmation). Ozon: product list, stocks, prices, unfulfilled FBS orders, and setting a price.
All operations are read-only by default except explicit write/destructive tools that require user confirmation to protect against accidental changes.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@marketplaces-mcp-ruпокажи продажи за сегодня на Wildberries"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
marketplaces-mcp-ru: Wildberries, Ozon, Яндекс Маркет и Авито в вашем ИИ-ассистенте
Подключает ИИ-ассистента (Claude, Cursor, Codex, Cowork и др.) напрямую к вашим кабинетам Wildberries, Ozon, Яндекс Маркета и Авито. Вы спрашиваете обычными словами, агент берёт продажи, заказы, остатки, цены, финансы и отзывы прямо из API маркетплейса (WB Seller API, Ozon Seller API, Yandex Market Partner API, Avito API), а не выдумывает цифры.
Быстрый старт, без установки в систему:
uvx marketplaces-mcp-ruЗачем
Вы продаёте на нескольких площадках, а данные лежат в разных кабинетах. Продажи, остатки, цены, финансы, отзывы: всё руками, по очереди, через несколько браузеров. Обычный ИИ-ассистент тут мало помогает. Либо ходит через браузер и спотыкается о капчу, либо называет цифры, которые звучат уверенно, но взяты из воздуха.
Этот проект решает задачу иначе. Он даёт ассистенту прямой доступ к API всех четырёх площадок:
Цифры приходят из ответа Wildberries, Ozon, Яндекс Маркета и Авито, с указанием источника и полей. Не пересказ, не догадка.
Перед тем как менять цену или остаток, агент просит подтверждение. Случайно «уронить цену в три раза» не получится.
Никакого браузера и капчи: обращение идёт по токену кабинета напрямую.
Спросите обычными словами: «покажи продажи за неделю на всех площадках», «что пора дозаказать», «сравни мои цены с рынком». Агент подберёт нужный метод или готовый сценарий и проведёт по шагам.
⚠️ Версия alpha. Помогает с операционкой продавца, но это инструмент, а не замена аналитику. Проверенное вручную ядро (продажи, остатки, цены, финансы, отзывы) выверено на реальных кабинетах. Остальные методы импортированы из спецификаций и служат картой для разведки. Подробности в разделе Оговорки.
Related MCP server: mcp-ozon-seller
Что можно спросить
Просто пишите агенту в чат по-русски:
покажи продажи за неделю на WB и Ozon и сравни
какие заказы на Яндекс Маркете ждут отгрузки сегодня
подтверди новые заказы Авито Доставки и покажи, где кончается остаток
что пора дозаказать, посчитай дни покрытия по остаткам и продажам
вытащи финотчёт реализации WB за прошлый месяц
какие товары на Ozon с красным индексом цены
собери отзывы ниже 4 звёзд за неделю и сгруппируй жалобы по товару
сделай ABC-анализ по выручке и покажи товары-хвостНе знаете, с чего начать, скажите «что ты умеешь по моему кабинету». Агент покажет готовые сценарии: для Wildberries это пульс продаж, здоровье остатков, аудит цен, планировщик дозаказа, ABC-анализ, сводка отзывов; для Ozon: риск out-of-stock, анализ цен, юнит-экономика, синхронизация каталога, аудит контента и те же ABC и отзывы; для Яндекс Маркета: риск out-of-stock, анализ цен, разбор отзывов, индекс качества; для Авито: заказы на подтверждение, здоровье объявлений, расходы против результата, разбор отзывов. Каждый сценарий это пошаговый рецепт с трактовкой результата и типичными ошибками.
Установка
Подробный гайд под любую аудиторию лежит в QUICKSTART.md. Несколько способов, результат один.
Claude Desktop в один клик (
.mcpb). Возьмитеmarketplaces-mcp-ru-v<версия>.mcpbиз GitHub Releases и дважды кликните — Claude Desktop сам поставит расширение и спросит ключи в окне настроек. Без терминала и без Gatekeeper. Один бандл поднимает WB + Ozon + Ozon Performance + Яндекс Маркет + Авито сразу.Попросить своего ИИ (без терминала). Откройте Claude или Cowork и скажите: «установи marketplaces-mcp-ru». Агент проведёт по встроенному скиллу
marketplace-mcp-install/. В песочнице Cowork финальный клик остаётся за вами; в Claude Code установка проходит полностью сама.Скиллом из каталога.
npx skills add ilyautov/marketplaces-mcp-ruкладёт агенту скиллmarketplaces-mcp: дальше он сам ставит сервер, спрашивает ключи и проверяет установку. Работает в Claude Code, Cursor и всём, что читает Agent Skills.Скачать и кликнуть. Возьмите
marketplaces-mcp-ru-v<версия>.zipиз GitHub Releases, распакуйте, дважды кликнитеinstall.command(macOS) илиinstall.bat(Windows), вставьте ключи. На macOS при первом запуске: правый клик → «Открыть» → «Открыть» (так обходится Gatekeeper для скачанного файла).Через терминал.
git clone https://github.com/ilyautov/marketplaces-mcp-ru, затемpython3 install.py --client <ваш-клиент>.Для разработчиков (
npx/uvx).npx -y marketplaces-mcp-ru— та же строка, что в конфигах всех MCP-клиентов; Python ставить не нужно, запускалка с npm сама подтянетuvи нужную версию с PyPI.uvx marketplaces-mcp-ruзапускает объединённый сервер прямо из PyPI; отдельные серверы — консольными командамиwb-mcp/ozon-mcp/ozon-perf-mcp/yandex-mcp/avito-mcp. Ключи — через переменные окружения или те же*_add_cabinetиз чата.VS Code / Cursor в один клик. Кнопки «поставить» над этим текстом открывают редактор и прописывают
uvx marketplaces-mcp-ruв его конфиг MCP; VS Code сразу спросит ключи, в Cursor их вписывают в открывшийся JSON.Docker.
docker run -i --rm -e WB_API_TOKEN=… -e OZON_CLIENT_ID=… -e OZON_API_KEY=… ghcr.io/ilyautov/marketplaces-mcp-ru— тот же объединённый сервер по stdio, без Python на машине. Этот образ и указан в MCP Registry как OCI-пакет. Для удалённого доступа добавьте-e MCP_TRANSPORT=http -e MCP_HTTP_HOST=0.0.0.0 -p 8000:8000: сервер поднимется наhttp://…:8000/mcp(Streamable HTTP). Своей авторизации у HTTP-режима нет, закрывайте его прокси или файрволом.
Только один маркетплейс. Если четыре площадки сразу не нужны, рядом лежат отдельные пакеты: тот же сервер и тот же каталог, но один маркетплейс и имя, которым его ищут. Код общий, он приходит зависимостью отсюда.
маркетплейс | пакет | методов |
Ozon Seller | 441 | |
Wildberries | 307 | |
Яндекс Маркет | 165 | |
Авито | 64 |
Установщик копирует приложение в стабильную папку (~/.marketplace-mcp/app) и привязывает конфиг туда, так что исходную папку потом можно перемещать или удалять, ничего не сломается. Ни pip install, ни ручной правки JSON: зависимости ставятся сами при первом запуске. От вас нужны только ключи. Поддерживается 4 клиента через --client: claude-desktop и opencode получают готовый конфиг, claude-code и codex получают готовые команды mcp add.
Где взять ключи. Wildberries: seller.wildberries.ru → Настройки → Доступ к API. Ozon: seller.ozon.ru → Настройки → API-ключи. Яндекс Маркет: partner.market.yandex.ru → Настройки → Доступ к API (Api-Key). Авито: avito.ru → Для бизнеса → Интеграции → API (client_id + client_secret). Ключи хранятся в ~/.marketplace-mcp/cabinets.json локально (chmod 600), в репозиторий и в чат не попадают. Можно подключить несколько магазинов и переключаться между ними прямо из чата (*_add_cabinet / *_use_cabinet).
Проверка после установки: одна команда показывает по всем пяти серверам, сколько инструментов и методов загрузилось, найдены ли ключи и где (кабинет / env), а с --live делает по одному реальному read-вызову в каждый кабинет.
python3 serve.py doctor --live # из клона
uvx marketplaces-mcp-ru doctor --live # из PyPI
npx -y marketplaces-mcp-ru doctor --live # то же через npm, без PythonКод возврата 0 означает, что все настроенные кабинеты ответили. Секреты в вывод не попадают.
Безопасность
Ключ кабинета двигает цены, остатки и деньги, поэтому каждый метод заранее размечен по уровню риска:
read: чтение, выполняется сразу;write: изменение, требуетconfirm_write=true;destructive: удаление, требуетconfirm_write=trueиi_understand_this_modifies_data=true.
Проверка работает локально, наружу без подтверждения ничего не уходит. Что метод-мутация случайно не пометится как read, проверяет тест в CI (test_safety_catalog.py): сборка падает, если в каталог попадёт PUT, PATCH или DELETE с уровнем read. Дополнительно call_method подстраховывается на лету: даже устаревшая пометка read на мутирующем запросе не опустит проверку ниже write.
Подробнее в SECURITY.md. О найденной уязвимости пишите на ilyautov@gmail.com с темой SECURITY: marketplaces-mcp-ru, без публичного issue.
Как это устроено
Под капотом пять MCP-серверов (Wildberries, Ozon Seller, Ozon Performance, Яндекс Маркет, Авито) на общем ядре. Вместо «один инструмент на каждый эндпоинт» (это 300+ инструментов, в которых агент теряется) сделано иначе: универсальные мета-инструменты поверх каталога методов. Полное покрытие API при компактной поверхности.
ваш ИИ-агент
│
▼
мета-инструменты ──► каталог (endpoints.yaml) ──► общее ядро
search / describe / клиент · safety · ошибки
call / write / delete / пагинация · реестр
raw · fetch_all / ... │
+ типизированные инструменты (wb_get_sales, …) ▼
Wildberries / Ozon / Яндекс Маркет / Авито HTTPS APIМета-инструменты одинаковы на всех серверах (префикс wb_, ozon_, ozon_perf_, ym_ или avito_):
Инструмент | Что делает |
| Проверяет наличие ключей (секреты не печатает) |
| Ищет метод по-русски или по-английски |
| Полное описание: метод, хост, путь, scope, уровень риска, лимит, ссылка на доку |
| Читает: выполняет метод каталога класса |
| Пишет: создаёт и меняет данные, требует |
| Удаляет и меняет необратимо, требует оба подтверждения |
| Читает любой путь, даже которого ещё нет в каталоге (полное покрытие) |
| Пишет по любому пути (POST, PUT, PATCH) |
| Удаляет по любому пути (DELETE) |
| Авто-пагинация (offset / last_id / cursor / date-курсор WB / pageToken Маркета / page Авито) |
Плюс типизированные инструменты для частых задач (wb_get_sales, wb_get_stocks, ozon_get_products, ozon_get_prices, ym_get_orders, ym_set_price, avito_get_orders, avito_update_stock и др.) и инструменты управления кабинетами.
Каталог собран schema-driven из официальных OpenAPI-спецификаций:
Каталог | Файл | Методов | Секций |
Wildberries |
| 307 | 70 |
Ozon Seller |
| 441 | 67 |
Ozon Performance (реклама) |
| 45 | 6 |
Яндекс Маркет (Partner API) |
| 165 | 29 |
Авито (API для бизнеса) |
| 64 | 8 |
Ядро (продажи, остатки, цены, финансы, отзывы) выверено вживую; остальное импортировано из спецификаций, а get_raw достаёт то, чего ещё нет в каталоге. Что покрыто по бизнес-областям:
Область | Wildberries | Ozon |
Продажи и заказы | продажи, заказы, сборочные задания FBS / DBS / DBW / Самовывоз | заказы FBO / FBS, отправления, возвраты |
Остатки и склады | остатки, склады продавца, поставки FBS | остатки по складам, FBO / FBS, аналитика остатков |
Цены и скидки | цены и скидки, календарь акций | цены, стратегии ценообразования, акции |
Финансы | финотчёт реализации, баланс | транзакции, начисления, реализация, компенсации |
Контент и карточки | карточки, категории, характеристики, медиа | товары, атрибуты, категории, сертификаты |
Отзывы и вопросы | отзывы, вопросы | отзывы (нужен Premium Plus), вопросы и ответы |
Реклама | управление кампаниями, статистика | Performance API (отдельный сервер) |
Яндекс Маркет и Авито (добавлены в 0.5.0):
Область | Яндекс Маркет | Авито |
Заказы | заказы FBS / DBS / Экспресс, статусы, возвраты, отгрузки | заказы Авито Доставки, подтверждение, трек-номера, маркировка |
Товары и остатки | каталог, карточки, остатки по складам, скрытые товары | объявления, остатки в объявлениях, автозагрузка |
Цены | цены, карантин цен, акции, рекомендации | цена объявления |
Отзывы и чаты | отзывы, вопросы, чаты с покупателями | рейтинг, отзывы и ответы, мессенджер |
Аналитика | статистика заказов и товаров, 27 отчётов, индекс качества | просмотры и контакты, расходы, звонки |
Продвижение | буст продаж, ставки | услуги продвижения, BBIP |
Аналитика | воронка продаж, отчёты | аналитические отчёты, оборачиваемость |
Полный список секций покажет *_list_sections прямо в чате, точечный поиск делает wb_search_methods("остатки").
Разработка
Раздел для тех, кто хочет покопаться в коде, выверить методы боем или прислать PR.
Структура. Вся общая логика живёт в core/, серверы это тонкие обёртки над ней:
core/ общее ядро всех серверов
client.py HTTPS-клиент (хосты, заголовки, ретраи)
credentials.py загрузка ключей из cabinets.json / env
safety.py гейт read / write / destructive
registry.py загрузка и индексация каталога endpoints.yaml
paginate.py авто-пагинация (offset / last_id / cursor / date / pageToken / page)
entities.py нормализация сущностей (товары, заказы и т.д.)
workflows.py движок пошаговых сценариев
tools.py регистрация мета-инструментов в MCP
transport.py выбор транспорта: stdio (по умолчанию) или Streamable HTTP
doctor.py диагностика: инструменты, каталоги, ключи, живой пинг
errors.py единый формат ошибок
wb_mcp/ сервер WB: server.py + endpoints.yaml + workflows.yaml
ozon_mcp/ сервер Ozon: server.py + endpoints.yaml + perf_endpoints.yaml + workflows.yaml
ozon_perf_mcp/ сервер Ozon Performance (реклама, OAuth2)
yandex_mcp/ сервер Яндекс Маркета: server.py + endpoints.yaml + workflows.yaml
avito_mcp/ сервер Авито: server.py + endpoints.yaml + workflows.yaml (OAuth2)
scripts/ сборка каталогов, валидация, релиз
tests/ офлайн-тесты (токены не нужны)Локальный запуск и тесты. Нужен Python 3.10+. Зависимости (mcp, httpx, pyyaml) serve.py ставит сам в локальный .venv при первом запуске.
git clone https://github.com/ilyautov/marketplaces-mcp-ru.git
cd marketplaces-mcp-ru
# офлайн-тесты, ключи не нужны — все офлайн-тесты зелёные
env -u OZON_CLIENT_ID -u OZON_API_KEY -u WB_API_TOKEN python3 -m pytest tests/ -q
# selfcheck серверов: 21 тул для wb, 21 для ozon, 16 для ozon-perf, 22 для yandex, 26 для avito
python3 serve.py wb --selfcheck
python3 serve.py ozon --selfcheck
python3 serve.py ozon-perf --selfcheck
python3 serve.py yandex --selfcheck
python3 serve.py avito --selfcheck
# всё сразу: инструменты, каталоги, ключи, живой пинг кабинетов
python3 serve.py doctor --live
# образ для MCP Registry / удалённого запуска
docker build -t marketplaces-mcp-ru .
docker run --rm marketplaces-mcp-ru doctorТранспорт. По умолчанию stdio, как ждут Claude Desktop, Cursor, Codex и Claude Code. MCP_TRANSPORT=http переключает любой из серверов (и объединённый) на Streamable HTTP: MCP_HTTP_HOST (по умолчанию 127.0.0.1), MCP_HTTP_PORT (8000), MCP_HTTP_ALLOWED_HOSTS — список допустимых заголовков Host через запятую, защита от DNS-rebinding при публикации наружу. Аутентификации у HTTP-режима нет: кто дотянулся до порта, тот работает с вашими ключами. Держите его на localhost или за прокси.
Как устроен и растёт каталог. endpoints.yaml собирается schema-driven из официальных OpenAPI-спеков: ingest_specs.py (WB) и ingest_ozon.py (Ozon) тянут пути, derive_pagination.py и fix_items_path_from_examples.py настраивают пагинацию и items_path, sync_swagger.py подтягивает свежие спеки. Запись каждого метода описывает operation_id, метод, хост, путь, scope, уровень риска и пагинацию. Импорт идемпотентный и аддитивный: курированные уровни риска и описания не перетираются. validate_items_path.py это live-валидатор (гонять локально на своих ключах), package_release.py собирает чистый версионный zip, smoke_mcp.py это дымовой тест.
Что особенно полезно прислать:
Боевую выверку HTTP-глаголов. Пути у импортированных методов надёжны, а глаголы нет: live-проба находила «GET», которые на деле POST (405). Поправьте
*/endpoints.yamlи приложите доказательство: код ответа или ссылку на доку.Новые сценарии в
*/workflows.yaml: пошаговые рецепты с трактовкой и типичными ошибками, каждый шаг сверяется с каталогом.Уточнение safety-классификации, если метод размечен слишком мягко или строго.
Полностью правила в CONTRIBUTING.md. Перед PR прогоните офлайн-тесты и --selfcheck всех серверов; изменили число методов или тулов, поправьте цифры в README.
Безопасность репозитория. Гайдлайны для людей и агентов лежат в AGENTS.md. Секреты живут только локально: .env, cabinets.json, ключи и сертификаты закрыты .gitignore, а pre-commit прогоняет scripts/security/forbid_sensitive_files.py и scan_mcp_config.py. Что мутирующий метод не попадёт в каталог с уровнем read, держит тест test_safety_catalog.py: сборка падает на PUT, PATCH или DELETE с пометкой read. Файл .mcp.json отслеживается намеренно, это манифест плагина без секретов.
Частые вопросы
Нужно ли уметь программировать? Нет. Есть установка «попроси своего ИИ» и установка двойным кликом. pip install и правка JSON не нужны, зависимости ставятся сами, от вас только API-ключ.
Это безопасно? Куда уходят ключи? Сервер работает там же, где ваш агент, локально. Ключи лежат в ~/.marketplace-mcp/cabinets.json (chmod 600), в репозиторий и в чат не попадают. Любое изменение в кабинете (цена, остаток) происходит только с вашим подтверждением.
Чем это лучше парсеров и браузерных ботов? Это прямой Seller API по токену, а не разбор веб-страниц: нет капчи, нет блокировок, данные приходят структурированными. Плюс защита от случайного изменения цены или остатка.
Это бесплатно? Да, открытый код под лицензией MIT. Берите, форкайте, дорабатывайте.
Работает ли с Яндекс Маркетом и Авито? Да, с версии 0.5.0. Яндекс Маркет подключается по Api-Key из кабинета партнёра (Partner API: заказы, товары, остатки, цены, отчёты, чаты, индекс качества). Авито — по паре client_id / client_secret из раздела «Интеграции» (заказы Авито Доставки, остатки и цены объявлений, статистика, отзывы, мессенджер, продвижение). Сервера yandex-mcp и avito-mcp работают и отдельно, и в составе объединённого.
Что такое MCP и зачем он продавцу? MCP (Model Context Protocol) — открытый стандарт, по которому ИИ-ассистент подключает внешние инструменты. Этот проект — MCP-сервер для маркетплейсов: он превращает API Wildberries, Ozon, Яндекс Маркета и Авито в инструменты, которые агент вызывает сам, по вашему вопросу на русском языке.
Оговорки
Сверяйте с живой документацией маркетплейсов:
WB
Authorization: сервер шлёт raw-токен без префиксаBearer(подтверждено на практике). Если авторизация падает, проверьте это в первую очередь.Импортированные из спецификаций методы: пути надёжны, HTTP-глаголы не всегда. Live-проба находила методы, помеченные GET, которые на деле POST (ответ 405). Считайте такие записи картой для разведки: подтверждайте глагол и тело по докам или вызывайте через raw-инструменты. Курированное ядро (7 категорий WB, 4 секции Ozon) и live-выверенный набор надёжны.
Ozon дрейфует по версиям (list v3, attributes v4, prices v5). При 404 проверьте версию;
ingest_ozon.pyпере-выравнивает пути.Ozon Performance: пока каталог-артефакт плюс OAuth-обвязка по докам. Контракт токен-эндпоинта вживую не выверен, нужны рекламные креды.
Яндекс Маркет и Авито (новое в 0.5.0): каталоги собраны из официальных OpenAPI-документов, типизированные инструменты написаны по спецификации, но живой прогон на реальных кабинетах ещё не делался. Ошибки в именах полей возможны,
describe_methodи raw-инструменты помогут поправить запрос на месте.Кабинет затеняет переменные окружения. Активный кабинет в
cabinets.jsonимеет приоритет над env. Необъяснимый 401 или «Client-Id should be positive integer»: первым делом проверьте этот файл.
Чем это не является
Это инструмент для ИИ-агента, а не онлайн-сервис «в один клик» и не замена аналитику. Решение, которое меняет цены, остатки или деньги, всегда остаётся за вами, защита лишь не даёт сделать это случайно. Проект на стадии alpha: ставьте, проверяйте на своих данных, экспериментируйте. Нашли проблему, заведите issue (без реальных ключей и данных кабинета).
Архитектура взяла сильные идеи зрелых marketplace-MCP (schema-driven каталог, проверка безопасности, единый формат ошибок, авто-пагинация), но реализована своим кодом, без зависимости от чужих библиотек.
Лицензия
MIT.
Кто это сделал
Илья Утов, лаборатория AI Frontier. Как эти инструменты устроены внутри, пишу в Telegram и LinkedIn.
Рядом стоят:
humanizer-ru: убирает следы нейросети из русского текста
small-business-ru: 34 скилла для малого бизнеса, считают налоги и проверяют контрагента по ИНН
consilium-principis: совет мыслителей, где каждая цитата сверяется дословно
hefest: химическая безопасность завода, целиком офлайн
cordon: детерминированный слой между недоверенным контентом и действиями агента
Все проекты одним списком, разобранные по назначению: ilyautov.github.io. Исходники: github.com/ilyautov. Пригодилось, поставьте звезду: по ней это находят другие.
Available Tools
126 toolsavito_add_cabinetAIdempotent
Add or update a cabinet (a named set of API credentials), from chat.
⚠️ This puts the key into the chat transcript — requires i_understand_key_goes_to_chat=true. The terminal-free safe alternative is the installer (install.py / double-click), where the key never enters chat.
Args: credentials: dict with the required fields for this service ({fields}). For Ozon: {{"client_id": "...", "api_key": "..."}}; for WB: {{"token": "..."}}. name: optional label. If omitted, the cabinet is named after the real shop name fetched from the marketplace (falls back to "main"). i_understand_key_goes_to_chat: must be true to proceed. Saved to ~/.marketplace-mcp/cabinets.json (local, chmod 600), never echoed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| credentials | Yes | ||
| i_understand_key_goes_to_chat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (non-read-only, idempotent, non-destructive), the description reveals the key security side effect (key in chat), local file storage path and permissions, and naming fallback behavior. This adds meaningful context beyond the schema flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a purpose statement, a security warning, and an Args list. The warning about i_understand is slightly repeated (in the ⚠️ line and the Args line), but this redundancy is minor and does not hurt clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool that stores credentials, the description covers required parameters, side effects (file storage, chat exposure), the required confirmation flag, and naming behavior. Since an output schema exists and annotations already describe safety, no critical information is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates: it explains `credentials` as a dict with service-specific examples, defines `name` as optional with a fallback rule, and mandates `i_understand_key_goes_to_chat`. This is far beyond the raw JSON schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Add or update a cabinet (a named set of API credentials), from chat.', which names a specific verb, resource, and context. This clearly differentiates it from siblings like avito_list_cabinets, avito_remove_cabinet, and avito_use_cabinet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly warns 'This puts the key into the chat transcript', requiring a consent flag, and points to the installer as a terminal-free alternative where the key never enters chat. This gives clear 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.
avito_call_methodARead-only
Execute one READ endpoint from the catalog by operation_id.
Target API: https://developers.avito.ru/api-catalog.
Reads only: nothing here changes data, so it runs without confirmation. To change data use avito_write_method, to delete use avito_delete_method.
Args: operation_id: id from the catalog (see avito_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body (a few read endpoints take one). Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds that the tool 'runs without confirmation' and notes that only a few read endpoints require a body. It also discloses the response envelope and error envelope, providing useful behavioral context not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: purpose, target API, read-only behavior, sibling routing, then a compact args list and return format. Every sentence earns its place, and the line breaks make the parameter documentation easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic read executor with four parameters and an output schema, the description provides the target API, read-only guarantee, sibling alternatives, parameter roles, and return shape. It could be more detailed about authentication or error envelope specifics, but it gives an agent enough orientation to invoke the tool correctly with the help of avito_search_methods.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the explanatory burden. It gives meaningful semantics for each parameter: operation_id is sourced from the catalog, path_values fill {placeholders}, query is query-string parameters, and body is a JSON request body for certain read endpoints. While not deeply detailed, it maps each parameter to its role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Execute one READ endpoint from the catalog by operation_id.' It clearly differentiates itself from sibling write and delete tools by explicitly naming avito_write_method and avito_delete_method as the alternatives for changing or removing data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is explicit and actionable: it states this tool is for read-only operations, names the write and delete sibling tools for data changes, and points to avito_search_methods for discovering valid operation_id values. This leaves no ambiguity about when to choose this tool over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_check_authARead-only
Check whether the required credentials are present in the environment.
Does NOT reveal secret values — only reports which variables are set. Returns JSON: {"ready": bool, "missing": [str], "required": [str]}.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the readOnlyHint annotation: it explicitly states the tool does NOT reveal secret values, only reports which variables are set. It also discloses the exact return shape (JSON with ready, missing, required). This is strong transparency for a read-only check tool, though it could mention whether it validates value format or just presence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus a JSON return format. Every sentence earns its place. The key behavioral constraint (does NOT reveal secrets) is front-loaded, and the return format is clearly specified. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and a clear output schema, the description is nearly complete. It covers purpose, behavior, and return format. The only minor gap is not listing the specific environment variable names, which would help an agent know what 'required' means in practice. However, the output schema and simplicity of the tool make this a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter semantics. The description compensates by explaining what the tool reports (which variables are set, missing, required) and the return format. This is sufficient for a no-parameter tool, though it could list the exact environment variable names expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: checking whether required credentials are present in the environment. It uses a specific verb ('check') and resource ('credentials'), and explicitly distinguishes itself from credential-revealing operations by stating it does NOT reveal secret values. This is unambiguous and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: before operations requiring credentials, to verify readiness. It does not explicitly name alternatives or exclusions, but the context of sibling tools (e.g., avito_whoami, avito_use_cabinet) and the clear 'check' purpose provide sufficient guidance. A slight gap is the lack of explicit 'use this when...' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_delete_methodADestructive
Execute one DESTRUCTIVE endpoint: deletes or irreversibly changes data.
Target API: https://developers.avito.ru/api-catalog.
Both confirm_write=true and i_understand_this_modifies_data=true are required; nothing is sent without both.
Args: operation_id: id from the catalog (see avito_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: must be true. i_understand_this_modifies_data: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes | ||
| confirm_write | No | ||
| i_understand_this_modifies_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description adds value by specifying that both confirm_write and i_understand_this_modifies_data must be true, and that nothing is sent without them. It also describes the JSON return format. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the destructive intent front-loaded and the argument list clearly formatted. Every sentence contributes value, from the API reference to the return format. No redundant or promotional language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no schema coverage) and that an output schema exists, the description covers the essential usage: destructive operation, required confirmation, argument meanings, and return structure. It lacks explicit guidance on when to use this vs. avito_delete_raw, but the core invocation requirements are well addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the full burden of parameter explanation. It lists all six parameters and gives functional meanings: operation_id from the catalog, path_values for placeholders, query as query-string, body as JSON, and the two boolean flags that must be true. This is sufficient for an agent to understand each parameter's role, though it could elaborate on path_values format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Execute one DESTRUCTIVE endpoint: deletes or irreversibly changes data.' This specifies the verb (execute) and resource (destructive endpoint), and the destructive nature distinguishes it from read-only siblings. It also names the target API, providing concrete context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for destructive operations by emphasizing 'DESTRUCTIVE' and the required confirmation flags, but it does not explicitly contrast with sibling tools like avito_write_method or avito_delete_raw. It only references avito_search_methods for operation_id, leaving the agent to infer when this tool is appropriate versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_delete_rawADestructive
Delete data at ANY path, including paths not in the catalog.
Target API: https://developers.avito.ru/api-catalog.
DELETE only. Both confirm_write=true and i_understand_this_modifies_data=true are required.
Args: path: full path beginning with '/'. method: DELETE. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write: must be true. i_understand_this_modifies_data: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | No | DELETE | |
| confirm_write | No | ||
| i_understand_this_modifies_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint and readOnlyHint, and the description adds separate context: it is a hard-DELETE operation, requires explicit confirmation flags, and returns a specific JSON envelope. This goes beyond the annotations and helps an agent understand the destructive, confirmation-gated behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the destructive scope, then lists operational conditions and arguments. It is slightly repetitive about the flag requirement ('Both ... are required' and then each flag 'must be true'), but every line carries essential information and it stays compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 7-parameter raw tool, no parameter descriptions in the schema, and a destructive semantic, the description fully covers the expected path, method, parameters, host, confirmation, and return format. The agent can safely invoke this tool directly from the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all 7 parameters. It does so: path is a full path starting with '/', method is DELETE, host has an override default, query/body are JSON, and the two flags must be true. This fully compensates for the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete data at ANY path, including paths not in the catalog,' which clearly distinguishes it from catalog-specific tools like avito_delete_method. It also links to the target API and is concrete about the operation scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives actionable conditions: use it for DELETE only, any path, and require both confirm_write=true and i_understand_this_modifies_data=true. It does not explicitly name alternative tools, but these criteria are clear enough for an agent to choose this tool over other raw operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_describe_methodARead-only
Return the full catalog record for one endpoint: method, host, path, scope, safety level, pagination style, rate limit, params and doc URL.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already marks this as non-destructive; the description adds context by specifying what the returned catalog record contains. It does not contradict annotations, but it also does not disclose any other behavioral traits (e.g., whether an API key or prior setup is required).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tightly packed sentence that front-loads the action and lists the return fields with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a simple one-parameter tool, an output schema, and readOnly annotations, the description covers the core purpose well. The only real gap is the missing explanation of what operation_id represents or where it comes from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 0%, so the description must compensate. It never explains operation_id: what format it takes, where the caller obtains it, or how it links to describe_method. The name is somewhat self-evident, but no concrete guidance is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names the exact operation (return the full catalog record for one endpoint) and lists the fields returned. Combined with the verb 'describe_method', it is unambiguous and easily distinguished from call/search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives like avito_search_methods or avito_call_method. The description implies inspection rather than execution, but does not state it, and gives no hint that operation_id likely comes from a search/map tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_fetch_allARead-only
Auto-paginate a read endpoint and return every row in one response.
Handles offset, last_id, cursor (Ozon v4/v5), page and WB lastChangeDate styles. The array path is taken from the catalog automatically.
Args: operation_id: a read endpoint from the catalog. query / body / path_values: base parameters (cursor fields are managed). items_path: override the array path (default: the endpoint's own). limit: page size to request. max_items: hard cap to protect context (default 10000). Returns JSON: {"ok", "items", "total_fetched", "pages_fetched", "truncated"}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| limit | No | ||
| query | No | ||
| max_items | No | ||
| items_path | No | ||
| path_values | No | ||
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavior beyond the readOnlyHint/openWorldHint annotations: it reveals automatic pagination across multiple cursor styles, automatic array-path discovery, cursor-field management, a max_items context-protection cap, and a structured return envelope including a truncated flag. This is exactly the kind of behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose, then uses a compact, scannable Args block with no filler. Every sentence earns its place by adding operational or return-value detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic pagination tool with seven parameters and no schema-description coverage, the description is complete: it covers input semantics, pagination styles, defaults, output shape, and the truncation safeguard. The presence of an output schema also means return-value details need not be repeated in full.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates: operation_id is defined as a read endpoint from the catalog, query/body/path_values are described as base parameters with cursor fields managed, items_path is an override, limit sets page size, and max_items is a hard cap. Every one of the seven parameters receives meaningful semantic explanation beyond its schema type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence, 'Auto-paginate a read endpoint and return every row in one response,' names a specific verb, a resource, and the distinguishing behavior of returning all rows. The mention of supporting offset, last_id, cursor, page, and lastChangeDate styles further separates it from single-page sibling getters like avito_get_items and avito_get_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case clear: this is for fetching complete result sets from read endpoints, with pagination cursor fields managed automatically. It does not explicitly name single-page alternatives or state when not to use this tool, so it stops short of a 5, but the context is strong and not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_get_balanceARead-only
Wallet balance: real money and bonuses (GET /core/v1/accounts/{user_id}/balance/). Returns JSON: {"ok": true, "data": {"real": ..., "bonus": ...}}.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true and openWorldHint=true, so the safety profile is already declared. The description adds the endpoint path and clarifies it returns real money and bonus balances as a JSON structure. This matches annotations; no contradiction and no destructive behavior to disclose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two lines cover the function purpose, endpoint, and return shape with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is trivial (no params, read-only, output schema present), and description gives enough for an agent to know what it returns. Minor gap: no mention that auth/API key context is implied or how errors are reported, but the simplicity and sibling ecosystem make this sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters)Skip; no schema to compensate for. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves wallet balance separating real money and bonus, with an explicit endpoint. The name 'avito_get_balance' matches this well. Sibling tools are all in different marketplaces or broader categories (auth, sections, etc.), so distinguishing is straightforward — though it doesn't explicitly name a sibling, the purpose is specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs. alternatives. For a simple balance-checking tool with no parameters, the context is self-evident, but the description doesn't state exclusions or prerequisites like authentication being handled separately. No explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_get_chatsARead-only
Buyer chats (GET /messenger/v2/accounts/{user_id}/chats). Requires the Messenger API to be enabled on the seller's Avito plan.
Args: unread_only: only chats with unread messages. item_ids: comma-separated listing ids to filter chats by. limit: page size (<=100). offset: pagination offset (<=1000). Returns JSON: {"ok": true, "data": {"chats": [{"id", "context", "last_message", "users"}]}}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| item_ids | No | ||
| unread_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the description does not need to restate safety. It adds value by noting the Messenger API requirement and the return JSON shape, which are not covered by annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with an endpoint line, a prerequisite, then Args and Returns. It's informative but not overly verbose; sentences earn their place. Slight reduction could improve flow, but it remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations cover read-only behavior, the description provides the essential usage details (endpoint, requirement, parameters, return shape). It lacks error handling or edge-case notes, but for a read-only list tool it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully compensates by explaining each parameter: unread_only (filter), item_ids (comma-separated listing IDs), limit (page size <=100), offset (pagination <=1000). This adds meaning beyond the schema's types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves buyer chats and provides the specific endpoint. It distinguishes from siblings like avito_get_orders and avito_get_items by naming the resource (chats) and indicating the Messenger API context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context (buyer chats) and a prerequisite (Messenger API enabled), but does not explicitly mention alternatives or when not to use this tool. The context is unambiguous enough for an agent to select it for chat-related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_get_itemsARead-only
List the seller's listings (объявления): status, category, url (GET /core/v1/items). Max 25 requests/min.
Args: status: active | removed | old | blocked | rejected (comma-separated ok). category: Avito category id filter, 0 = all. updated_from: YYYY-MM-DD lower bound on the listing update date. page: 1-based page number. per_page: page size (<100). Returns JSON: {"ok": true, "data": {"meta": {...}, "resources": [...]}}. For all pages use avito_fetch_all with avito_get_items_info.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| status | No | active | |
| category | No | ||
| per_page | No | ||
| updated_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations include readOnlyHint=true and openWorldHint=true, so the description is not required to repeat that it is a read-only operation. However, the description adds valuable behavioral context beyond the annotations: it specifies the rate limit (25 requests/min), the return structure (JSON with ok/meta/resources), and the pagination semantics (1-based page, per_page <100). It does not disclose potential errors or quota exhaustion details, but the rate limit itself is a significant disclosure. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient: it includes the HTTP endpoint, rate limit, parameter list, return format, and a note about pagination. The text is front-loaded with the primary purpose and key constraints. However, the parameter list is embedded in bullet-less text, which could be more structured for easier parsing, but it is still readable and not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity: 5 parameters, no required parameters, no schema descriptions, and an output schema that is not shown in detail, the description provides sufficient information for an agent to call the tool correctly. It covers all parameters, provides example values for status, explains the return structure, and notes the rate limit. However, it does not document the output schema's nested 'resources' array or potential error codes, which would be helpful. The output schema exists in the context, so the description doesn't need to detail return values, but it does briefly. Overall, it is mostly complete for making a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides parameter names, types, defaults, but no descriptions (coverage 0%), so the description is responsible for explaining parameter meaning. The description clarifies 'status' values (active, removed, old, blocked, rejected), 'category' as Avito category ID with 0=all, and 'updated_from' as YYYY-MM-DD lower bound. However, it does not explain the 'page' and 'per_page' semantics beyond noting page is 1-based and per_page <100, which is covered. The description does not fully compensate for the complete lack of schema descriptions for all params, but it covers most critical details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the seller's listings (объявления) with status, category, and URL, and includes the HTTP endpoint. This distinguishes it from sibling tools like avito_get_stocks or avito_get_orders, but it does not explicitly name those alternatives, so it misses the top score for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: it lists filter parameters (status, category, updated_from) and pagination (page, per_page), and it specifies the rate limit of 25 requests/min. It also directs the agent to use avito_fetch_all for retrieving all pages, which serves as a clear when-to-use alternative, though it doesn't explicitly state when not to use this tool beyond that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_get_item_statsARead-only
Views / contacts / favorites per listing per period (POST /stats/v1/accounts/{user_id}/items). Up to 200 ids, 270 days deep.
Args: item_ids: comma-separated listing ids. date_from: YYYY-MM-DD (inclusive). date_to: YYYY-MM-DD (inclusive). period_grouping: day | week | month. Returns JSON with result.items[].stats[] {date, uniqViews, uniqContacts, uniqFavorites}.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | Yes | ||
| item_ids | Yes | ||
| date_from | Yes | ||
| period_grouping | No | day |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=true, which already signal a safe, non-mutating operation. The description adds valuable constraints: max 200 ids, 270-day lookback, and return format. This exceeds the baseline by providing concrete operational limits and output structure, which is helpful for an agent to anticipate API limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, starting with a one-line summary, then the endpoint, constraints, and parameter details in a clear list. Each sentence adds value—no filler. The front-loading of the purpose and endpoint makes it easy to quickly grasp the tool's role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no parameter descriptions in the schema, the description fully covers all four parameters and the return format. The output schema exists but is not provided in the prompt; however, the description already explains the return JSON structure, making the tool fully usable. Given its moderate complexity, nothing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for all parameters. It does so effectively: item_ids is described as comma-separated listing IDs, date_from/to are YYYY-MM-DD inclusive, and period_grouping is enumerated with options. The description even explains the output structure, providing full semantic meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving views/contacts/favorites per listing per period. It specifies the API endpoint and parameter details, distinguishing it from sibling tools like avito_get_stocks or avito_get_items. The focus on stats metrics makes its unique function obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving performance metrics but does not explicitly state when to use this over alternatives like avito_get_items (which likely returns all item details). It provides constraints (up to 200 ids, 270 days) but lacks guidance on exclusions or prerequisites. This is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_get_ordersARead-only
Orders placed with Авито Доставка (GET /order-management/1/orders). Business (B2C) sellers only.
Args: statuses: comma-separated filter: on_confirmation, ready_to_ship, in_transit, canceled, delivered, on_return, in_dispute, closed. date_from: unix timestamp — only orders created after it. page: 1-based page number. limit: page size (<=20). Returns JSON: {"ok": true, "data": {"orders": [...], "hasMore": bool}}. Each order has availableActions (confirm / reject / setTrackNumber …) and schedules (deadlines such as confirmTill, shipTill).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| statuses | No | ||
| date_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals safety; the description adds that it returns hasMore paging, order deadline schedules, and availableActions. This goes beyond the annotation and helps the agent understand returned data and how orders can be acted on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and well-structured: endpoint, scope, parameters, and return shape each take one short block. Every sentence adds information; no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers invocation scope, all parameter semantics, response envelope, and key returned fields (availableActions, schedules). Enough for an agent to call it correctly without external docs; output schema absence is compensated by the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides 0% description coverage, but the description fully explains every parameter: statuses allowed values, date_from as unix timestamp, page 1-based, limit <=20. This is a model example of the description compensating for a sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the specific verb+resource: retrieving orders placed with Avito Delivery, via a named endpoint, scoped to B2C sellers. This distinguishes it from sibling tools like avito_get_stocks and ym_get_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: this is for Avito Delivery orders, B2C sellers onlychers. It does not explicitly name alternatives or say when not to use it, but the scope is precise enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_get_rawARead-only
Read ANY endpoint by path, including ones missing from the catalog.
Target API: https://developers.avito.ru/api-catalog.
Safe verbs only (GET, HEAD, OPTIONS). To change data use avito_write_raw, to delete use avito_delete_raw.
Args: path: full path beginning with '/', e.g. "/core/v1/items". method: safe verb, GET by default. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body (rare on reads; some APIs want one). Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | No | GET |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark readOnlyHint and openWorldHint, and the description adds substantial behavioral context: default method is GET, host can be overridden, body is rare but possible on reads, and the response shape is disclosed. This goes well beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, front-loads the core behavior, and every sentence adds useful information. The argument list is terse but complete, with no filler or repetition of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an open-world raw API tool with five parameters and no endpoint enums, the description provides everything an agent needs: target API reference, method constraints, parameter details, and return envelope. The output behavior is also covered despite the presence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully compensates by explaining every parameter: path format with example, method defaults, host override behavior, query-string parameters, and body semantics. This is exactly the kind of parameter documentation the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'Read ANY endpoint by path, including ones missing from the catalog.' It distinguishes itself from siblings like avito_write_raw and avito_delete_raw by explicitly restricting to safe verbs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: read operations via any endpoint, and directs the agent to 'avito_write_raw' for changes and 'avito_delete_raw' for deletions. It also limits usage to GET, HEAD, and OPTIONS, leaving no ambiguity about safe invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_get_reviewsARead-only
Published reviews on the seller with score, text, deal stage and the seller's answer (GET /ratings/v1/reviews). Use avito_get_ratings_info_v1 via avito_call_method for the aggregate rating.
Args: offset: pagination offset. limit: page size (<=50). Returns JSON: {"ok": true, "data": {"total": n, "reviews": [...]}}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The `readOnlyHint: true` annotation already indicates a non-mutating operation, and the description adds context by specifying the endpoint and the returned structure. It does not contradict the read-only annotation, but it could have mentioned authentication requirements or pagination limits, though the limit parameter is already in the schema. The description adds useful behavioral context beyond the annotation, but not deeply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded; the core purpose is stated in the first sentence, followed by the essential alternative and parameter documentation. Every sentence provides useful information without fluff, balancing completeness and efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of a paginated reviews list and the presence of an output schema that defines the response format, the description covers all necessary information: what is returned, pagination parameters, and the alternative for aggregate scores. The output schema eliminates the need to describe the return format further. The description is complete for effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides types and defaults for `offset` and `limit` with zero description coverage. The description explains that `offset` is the pagination offset and `limit` is the page size with a maximum of 50, adding crucial semantic meaning beyond the schema. This compensates for the lack of schema descriptions, going beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool retrieves published reviews on the seller, listing the specific fields (score, text, deal stage, seller's answer) and the API endpoint (`GET /ratings/v1/reviews`). It is easily distinguished from siblings like `avito_get_ratings_info_v1`, which is explicitly referenced for aggregate ratings. The verb 'get' and resource 'reviews' are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the user when to use this tool (for published reviews) and directs them to use `avito_get_ratings_info_v1` via `avito_call_method` for aggregate ratings. This clear routing prevents misuse and helps the agent select the correct sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_get_sectionARead-only
List all endpoints in one section.
Args: section: section name (see avito_list_sections), e.g. "statistics". Returns JSON list of {operation_id, method, path, safety, summary}.
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which matches the read-only nature. The description adds the return structure (list of operation_id, method, path, safety, summary) and the source of the section name, providing useful context beyond the annotations. It does not mention error behavior, but for a simple read operation this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured with Args and Returns sections. The main purpose is front-loaded, and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter, an output schema is present (though not shown), and the description covers purpose, parameter source, and return format. It lacks explicit mention of error handling or limits, but for a straightforward list endpoint this is likely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no description for the 'section' parameter (0% coverage), but the description fully compensates by explaining it's a section name, directing to avito_list_sections for valid values, and giving an example ('statistics'). This makes the parameter's meaning clear and actionable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all endpoints in a given section, with a specific verb and resource. It references avito_list_sections for obtaining section names, which distinguishes it from sibling tools that list sections or search methods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a pointer to avito_list_sections for the section parameter, implying you need to list sections first. However, it does not explicitly state when to use this tool over alternatives like avito_search_methods or avito_map, leaving the decision to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_get_stocksARead-only
Stock per listing (POST /stock-management/1/info): quantity, is_unlimited, is_out_of_stock. Up to 500 ids per call.
Args: item_ids: comma-separated Avito listing ids. Returns JSON: {"ok": true, "data": {"stocks": [{"item_id", "quantity", ...}]}}.
| Name | Required | Description | Default |
|---|---|---|---|
| item_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnlyHint=true, and the description adds genuine value beyond that: the 500-id-per-call limit and the returned field list. It also details the HTTP endpoint, though this is mostly mechanical. There is no contradiction with annotations — the POST verb refers to fetching stock info, consistent with a read operation. It stops short of covering failure modes or what happens when ids exceed the batch limit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is five tight fragments front-loaded with purpose, then the endpoint, the 500-id limit, parameter format, and return shape. There is no filler, and each sentence earns its place. The mixed prose/code formatting (Args:/Returns JSON:) is slightly informal but clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool, the description covers the essentials: what it returns, input format, and the batching limit. The presence of an output schema relieves it of explaining the full return envelope, and the readOnlyHint annotation covers safety. Minor omissions — rate limits and invalid-id behavior — are acceptable given the tool's simplicity and available structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for the single parameter. It fully compensates by stating 'comma-separated Avito listing ids' — a critical formatting detail an agent needs to invoke the call correctly. The batch ceiling (500 ids) also helps an agent shape valid input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('Stock per listing') and does a read operation distinct from its write sibling avito_update_stock. It names the endpoint (POST /stock-management/1/info) and the exact data fields returned (quantity, is_unlimited, is_out_of_stock), leaving no ambiguity about what the tool fetches. Among avito siblings (get_items, get_orders, get_stocks) the stock focus is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys the operational constraint 'Up to 500 ids per call', which implies batching for larger inputs, and the tool's read-only purpose is clear from the name and readOnlyHint. However, it never explicitly contrasts this with alternatives like avito_get_items or avito_update_stock, so an agent must infer when to pick stocks over the other avito listing/stock tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_get_workflowARead-only
Return the full plan for one workflow: ordered steps (each naming a catalog operation_id and why), interpretation guidance, and common mistakes to avoid.
Args: name: workflow name (see {svc}_list_workflows).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly indicates a read-only retrieval ('Return the full plan') and specifies the content included. It does not mention permissions or error behavior, but for a getter whose safety profile is otherwise implied, this is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Definition is concise: one front-loaded sentence for purpose, one bullet for the parameter. No redundant fluff, no repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Together with the schema and sibling list, an agent has enough to know what this tool does)Skip, which argument to supply, and where to discover valid IDs. It doesn't state the output shape, but the plan description covers the functionally important parts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description documents the only parameter ('workflow name') and points to the source of valid values ('see {svc}_list_workflows'), adding practical guidance beyond the schema's bare string type. It stops short of giving an example or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Return') and resource ('the full plan for one workflow') and enumerates the concrete contents (ordered steps naming catalog operation_ids, interpretation guidance, common mistakes). This clearly differentiates it from workflow listing and other marketplace tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent exactly when to use it (when the full plan for a single workflow is needed) and points to {svc}_list_workflows to resolve the workflow name. It does not explicitly name negative cases or alternatives, but sufficient context is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_list_cabinetsARead-only
List configured cabinets for this marketplace and which one is active.
Returns JSON: {"active": str|null, "cabinets": [names], "fields_needed": [...]}. Secret values are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true holistically, and the description adds important behavioral context: 'Secret values are never returned.' This reassures agents about data sensitivity beyond what the schema or annotations convey, and the explicit JSON return shape clarifies what the agent can expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences immediately state the action and return JSON shape, with no filler. The secret-value disclaimer is a single clause that earns its place for safety. This is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool, the description is complete: it identifies the resource, states what the output will look like (including the fields_needed array), and sets security expectations. The agent has all necessary context to call the tool correctly without needing an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters distorted, and schema description coverage is 100%, so the schema carries no burden. The description adds the 'for this marketplace' setup context, but with no parameters to explain, the baseline for a zero-parameter tool is a strong 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List configured cabinets for this marketplace and which one is active.' It clearly distinguishes from sibling tools like avito_use_cabinet, avito_add_cabinet, and avito_remove_cabinet by focusing on discovery rather than mutation or selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for inspecting configured cabinets and identifying the active one, but it does not explicitly state when to use it versus siblings or provide any exclusions. The context is clear enough for a simple read operation, but there is no direct alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_list_sectionsARead-only
List API sections and how many catalog endpoints each contains.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the agent knows this is a safe read operation. The description adds the useful detail that the output includes counts of catalog endpoints per section, which is not visible in the schema. However, it doesn't describe the return format or whether the list is exhaustive, but with annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, zero waste, and the key information (what is listed and what counts are included) is front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool with an output schema present, the description is nearly complete. It tells the agent what it will get (sections and endpoint counts). It doesn't mention pagination or whether the list is sorted, but those are minor for a discovery tool. The output schema likely covers return structure, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics burden. The schema is trivially complete (100% coverage with no properties). The description adds meaning about what the response contains (section names and endpoint counts), which is the only semantic content needed. Baseline 4 for zero-param tools is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('API sections'), and adds the detail that it returns the count of catalog endpoints per section. This is clear and distinguishes it from tools like avito_get_section, which retrieves a single section's details. It doesn't explicitly name a sibling, but the scope is specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the discovery/overview tool for API sections, and the sibling list shows many similar list_sections tools for other marketplaces (ozon_list_sections, wb_list_sections, ym_list_sections). However, it doesn't explicitly state when to use this over avito_get_section or avito_search_methods, nor does it mention any exclusions or prerequisites. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_list_workflowsARead-only
List ready-made analytical workflows (recipes) for this marketplace.
Returns JSON: [{name, category, when_to_use}]. Use {svc}_get_workflow to fetch the full step-by-step plan for one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true (safe read) and openWorldHint=false (known result set), so the description does not need to repeat those. The description adds useful behavioral context: the return format (JSON with fields name, category, when_to_use) and the pointer to get_workflow for detailed steps. This adds value beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste. It front-loads the core action, specifies the output format, and immediately points to the companion tool. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists (provided as true), so the description need not elaborate further on return values. The description covers the tool's purpose, return format, and how to proceed for more detail. Complete for a no-parameter listing tool; the only minor gap is not explaining 'recipes' in depth, but the context makes it clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parametersholistic, so parameter semantics is largely irrelevant. The description focuses on the output structure (name, category, when_to_use), which is more relevant here. With no parameters, the baseline is 4, and the description appropriately avoids misleading parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('List') and resource ('ready-made analytical workflows (recipes) for this marketplace'), and immediately distinguishes itself from siblings by naming the companion tool 'avito_get_workflow' for fetching full details. This distinguishes it from the many other 'list_workflows' siblings by the 'avito' context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to use {svc}_get_workflow to fetch the full plan for one workflow, providing clear usage context. It does not explicitly exclude alternative tools, but for a list operation, the primary alternative is the get_workflow, which is named. This is clear enough for a no-parameter tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_mapARead-only
The big picture: business entities this API covers and the go-to methods for each. Call with no args to see the whole map ("you are here"); pass entity="reviews" (or stocks/prices/orders/…) to list every method of one entity. Use this before guessing — it orients you fast.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint is already present, but the description adds meaningful behavioral detail: calling with no arguments returns the whole map, and passing an entity lists every method of that entity. It makes the boundary of the tool's behavior clear without repeating the annotation content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tight and front-loaded: one sentence states purpose, the second gives exact call modes, and the third gives practical guidance. No sentence is redundant; the playfully unquoted 'you are here' helps orient the agent without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple one-parameter optional schema, read-only annotations, and an output schema, the description covers everything an agent needs to know to start using the tool correctly. It also teaches the higher-level strategy of using the map before searching, which is useful context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the parameter documentation load. It clarifies that entity is optional, gives the no-argument default behavior, and provides concrete example values like 'reviews' and 'stocks'. A fully exhaustive list of accepted entity values would have earned a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a map of business entities and their go-to methods, and explicitly distinguishes the two invocation modes: no arguments for the whole map, or an entity name to list methods for that entity. It names the resource and behavior in a way an agent can use without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear when-to-use guidance by saying 'Use this before guessing' and explains exactly when to pass the entity argument. It does not explicitly name alternatives or exclusions, such as using avito_search_methods or avito_describe_method when more detail is needed, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_remove_cabinetADestructive
Delete a stored cabinet. If it was active, another becomes active.
Args: name: the cabinet to remove.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the destructive action and the notable side-effect that another cabinet becomes active if the removed one was active. This goes beyond the destructiveHint annotation and adds useful operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the operation first, then the side-effect, then the argument. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, one-parameter destructive tool, the description covers the operation, the parameter, and the key side-effect. It omits usage alternatives, but the tool is straightforward and an output schema is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description supplies the essential meaning: name is the cabinet to remove. This directly maps the single required parameter to the operation, though it adds no finer detail about naming or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the specific resource ('a stored cabinet'), and adds a meaningful side-effect detail. This distinguishes it from sibling tools such as avito_add_cabinet, avito_list_cabinets, and avito_use_cabinet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to prefer this tool over cabinet-related alternatives, nor does it mention exclusions or prerequisites. The active-cabinet fallback is a behavioral fact, not usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_search_methodsARead-only
Search the endpoint catalog by keyword (works in Russian and English).
Args: query: free text, e.g. "остатки", "stocks", "update price". limit: max results (1-50). Returns JSON list of matching endpoints (best first).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is clear. The description adds valuable behavioral details: it works in both Russian and English, and returns results 'best first'. These traits are not in the annotations and help the agent set expectations. It does not mention pagination or rate limits, but for a simple search over a catalog this is acceptable given the read-only guarantee.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It opens with a single-sentence summary that front-loads the purpose, followed by a compact 'Args' section that explains both parameters in minimal lines. It ends with a clear 'Returns' statement. There is no redundancy or fluff—every sentence earns its place, and the formatting is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with only two parameters and an existing output schema, the description covers all essential aspects: purpose, parameter semantics, return format, and language support. Since an output schema exists (indicated by the context signal), the description does not need to enumerate fields. The description provides enough for an agent to call the tool correctly without further information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully compensate. It does: for 'query' it specifies 'free text' and gives concrete examples ('остатки', 'stocks', 'update price'), and for 'limit' it states 'max results (1-50)'. This goes beyond the schema's type and default, providing meaning, constraints, and examples that an agent can use directly. This is exactly what a good description should do when the schema is bare.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search the endpoint catalog by keyword' – a specific verb (search) with a distinct resource (endpoint catalog). It also highlights bilingual support (Russian and English), which helps separate it from most sibling tools that operate on specific endpoints or sections. The presence of sibling tools like avito_list_sections and avito_describe_method makes the differentiation meaningful; this tool is for searching the catalog, not listing or describing a single item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when an agent needs to find an endpoint by keyword, possibly across many catalogs. It does not explicitly state when NOT to use it or mention alternative tools (e.g., for listing all sections or workflows). However, the purpose is clear enough that an agent can infer the right context. A brief mention of alternatives would push this to a 5, but it's not necessary for a search tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_set_keyAIdempotent
Change / rotate the API key from chat (e.g. the old one expired or leaked).
⚠️ The key goes into the chat transcript — requires i_understand_key_goes_to_chat=true. The safe, terminal-free alternative is the installer, where the key never enters chat. Use a scoped key and rotate it in the seller cabinet if it was exposed.
Args: credentials: dict with the required fields ({fields}). cabinet: which cabinet to update. Default: the active one (so "my key expired" just works). If there is none, the cabinet is named from the marketplace's shop name, else "main". i_understand_key_goes_to_chat: must be true to proceed. On success the key is validated against the marketplace and the shop name is reported. Saved locally (chmod 600), never echoed back.
| Name | Required | Description | Default |
|---|---|---|---|
| cabinet | No | ||
| credentials | Yes | ||
| i_understand_key_goes_to_chat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses that the key enters the chat transcript, requires an explicit confirmation flag, is saved locally with chmod 600, and is never echoed back. It also notes on success the key is validated and the shop name reported. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but purposeful: it front-loads the privacy warning, gives a safety alternative, then lists arguments and success behavior. The unresolved `{fields}` placeholder is a content defect, but overall structure is clean and earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers default behavior, confirmation requirement, privacy, local file permissions, validation, and success reporting. However, it does not enumerate the required credential fields a caller must provide, and it omits any failure-mode or permission guidance. The presence of an output schema reduces the need to describe return values, but the credentials gap makes the tool not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Cabinet and i_understand_key_goes_to_chat are well explained, including default behavior and the true requirement. However, credentials is described only as 'dict with the required fields ({fields})', which is an unresolved template rather than concrete field names. Since schema description coverage is 0%, this gap leaves the most important parameter underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Change / rotate the API key from chat', which names a specific verb, resource, and context. It distinguishes this tool from siblings like avito_add_cabinet by targeting key rotation rather than cabinet management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'The safe, terminal-free alternative is the installer, where the key never enters chat' and recommends rotating in the seller cabinet if the key was exposed. It also explains the default cabinet behavior with the example 'my key expired', so an agent knows when and how to call this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_update_priceAIdempotent
Set the price of ONE listing (POST /core/v1/items/{item_id}/update_price). WRITE.
Requires confirm_write=true. Goods, spare parts, cars, real estate only; max 150 requests/min.
Args: item_id: Avito listing id. price: new price in roubles (integer). confirm_write: must be true to send. Returns JSON: {"ok": true, "data": {"result": {"success": true}}}.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | ||
| item_id | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint: false, idempotentHint: true), the description discloses the confirm_write prerequisite, rate limit, category restrictions, and the exact JSON return format. These are behavioral traits an agent needs to know and are not present in the annotations or schema. No contradictions with annotations were found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured. It leads with the core action, then states requirements and constraints, lists parameters, and finishes with the return format. Every sentence adds value; there is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a confirmation flag, rate limit, and category restrictions, the description covers everything needed to call it correctly: purpose, parameter meanings, constraints, and return value. It even provides the exact JSON structure. Given the output schema is not separately provided, the inline return description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameter descriptions (coverage 0%), but the description explicitly explains all three parameters: item_id as 'Avito listing id', price as 'new price in roubles (integer)', and confirm_write as 'must be true to send'. This fully compensates for the schema's lack of documentation and adds essential meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Set the price of ONE listing', which is a specific verb and resource. It also names the API endpoint and explicitly notes it is a WRITE operation. This clearly distinguishes it from siblings like avito_update_stock while providing a precise scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: it is for setting the price of a single listing, with explicit constraints on allowed categories ('Goods, spare parts, cars, real estate only') and a rate limit (150 requests/min). It also requires confirm_write=true. However, it does not explicitly name an alternative tool for other actions (e.g., stock updates), though the sibling list makes that obvious. This is a clear context with some exclusionary guidance, but no named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_update_stockAIdempotent
Set the available quantity of ONE listing (PUT /stock-management/1/stocks). WRITE.
Requires confirm_write=true. quantity 0 hides the "buy with delivery" button.
Args: item_id: Avito listing id. quantity: units available (0..999999). confirm_write: must be true to send. Returns JSON: {"ok": true, "data": {"stocks": [{"item_id", "success", "errors"}]}}.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ||
| quantity | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (write) and idempotentHint=true. The description adds critical behavioral details: confirm_write must be true, quantity=0 hides the 'buy with delivery' button, and the exact response shape. These go beyond the annotations and are essential for correct invocation. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-line purpose with endpoint, a behavioral note, a clear argument list, and the return format. It is a bit long but every sentence adds value. The main purpose is front-loaded, and the argument details are neatly formatted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple write operation with three parameters, the description covers everything an agent needs: the purpose, the required flag, the quantity range, and the response schema. There is no missing information about prerequisites, side effects, or error handling. The output schema also exists, so the return format is redundantly specified but harmless.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It explains every parameter: item_id is the listing id, quantity is the available units with a range (0..999999), and confirm_write must be true. It also clarifies that quantity 0 has a UI effect. This fully compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Set the available quantity'), the resource ('ONE listing'), and even the HTTP endpoint. It clearly distinguishes from sibling tools like avito_update_price (price) and avito_get_stocks (read). No ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action itself makes the usage context clear: it's for setting stock quantity, not for price or reading. While it doesn't explicitly name alternatives, the purpose is so unambiguous that an agent would know when to invoke it. There are no exclusion criteria, but none are needed given the specific verb-resource pairing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_use_cabinetAIdempotent
Switch the active cabinet. Subsequent API calls use its credentials.
Args: name: the cabinet to activate (see avito_list_cabinets).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the key behavioral side effect: switching the active cabinet affects all subsequent API calls by using that cabinet's credentials. This complements the annotations (readOnlyHint=false, idempotentHint=true) and does not contradict them, making the agent aware that this is a state-changing operation with lasting effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal and front-loaded, delivering the core purpose in the first sentence and the relevant parameter detail in a single Args line. Every sentence earns its place; there is no boilerplate or repetition of schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter, an output schema, and no nested objects, the description covers the necessary behavior (switching active cabinet) and parameter provenance. Nothing an agent needs to invoke it correctly is missing, and the output schema handles return-value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides only a parameter title 'Name' with no description, but the description fully compensates by explaining 'name: the cabinet to activate (see avito_list_cabinets).' This tells the agent not only what the parameter means but also where to obtain valid values, making it a complete semantic definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb-resource pair 'Switch the active cabinet,' clearly identifying the tool's function. It distinguishes itself from cabinet-management siblings such as avito_list_cabinets, avito_add_cabinet, and avito_remove_cabinet by stating that it changes the currently active cabinet and that subsequent API calls use that cabinet's credentials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: use this tool whenever the agent needs to change which cabinet's credentials will govern subsequent API calls. It does not explicitly name alternatives or exclusions, but the side-effect phrase 'Subsequent API calls use its credentials' provides an unambiguous signal of when the tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_whoamiARead-only
Authorized Avito account: id (needed as user_id in many methods), name, email, phone, profile_url. Also the cheapest way to verify the credentials. Returns JSON: {"ok": true, "data": {"id": ..., "name": ..., ...}}.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers safety, and the description adds useful behavioral context: the returned fields, the JSON wrapper, and the credential-verification purpose. It does not describe error behavior for invalid credentials, but this is a low-risk read endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences lead with the key output, explain why the id matters, and include the return shape. Every sentence earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only identity tool, the description covers selection and invocation: what it returns, why the id matters, and how it can verify auth. The output schema covers remaining return details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters and the input schema is empty, so the description has nothing to add. The baseline for a zero-parameter tool is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (authorized Avito account) and the exact fields returned, and it notes the id's downstream role as user_id. It lacks an explicit action verb like 'get' and slightly overlaps with the avito_check_auth sibling, so it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives two concrete use cases: obtaining the user_id needed by other methods and cheaply verifying credentials. It does not name exclusions or explicitly contrast itself with avito_check_auth, but the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_write_methodA
Execute one WRITE endpoint from the catalog: create or update data.
Target API: https://developers.avito.ru/api-catalog.
Requires confirm_write=true; nothing is sent without it. Irreversible operations live in avito_delete_method, reads in avito_call_method.
Args: operation_id: id from the catalog (see avito_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=false and destructiveHint=false, so the bar is lower. The description adds meaningful behavioral context: nothing is sent without confirm_write=true, create/update are reversible while delete is separate, and the response is a JSON envelope. This is useful safety-relevant information beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, then target API, safety condition, sibling routing, parameter list, and return shape. Every line earns its place, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's generic nature, the description gives enough to call it correctly: where to find endpoint ids, how parameters map to request construction, the confirmation requirement, and the return envelope. It could add a small example, but the existing content plus the output schema context is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden, and it does for all five parameters. It explains operation_id as a catalog id, path_values as {placeholder} substitutions, query and body as request parts, and confirm_write as a required safety flag. The explanations are brief but sufficient for a generic catalog execution tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action plus scope: 'Execute one WRITE endpoint from the catalog: create or update data.' It also differentiates from siblings by naming avito_call_method for reads and avito_delete_method for irreversible operations, so an agent can distinguish it from the other generic execution tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear routing guidance: writes belong here, reads in avito_call_method, irreversible operations in avito_delete_method. It also warns that confirm_write=true is required and that nothing is sent without ithola. It does not explicitly address specialized write siblings like avito_update_price or avito_update_stock, but it covers the main generic-vs-specialist decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
avito_write_rawA
Create or update data at ANY path, including paths not in the catalog.
Target API: https://developers.avito.ru/api-catalog.
POST, PUT and PATCH only; requires confirm_write=true.
Args: method: POST, PUT or PATCH. path: full path beginning with '/'. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, it adds the confirm_write requirement, method restrictions, and the return format. It does not detail error handling or side effects, but given readOnlyHint false and openWorldHint true, it sufficiently discloses behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with purpose, followed by constraints and parameter semantics. Every sentence contributes, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations cover safety, the description is complete enough for an agent to call it correctly. It includes all essential operational details, though it omits explicit authentication prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates fully by explaining each parameter: method values, path format, host default, query, body, and confirm_write requirement. This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates or updates data at any path, including uncatalogued paths, and lists allowed methods (POST, PUT, PATCH). This distinguishes it from siblings like avito_get_raw and avito_delete_raw, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for arbitrary raw writes, especially paths outside the catalog, but does not explicitly name alternatives or state when to prefer them. It provides clear context but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_add_cabinetAIdempotent
Add or update a cabinet (a named set of API credentials), from chat.
⚠️ This puts the key into the chat transcript — requires i_understand_key_goes_to_chat=true. The terminal-free safe alternative is the installer (install.py / double-click), where the key never enters chat.
Args: credentials: dict with the required fields for this service ({fields}). For Ozon: {{"client_id": "...", "api_key": "..."}}; for WB: {{"token": "..."}}. name: optional label. If omitted, the cabinet is named after the real shop name fetched from the marketplace (falls back to "main"). i_understand_key_goes_to_chat: must be true to proceed. Saved to ~/.marketplace-mcp/cabinets.json (local, chmod 600), never echoed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| credentials | Yes | ||
| i_understand_key_goes_to_chat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses important behavior: the key enters the chat transcript, persistence location (~/.marketplace-mcp/cabinets.json), file permissions (chmod 600), the 'never echoed' guarantee, and the default-name fallback behavior. This is rich, non-obvious context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool's purpose and critical safety caveat, then organized into clear argument definitions. The formatting is scannable and every sentence adds information needed to invoke the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a credential-storing operation, the description covers purpose, safety risks, parameters, storage location, and side effects. The output schema exists separately, so return values need not be described here. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full parameter burden. It explains the expected credentials dict format for both Ozon and WB, the optional name behavior, and the required safety flag. This goes well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Add or update a cabinet') and clarifies the resource: a named set of API credentials. The 'from chat' context and the credential examples make the tool's role unmistakable even among many sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly explains when this tool is appropriate ('from chat') and warns that the key becomes part of the conversation. It also names the safer alternative (install.py / double-click installer) for cases where the key should not enter chat.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_call_methodARead-only
Execute one READ endpoint from the catalog by operation_id.
Target API: https://docs.ozon.ru/api/seller/.
Reads only: nothing here changes data, so it runs without confirmation. To change data use ozon_write_method, to delete use ozon_delete_method.
Args: operation_id: id from the catalog (see ozon_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body (a few read endpoints take one). Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's 'Reads only: nothing here changes data, so it runs without confirmation' reinforces but also adds the operational consequence (no confirmation). It also discloses the return envelope shape ('Returns JSON: {"ok": true, "status", "data"} or the error envelope'), which is useful beyond the annotations. Minor gap: no mention of rate limits or auth requirements, but the read-only safety profile is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core action and target API come first, then the read-only safety note, then sibling routing, then parameter explanations, then return format. Every sentence earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 params, 0% schema coverage, no enums) and the presence of an output schema, the description covers the essential usage context: what the tool does, how to find operation_ids, how to route to write/delete alternatives, and what the return envelope looks like. It could mention auth prerequisites or rate limits, but the read-only nature and clear parameter guidance make it largely 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains operation_id as 'id from the catalog (see ozon_search_methods)', path_values as 'values for {placeholders} in the path', query as 'query-string parameters', and body as 'JSON request body (a few read endpoints take one)'. This adds meaning beyond the bare schema titles, though it could be more detailed about the exact format of path_values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Execute') and resource ('one READ endpoint from the catalog by operation_id'), and explicitly contrasts with write/delete siblings. It also names the target API. This clearly distinguishes it from the many sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 ('Reads only') and when not to ('To change data use ozon_write_method, to delete use ozon_delete_method'). It also points to ozon_search_methods for finding operation_ids, giving clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_check_authARead-only
Check whether the required credentials are present in the environment.
Does NOT reveal secret values — only reports which variables are set. Returns JSON: {"ready": bool, "missing": [str], "required": [str]}.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds valuable safety context beyond that: it explicitly states that secret values are NOT revealed and only variable presence is reported. This helps the agent avoid mishandling sensitive data and matches the read-only annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, purposeful sentences: the core purpose, a critical safety caveat, and the exact return shape. No filler or repetition; information is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity—no parameters, read-only annotations, and explicit return JSON in the description—the definition fully covers what the agent needs to call and interpret the tool. Nothing important is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to clarify. The schema is effectively complete at 100% coverage, and the description's mention of the missing/required arrays provides useful context for interpreting results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Check whether the required credentials are present in the environment.' This clearly differentiates it from sibling tools that perform data operations or key management, since no other sibling is an auth-check diagnostic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this tool to verify credential presence before attempting authenticated Ozon operations. However, the description never explicitly says 'use before other Ozon tools' and does not mention alternatives or exclusions, leaving the timing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_delete_methodADestructive
Execute one DESTRUCTIVE endpoint: deletes or irreversibly changes data.
Target API: https://docs.ozon.ru/api/seller/.
Both confirm_write=true and i_understand_this_modifies_data=true are required; nothing is sent without both.
Args: operation_id: id from the catalog (see ozon_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: must be true. i_understand_this_modifies_data: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes | ||
| confirm_write | No | ||
| i_understand_this_modifies_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint=true, readOnlyHint=false), the description discloses irreversibility, the hard requirement that nothing is sent unless both confirm flags are true, and the return envelope. This is meaningful behavioral safety context. It doesn't cover auth/rate limits but annotations already cover the destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and the critical safety constraint before the args list. There is a small redundancy between the early warning about required flags and their repeated 'must be true' in Args, but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a dynamic destructive endpoint tool, the description provides enough to call it: target API, source of operation_id, required confirmations, parameter meanings, and response shape. It references an output schema and API docs, so remaining endpoint-specific details are discoverable via the catalog.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by assigning a meaning to every parameter: operation_id from catalog, path_values for placeholders, query as query-string params, body as JSON, and the two booleans must be true. It could go deeper on body construction, but it adds value over the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a destructive executor for catalog endpoints ('Execute one DESTRUCTIVE endpoint: deletes or irreversibly changes data') and points to the Ozon seller API. It does not explicitly contrast with sibling tools such as ozon_delete_raw or ozon_call_method, so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for destructive endpoints and instructs the agent to get operation_id from ozon_search_methods, and it states the two confirmation flags are mandatory. It gives no explicit when-not-to-use or alternative-tool guidance, so it falls between clear context and implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_delete_rawADestructive
Delete data at ANY path, including paths not in the catalog.
Target API: https://docs.ozon.ru/api/seller/.
DELETE only. Both confirm_write=true and i_understand_this_modifies_data=true are required.
Args: path: full path beginning with '/'. method: DELETE. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write: must be true. i_understand_this_modifies_data: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | No | DELETE | |
| confirm_write | No | ||
| i_understand_this_modifies_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's warning about modifying data is consistent. The description adds valuable context beyond annotations: it warns that paths not in the catalog can be deleted, requires explicit confirmation flags, and specifies the return envelope. It could go further by noting irreversibility or auth requirements, but it is already transparent about the destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the most important warning ('Delete data at ANY path'). The Args list is terse and useful. It loses one point because the return-format line is slightly vague ('or the error envelope') and could be more explicit, but overall every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive raw HTTP tool with 7 parameters and no schema descriptions, the description covers the critical context: what it deletes, the required confirmations, the target API, and the return shape. It doesn't mention authentication prerequisites or rate limits, but the sibling context (ozon_check_auth, ozon_use_cabinet) implies auth is handled elsewhere. This is nearly complete for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does: it explains path ('full path beginning with '/''), method ('DELETE'), host ('host override'), query, body, and the two confirmation booleans. It doesn't detail the error envelope structure, but it names it. This is strong compensation for a schema with no descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and resource ('data at ANY path, including paths not in the catalog'), which clearly distinguishes it from sibling tools like ozon_delete_method or ozon_get_raw. It also names the target API and the HTTP method, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'DELETE only' and states that both confirm_write=true and i_understand_this_modifies_data=true are required. It also implies this is the raw/destructive variant among siblings, and the 'ANY path' warning tells the agent when to use it (low-level deletion) versus safer alternatives. This is strong usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_describe_methodARead-only
Return the full catalog record for one endpoint: method, host, path, scope, safety level, pagination style, rate limit, params and doc URL.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation, and the description is consistent with it. The description adds useful behavioral context by specifying exactly what the catalog record contains, including safety level, pagination style, and rate limit. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that starts with the action and object, then compactly lists the returned fields. Every word earns its place, and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one required parameter, a readOnlyHint annotation, and an output schema, the description is nearly complete. The only meaningful gap is that it does not point the agent to a source for valid operation_id values, but this is a minor omission for such a simple metadata lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the operation_id parameter. It only says 'one endpoint,' which loosely implies that operation_id selects an endpoint, but it does not explain the parameter's format, valid values, or that the ID comes from catalog tools like ozon_map or ozon_search_methods.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Return') and a clear resource ('the full catalog record for one endpoint'), then enumerates the record contents: method, host, path, scope, safety level, pagination style, rate limit, params, and doc URL. This sharply distinguishes it from sibling tools like search_methods, map, and call_method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus ozon_search_methods, ozon_map, ozon_call_method, or the describe_method equivalents for other markets. Usage is only implied by the word 'describe,' and there are no when-not-to-use or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_fetch_allARead-only
Auto-paginate a read endpoint and return every row in one response.
Handles offset, last_id, cursor (Ozon v4/v5), page and WB lastChangeDate styles. The array path is taken from the catalog automatically.
Args: operation_id: a read endpoint from the catalog. query / body / path_values: base parameters (cursor fields are managed). items_path: override the array path (default: the endpoint's own). limit: page size to request. max_items: hard cap to protect context (default 10000). Returns JSON: {"ok", "items", "total_fetched", "pages_fetched", "truncated"}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| limit | No | ||
| query | No | ||
| max_items | No | ||
| items_path | No | ||
| path_values | No | ||
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true, so the safety profile is covered. The description adds substantial behavioral detail: it handles multiple pagination styles, automatically detects the array path, manages cursor fields, enforces a max_items cap to protect context, and returns a structured result with a 'truncated' flag. This gives the agent a clear model of what will happen during execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: a one-sentence purpose, a brief pagination-support note, then a clean Args list and return shape. There is no filler, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, the description provides enough operational detail to invoke it correctly: purpose, pagination behavior, parameter roles, defaults, and return envelope. Since an output schema exists, return values are even less burdensome. It omits explicit error-handling and rate-limit expectations, but these are outweighed by the strong parameter and behavior coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for clarifying parameters. The Args section meaningfully explains operation_id, query/body/path_values as base parameters with cursor fields managed, items_path as an override, limit as page size, and max_items as a hard cap. It covers all parameters, though query/body/path_values are grouped and could be more granular about how each is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Auto-paginate a read endpoint and return every row in one response,' which names a specific action, resource, and scope. It clearly distinguishes itself from sibling single-call tools like ozon_call_method by emphasizing automatic pagination across all rows and by listing supported pagination styles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case clear: use this when you need all rows from a read endpoint, rather than making manual paginated calls. It also states that cursor fields are managed, so callers should not pass them. However, it does not explicitly name alternative tools or state when not to use this tool, so it falls short of fully explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_fbs_unfulfilledARead-only
List new/unprocessed FBS shipments awaiting assembly.
Args: cutoff_from: ISO datetime lower bound, e.g. "2026-06-01T00:00:00Z". cutoff_to: ISO datetime upper bound. limit: page size. offset: pagination offset. Returns JSON: {"ok": true, "data": {"result": {"postings": [...]}}}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| cutoff_to | Yes | ||
| cutoff_from | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=true, so the description's claim of listing data is consistent)Skip. The description does not add much beyond the annotation: it notes the 'new/unprocessed' status and the response format, but doesn't detail auth requirements or quirks. With annotations covering safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. It includes a brief Args section and a one-line return format. Some redundancy exists with schema (e.g., limit/offset names), but the docstring format is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has an output schema which reduces need to explain return values, but parameter semantics are incomplete. For a data-retrieval tool, missing pagination details (like limit range) and lack of prerequisites (e.g., auth) mean the agent may not invoke correctly. Overall, moderate completeness for a read-only, simple listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It explains cutoff_from/to as datetime bounds but does not describe limit and offset beyond names. It suggests pagination but lacks details on defaults or ranges. This is inadequate given 4 parameters and zero schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists new/unprocessed FBS shipments awaiting assembly, which is specific and distinct from siblings like wb_get_new_orders or ym_get_orders. It uses a specific verb (list) and resource (FBS shipments).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for filtering unfulfilled FBS orders by date range, but does not explicitly state when to use this versus other tools, nor when not to use it. It provides no alternatives or conditions for choosing a different tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_pricesARead-only
Get prices, commissions and price indexes per product (v5/product/info/prices).
Args: visibility: product visibility filter (default ALL). limit: page size (<=1000). cursor: pagination cursor from a previous response. Returns JSON with price, marketing_seller_price, min_price, commissions, price_indexes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| visibility | No | ALL |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true, so the read-only nature is covered. The description adds useful behavioral detail: it returns a JSON payload with specific fields (price, marketing_seller_price, commissions) and states that the cursor is for pagination from a previous response. No side effects or failure modes are disclosed, but those are largely covered by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and well-ordered: core purpose with endpoint first, then parameter list, then return payload. Zero filler, zero repetition, and the pagination cursor note is meaningfully placed near the parameter it describes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only paginated endpoint, the description is nearly complete: it specifies the resource, the three parameters, and the return shape. The presence of an output schema reduces the need to enumerate response fields further. Minor gap: it doesn't explain when pagination would be necessary or how many results come back per page, but that's not critical for a simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: all three parameters (visibility, limit, cursor) get one-line meanings, including defaults ('ALL') and the max page size (1000). It doesn't specify allowed visibility values or the exact cursor format, but it adds real semantic value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clear resource ('prices, commissions and price indexes per product') plus the exact API endpoint (v5/product/info/prices). This distinguishes it from platform-level siblings like ym_get_prices or wb_get_pricesable, and from write operations like ozon_set_price. It doesn't explicitly contrast with ozon_get_products, though the resource is clearly different, so it stops just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this tool over alternatives. It does not mention uzation, pagination strategy, or why an agent would call this instead of ozon_get_products or a fetch-all wrapper. The endpoint is stated, but usage context is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_productsARead-only
List Ozon products (one page).
Args: visibility: ALL | VISIBLE | INVISIBLE | ARCHIVED | IN_SALE ... limit: page size (<=1000). last_id: cursor from a previous page (empty for first page). Returns JSON: {"ok": true, "data": {"result": {"items": [...], "last_id": "..."}}}. For every product across pages use ozon_fetch_all with ozon_product_list.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| last_id | No | ||
| visibility | No | ALL |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and openWorldHint. Description adds pagination behavior (cursor-based via last_id) and return structure (JSON with ok, data, items, last_id). No contradiction. Could mention rate limits or error cases but sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one-line purpose, then succinct parameter descriptions, return format, and cross-page guidance. No redundant sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential aspects: purpose, parameters, return format, and pagination. Output schema exists and description complements it. No mention of error handling or rate limits, but acceptable for a read-only list tool. Could add default visibility hint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description carries full burden. It explains all three parameters: visibility with examples, limit with max constraint, and last_id as cursor. Adds meaning beyond schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List Ozon products (one page)'. The verb 'List' and resource 'Ozon products' are specific, and it distinguishes from siblings by mentioning pagination and cross-page usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states this tool returns one page, and for multiple pages it recommends using ozon_fetch_all with ozon_product_list. This provides clear 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.
ozon_get_rawARead-only
Read ANY endpoint by path, including ones missing from the catalog.
Target API: https://docs.ozon.ru/api/seller/.
Safe verbs only (GET, HEAD, OPTIONS). To change data use ozon_write_raw, to delete use ozon_delete_raw.
Args: path: full path beginning with '/', e.g. "/v1/actions". method: safe verb, GET by default. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body (rare on reads; some APIs want one). Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | No | GET |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, and the description complements this by enforcing safe verbs, explaining the default method, host override, and the JSON response envelope. It adds meaningful context beyond the annotations, though it does not mention authentication prerequisites or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise but complete, front-loading the core purpose and then enumerating each parameter with defaults and examples. Every sentence earns its place. The structured block format is easy to scan and use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low schema coverage and the tool's generic raw-access nature, the description covers the essential invocation details: endpoint, method, host, query, body, and response envelope. It also names sibling tools for mutation, making the overall context complete for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden of explaining parameters. It clearly describes path with an example, method default, host override, query parameters, and body behavior. This fully compensates for the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Read ANY endpoint by path,' and explicitly differentiates itself from the write/delete raw siblings. It also clarifies its scope as general raw reads, including catalog-missing endpoints. This makes the tool's purpose unambiguous and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage rules: 'Safe verbs only (GET, HEAD, OPTIONS)' and directly names alternatives: 'To change data use ozon_write_raw, to delete use ozon_delete_raw.' It also provides the target API URL, so an agent knows exactly where and when this tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_sectionARead-only
List all endpoints in one section.
Args: section: section name (see ozon_list_sections), e.g. "statistics". Returns JSON list of {operation_id, method, path, safety, summary}.
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, covering the read-only safety profile. The description adds that the tool returns a JSON list with operation_id, method, path, safety, and summary, but it does not describe edge cases or pagination behavior; this is modest value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line purpose, an Args section, and a Returns section. Every sentence contributes value, and the pointer to ozon_list_sections plus the return shape list are useful without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only lookup, the description covers the required parameter, how to obtain valid section names, and the output shape; an output schema also exists. It could be stronger by explicitly routing against search/describe siblings, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single section parameter has 0% schema description coverage, but the description compensates by explaining it is a section name, pointing to ozon_list_sections for valid values, and providing the concrete example 'statistics.' This gives an agent actionable parameter guidance without needing an enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with the specific behavior 'List all endpoints in one section,' naming the action and resource precisely. It also separates this from section-listing tools like ozon_list_sections by focusing on endpoints within one section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a section-endpoint enumerator and tells the agent to refer to ozon_list_sections for valid section names, with the example 'statistics.' It does not explicitly compare this tool with alternatives like ozon_search_methods or ozon_describe_method, so exclusion guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_stocksARead-only
Get available + reserved stock per product (v4/product/info/stocks).
Args: visibility: product visibility filter (default ALL). limit: page size (<=1000). last_id: cursor for pagination. Returns JSON with stock per product (present, reserved) per warehouse type.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| last_id | No | ||
| visibility | No | ALL |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=true and openWorldHint=true, and the description does not contradict them. It adds useful behavioral context beyond the annotations: the endpoint, the returned per-product and per-warehouse-type breakdown, pagination via last_id, and the limit cap of <=1000.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by an efficient Args block. Every sentence contributes either the operation, endpoint, parameter semantics, or return shape, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three optional parameters, an output schema, and read-only annotations, the description covers the endpoint, parameter meanings, constraints, and return shape. It is complete enough to invoke correctly, though it leaves usage-alternative guidance to inference and does not document visibility value options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates meaningfully by explaining each parameter: visibility is a product visibility filter defaulting to ALL, limit is page size capped at 1000, and last_id is the pagination cursor. It does not enumerate possible visibility values, but it adds real meaning beyond the bare schema names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get available + reserved stock per product' and names the underlying endpoint v4/product/info/stocks. It clearly differs from product-listing siblings like ozon_get_products, though it does not explicitly name or contrast any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as ozon_get_products or wb_get_stocks. The use case is inferable from the name and purpose, but no when-to-use or when-not-to-use conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_get_workflowARead-only
Return the full plan for one workflow: ordered steps (each naming a catalog operation_id and why), interpretation guidance, and common mistakes to avoid.
Args: name: workflow name (see {svc}_list_workflows).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the read-only nature is already disclosed. The description adds no behavior that would surprise an agent (it is a simple retrieval). It does not mention output structure, but the existence of an output schema reduces the need. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus an args listing, all essential. The main purpose is stated upfront, and the parameter reference is placed at the end. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only retrieval tool with an output schema and annotations covering safety, the description is nearly complete. The only minor gap is that it doesn't explicitly state the returned plan is in a structured format, but the output schema covers that. It provides enough 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only one parameter and 0% schema coverage, the description references '{svc}_list_workflows' to indicate where valid values come from, which is helpful but minimal. It does not explain the format or constraints beyond the schema's type string. Baseline 3 is appropriate given the low complexity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (return the full plan) and resource (one workflow), and describes precisely what the plan contains (ordered steps, interpretation guidance, mistakes). It is easily distinguished from siblings like ozon_list_workflows (which likely lists workflows) and ozon_get_section (which gets a section).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for retrieving a workflow plan, and references its companion list tool for discovering workflow names. It does not explicitly state when not to use it versus, say, ozon_describe_method, but the context is clear that this is for workflow plans, not individual operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_list_cabinetsARead-only
List configured cabinets for this marketplace and which one is active.
Returns JSON: {"active": str|null, "cabinets": [names], "fields_needed": [...]}. Secret values are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false. The description adds value by specifying the exact return format and a security guarantee ('Secret values are never returned'), which is beyond the annotation's safety profile. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no waste. The purpose is front-loaded, followed by the return shape and a security note. Every sentence contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (per context signals), the description need not explain return values in detail, but it does anyway, reinforcing clarity. It covers the purpose, scope ('for this marketplace'), and a security guarantee. For a read-only list tool with no parameters, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema fully covers them (100% coverage). The baseline for zero params is 4. The description adds return format details, which are not parameter semantics but are useful context. No param explanations needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('configured cabinets') and clearly identifies what is returned (active cabinet and list). It distinguishes itself from sibling tools like ozon_add_cabinet and ozon_remove_cabinet by focusing purely on listing, with no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: this tool is for viewing configured cabinets and the active one. It does not explicitly mention when not to use it or name alternatives, but the read-only nature and purpose are obvious from the description and annotations. No exclusions are stated, but the guidance is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_list_sectionsARead-only
List API sections and how many catalog endpoints each contains.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds that the tool returns counts, which is a mild behavioral detail, but it does not disclose any limits, pagination, or other execution traits. With annotations carrying the main burden, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the verb and object, and no filler. Every word contributes to the meaning. This is exemplary conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a simple read-only list tool with no parameters and an output schema present. It states what is listed and the key metric (count of endpoints). It does not explain what 'sections' are or how to interpret counts, but for this tool's simplicity, that is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema description coverage is effectively 100% (vacuous). The description does not need to explain parameters, and it adds no unnecessary parameter-related information. The baseline of 4 applies for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('API sections'), and adds detail that it returns the count of catalog endpoints per section. This clearly identifies the tool's function and distinguishes it from other provider-specific list tools, though it does not explicitly differentiate from siblings like ozon_perf_list_sections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as ozon_map or ozon_search_methods. It only describes what it does, leaving the agent to infer that it is for getting an overview of sections, but no explicit conditions or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_list_workflowsARead-only
List ready-made analytical workflows (recipes) for this marketplace.
Returns JSON: [{name, category, when_to_use}]. Use {svc}_get_workflow to fetch the full step-by-step plan for one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already conveys that this is a safe read operation. The description adds the output shape ('JSON: [{name, category, when_to_use}]') and the follow-up tool, which helps, but it does not disclose other behavioral details such as pagination, filtering, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, and every sentence adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully sufficient for a zero-parameter, read-only listing tool: it states what is returned alert and directs the agent to the companion tool for detail. The output schema plus readOnlyHint cover the remaining context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the empty input schema already covers the parameter surface. The description adds no parameter-specific meaning, which is acceptable but not an extra contribution beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a specific verb ('List') and identifies the resource ('ready-made analytical workflows (recipes) for this marketplace'). The parenthetical 'recipes' and the contrast with the sibling fetch tool make the purpose immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly tells the agent to use this tool to list available workflows and points to '{svc}_get_workflow' when the full step-by-step plan for one recipe is needed. It gives the key routing hint, though it does not spell out explicit exclusion cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_mapARead-only
The big picture: business entities this API covers and the go-to methods for each. Call with no args to see the whole map ("you are here"); pass entity="reviews" (or stocks/prices/orders/…) to list every method of one entity. Use this before guessing — it orients you fast.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds that calling with no args returns the full map while passing an entity narrows to that entity's methods. This is useful behavioral context beyond the annotation, with no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the purpose and immediately explain the two calling modes. Every clause earns its place; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only map tool with one optional param and an output schema, the description covers purpose, usage, parameter semantics, and orientation guidance. Nothing an agent needs to decide whether to call it and what to pass is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no description for the 'entity' parameter (0% coverage), so the description carries the burden. It explains the default (no arg = whole map) and provides examples ('reviews' or stocks/prices/orders/…) that make the parameter's semantics clear, warranting a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific purpose: a map of API entities and go-to methods. It clearly distinguishes itself from sibling tools like ozon_search_methods by framing itself as the orientation tool ('Use this before guessing'). Gives examples of entities to reinforce scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance: 'Use this before guessing — it orients you fast.' It also instructs how to invoke for whole map vs specific entity, but does not explicitly name alternative tools or when not to use it, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_add_cabinetAIdempotent
Add or update a cabinet (a named set of API credentials), from chat.
⚠️ This puts the key into the chat transcript — requires i_understand_key_goes_to_chat=true. The terminal-free safe alternative is the installer (install.py / double-click), where the key never enters chat.
Args: credentials: dict with the required fields for this service ({fields}). For Ozon: {{"client_id": "...", "api_key": "..."}}; for WB: {{"token": "..."}}. name: optional label. If omitted, the cabinet is named after the real shop name fetched from the marketplace (falls back to "main"). i_understand_key_goes_to_chat: must be true to proceed. Saved to ~/.marketplace-mcp/cabinets.json (local, chmod 600), never echoed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| credentials | Yes | ||
| i_understand_key_goes_to_chat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavior beyond annotations: the security risk of placing the key in the chat transcript, the required confirmation flag, the local save location (~/.marketplace-mcp/cabinets.json), the file permissions (chmod 600), the fact that it never echoes the key, and the fallback naming behavior if name is omitted. Annotations provide readOnlyHint=false and destructiveHint=false but not this level of detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The most critical information is front-loaded: the operation and the security warning appear in the first two sentences. The Args section is formatted cleanly and each parameter gets a useful explanation. It loses one point because the warning about the transcript is repeated twice (once in the bolded sentence and again in Args), and the '({fields})' placeholder is slightly cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is thorough for a credential-adding tool: it covers the security implication, the storage location, permissions, confirmation requirement, naming behavior, and credential format. It doesn't describe the return value or what happens if the cabinet already exists, but the output schema exists and the annotations indicate idempotentHint=true. A small gap remains around the exact response shape and how to handle an existing cabinet.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It explains credentials as 'dict with the required fields for this service' and gives concrete examples for Ozon and WB formats, explains the optional name parameter including the fallback behavior, and clarifies that i_understand_key_goes_to_chat must be true. This fully compensates for the empty schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Add or update a cabinet (a named set of API credentials), from chat.' It clearly identifies the operation, the target resource, and the context it is invoked from. It also distinguishes itself by noting this is the chat-based path, and the sibling tools include add_cabinet variants for other marketplaces, making it clear this is the Ozon Performance version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use it ('from chat') and explicitly names the alternative: 'The terminal-free safe alternative is the installer (install.py / double-click), where the key never enters chat.' It also states the required precondition (i_understand_key_goes_to_chat=true). It doesn't explicitly say when NOT to use it beyond the alternative, but the guidance is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_call_methodARead-only
Execute one READ endpoint from the catalog by operation_id.
Target API: https://docs.ozon.ru/api/performance/.
Reads only: nothing here changes data, so it runs without confirmation. To change data use ozon_perf_write_method, to delete use ozon_perf_delete_method.
Args: operation_id: id from the catalog (see ozon_perf_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body (a few read endpoints take one). Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true and openWorldHint=true, so the description's job is lighter. It confirms the read-only behavior ('Reads only: nothing here changes data') and adds useful operational context beyond annotations: that no confirmation is required, plus the return envelope shape. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first line, followed by a tightly organized Args block and return format. Every sentence earns its place — the sibling routing, parameter documentation, and return shape are all necessary for correct invocation, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return format is already structured. The description references where to find operation_ids (ozon_perf_search_methods) and documents the return envelope. A minor gap: it doesn't mention auth prerequisites, though the sibling ozon_perf_check_auth exists and the catalog likely covers this. Nearly complete for a generic dispatcher.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description fully compensates by explaining every parameter: operation_id ('id from the catalog (see ozon_perf_search_methods)'), path_values ('values for {placeholders} in the path'), query ('query-string parameters'), and body ('JSON request body (a few read endpoints take one)'). Complete coverage of all 4 params despite an empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Execute one READ endpoint from the catalog by operation_id'), identifies the exact resource (a read endpoint from the Ozon Performance API catalog), and names the target API URL. The verb+resource combination unambiguously distinguishes it from the write and delete siblings without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the condition for use ('nothing here changes data, so it runs without confirmation') and names the exact alternatives for data-changing operations ('To change data use ozon_perf_write_method, to delete use ozon_perf_delete_method'). The routing to siblings is explicit and leaves nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_check_authARead-only
Check whether the required credentials are present in the environment.
Does NOT reveal secret values — only reports which variables are set. Returns JSON: {"ready": bool, "missing": [str], "required": [str]}.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already signals a safe read operation. The description adds valuable behavioral context by explicitly stating it does NOT reveal secret values and by specifying the exact return JSON structure. This goes beyond what annotations alone provide, though it does not elaborate on potential side effects (which are none given read-only nature).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: three sentences that front-load the purpose, then the safety note, then the return format. Every sentence adds distinct value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema and read-only annotation, the description is nearly complete. It covers purpose, non-revelation of secrets, and return structure. However, it does not specify which credentials are required or how this differs from the similar ozon_check_auth tool, which could leave an agent uncertain about the exact scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 document beyond what the schema shows. The description does not add parameter-specific information, but none is needed. Baseline 4 is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: checking whether required credentials are present in the environment. It specifies the resource (Ozon Perf credentials) and the action (check), and explicitly notes what it does NOT do (reveal secrets). The platform prefix in the name distinguishes it from sibling check_auth tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. While the name implies it is for Ozon Perf (distinct from ozon_check_auth), there is no guidance on choosing between them or when not to use it. The context of platform-specific auth checks is implied but not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_delete_methodADestructive
Execute one DESTRUCTIVE endpoint: deletes or irreversibly changes data.
Target API: https://docs.ozon.ru/api/performance/.
Both confirm_write=true and i_understand_this_modifies_data=true are required; nothing is sent without both.
Args: operation_id: id from the catalog (see ozon_perf_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: must be true. i_understand_this_modifies_data: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes | ||
| confirm_write | No | ||
| i_understand_this_modifies_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations that already indicate destructiveHint=true, the description adds crucial behavioral context: it irreversibly changes data, both confirm_write and i_understand_this_modifies_data must be true, and nothing is sent without both. It also states the return envelope shape. These details meaningfully extend the annotations and inform the agent of safety-critical behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the most important warning: DESTRUCTIVE. It then lists arguments compactly and closes with the return format. There is no filler; every sentence adds information the agent needs to call the tool safely and correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter destructive tool with zero parameter descriptions, this definition is complete. It covers the purpose, prerequisites, confirmation requirement, parameter meanings, target API, and return envelope. It even directs the agent to the catalog lookup tool. Nothing essential is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides no descriptions for any of the six parameters, so the description carries the full burden. It explains operation_id as the catalog id, path_values as values for {placeholders}, query as query-string parameters, body as the JSON body, and explicitly says the two boolean flags must be true. This fully compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Execute one DESTRUCTIVE endpoint: deletes or irreversibly changes data.' It names the target API and clearly identifies this as the destructive method, distinguishing it from sibling call/write tools. The reference to operation_id from the catalog further clarifies what resource this tool acts upon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear by labeling the tool as DESTRUCTIVE and requiring explicit confirmation flags. It also tells the agent where to find operation_id (ozon_perf_search_methods). However, it does not explicitly contrast this tool with non-destructive alternatives such as ozon_perf_write_method or ozon_perf_call_method, so the guidance is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_delete_rawADestructive
Delete data at ANY path, including paths not in the catalog.
Target API: https://docs.ozon.ru/api/performance/.
DELETE only. Both confirm_write=true and i_understand_this_modifies_data=true are required.
Args: path: full path beginning with '/'. method: DELETE. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write: must be true. i_understand_this_modifies_data: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | No | DELETE | |
| confirm_write | No | ||
| i_understand_this_modifies_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false; the description adds meaningful safety context by emphasizing 'ANY path' and requiring both confirm_write=true and i_understand_this_modifies_data=true. This goes beyond the annotations and gives the agent concrete guardrails around an irreversible operation. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the destructive warning, and uses a clean Args/Returns structure. The only notable flaw is the malformed JSON example ('{"ok": true, "status", "data"}'), which slightly undermines precision. Overall, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive raw API tool, the description is nearly self-contained: it covers all seven parameters, the required confirmation flags, the return envelope, and the API target. The main missing piece is explicit routing guidance among sibling tools, but the description is otherwise sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the documentation burden. It adds real meaning by specifying path format ('full path beginning with /'), locking method to DELETE, explaining host override defaults, and mandating the two confirmation booleans. It does not detail query or body formatting, but those are generically typed raw parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is explicit: 'Delete data at ANY path, including paths not in the catalog.' This states a specific verb, resource, and scope, and the 'raw path' framing distinguishes it from catalog-bound delete methods like ozon_perf_delete_method. The additional 'DELETE only' constraint further clarifies the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'including paths not in the catalog' clearly signals when this raw tool is appropriate, and the description points to the target API. It does not explicitly name an alternative or state when not to use it, so it stops short of full exclusion guidance. Overall, the context is clear enough for an agent to select it over catalog-specific tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_describe_methodARead-only
Return the full catalog record for one endpoint: method, host, path, scope, safety level, pagination style, rate limit, params and doc URL.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description aligns by stating it returns a record. It adds value by listing the specific data fields returned, which is beyond the annotation. However, it does not disclose error scenarios, authentication requirements, or any constraints on which endpoints can be described, leaving some behavioral aspects unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that packs all essential information: the action, the scope, and the exact fields returned. There is no fluff or redundancy; every word contributes to understanding the tool's output. It is perfectly sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only describe operation with one parameter and an output schema, the description is largely complete. It covers the intent and lists the returned fields. The main gap is the lack of guidance on how to obtain the operation_id (e.g., via a search tool) and potential error conditions, but those are somewhat external to the core function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter, operation_id, with no description and 0% schema coverage. The description refers to 'one endpoint' but never explicitly explains that operation_id is the endpoint identifier, nor does it give format or sourcing hints. The connection is implicit, not explicit, so the description adds only minimal meaning beyond the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Return), the resource (full catalog record), and the scope (one endpoint). It enumerates the exact fields returned (method, host, path, etc.), making it obvious what the tool does and distinguishing it from siblings like search_methods or map. The platform prefix in the name also disambiguates it from other marketplaces' describe_method tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as ozon_perf_search_methods or ozon_perf_call_method. The description does not mention that one should describe an endpoint before calling it, nor does it explain how to obtain an operation_id. Usage context must be inferred from the name and the single parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_fetch_allARead-only
Auto-paginate a read endpoint and return every row in one response.
Handles offset, last_id, cursor (Ozon v4/v5), page and WB lastChangeDate styles. The array path is taken from the catalog automatically.
Args: operation_id: a read endpoint from the catalog. query / body / path_values: base parameters (cursor fields are managed). items_path: override the array path (default: the endpoint's own). limit: page size to request. max_items: hard cap to protect context (default 10000). Returns JSON: {"ok", "items", "total_fetched", "pages_fetched", "truncated"}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| limit | No | ||
| query | No | ||
| max_items | No | ||
| items_path | No | ||
| path_values | No | ||
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true and openWorldHint=true, so the description does not need to restate safety. It adds valuable behavioral detail: auto-pagination, handling of multiple cursor styles, automatic array path detection, a max_items cap for context protection, and the exact return JSON structure including truncated flag. It also notes that cursor fields are managed by the tool. This exceeds what annotations convey and contradicts nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a concise two-sentence intro stating the core behavior and supported styles, followed by a bulleted Args list that maps directly to parameters. It is front-loaded with the main purpose and every sentence contributes to usability. There is no fluff or repetition, and the format is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and an output schema, the description covers all essential aspects: what it does, how it handles pagination, how to specify the endpoint and parameters, the return format, and the truncation behavior. It also mentions defaults and overrides. Nothing critical is missing for an agent to correctly invoke the tool, and the presence of an output schema makes the listed return keys redundant but harmless.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the full burden of explaining parameters. The Args section gives each parameter a purpose: operation_id as a read endpoint, query/body/path_values as base parameters with cursor fields managed, items_path as an override, limit as page size, max_items as a hard cap. This adds meaning far beyond the schema's type-only definitions, enabling an agent to understand how to populate each parameter correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Auto-paginate a read endpoint and return every row in one response.' It also enumerates the pagination styles handled (offset, last_id, cursor, page, lastChangeDate), which distinguishes it from sibling fetch_all tools for other platforms. This is unambiguous and action-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is for read endpoints and auto-pagination, but it does not explicitly say when to prefer this over alternatives like call_method or other fetch_all variants. It mentions 'a read endpoint from the catalog' and the array path is taken automatically, but no explicit exclusions or comparisons with siblings are given. The platform context (Ozon Performance) is inferred from the name and the mention of Ozon v4/v5, but not stated directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_get_rawARead-only
Read ANY endpoint by path, including ones missing from the catalog.
Target API: https://docs.ozon.ru/api/performance/.
Safe verbs only (GET, HEAD, OPTIONS). To change data use ozon_perf_write_raw, to delete use ozon_perf_delete_raw.
Args: path: full path beginning with '/', e.g. "/api/client/campaign". method: safe verb, GET by default. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body (rare on reads; some APIs want one). Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | No | GET |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the description adds value by specifying safe verbs (GET/HEAD/OPTIONS), noting that a body may be needed on some reads, and describing the JSON return envelope. It does not mention authentication, cabinet selection, or rate limits, but for a purely read-only raw-path tool with this annotation coverage, the added behavioral context is solid though not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately compact and well-organized. The core purpose is front-loaded, followed by the API link, safety/alternative guidance, a clean Args list, and a return-value note. Every sentence earns its place, and the formatting makes it scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the open-world nature of this tool, the description supplies the target API documentation, safe verb constraints, sibling routing, parameter descriptions with defaults, and the expected response envelope. An agent can select and invoke this tool correctly without needing additional external information, aside from general OZON Performance authentication that applies system-wide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the full parameter burden. It does: it lists all five parameters with defaults, path format ('beginning with /'), an example path, and clarifications for method, host, query, and body. This meaningfully goes beyond the bare schema titles and gives an agent everything needed to construct a correct call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Read ANY endpoint by path, including ones missing from the catalog,' which is a specific verb and resource with clear scope. It names the target API and explicitly differentiates from write and delete raw tools, so an agent can distinguish it from its siblings without inspecting their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states safe verbs only and names the exact alternatives for changes: 'To change data use ozon_perf_write_raw, to delete use ozon_perf_delete_raw.' This gives clear when-to-use and when-not-to-use guidance, and the 'including ones missing from the catalog' phrase positions it as the catch-all for arbitrary reads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_get_sectionARead-only
List all endpoints in one section.
Args: section: section name (see ozon_perf_list_sections), e.g. "statistics". Returns JSON list of {operation_id, method, path, safety, summary}.
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, establishing the read-only, bounded nature. The description adds value by specifying the return format: a JSON list of objects with fields operation_id, method, path, safety, and summary. This is useful behavioral context beyond the annotations, though it does not cover error cases or pagination, which are less critical for a simple list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with the main purpose stated in the first sentence and the parameter explanation and return format in a short second paragraph. Every sentence contributes necessary information with no filler, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, simple return list) and the presence of an output schema (not shown but implied), the description is fairly complete. It covers the parameter source, an example, and the exact return structure. It omits potential error handling or authentication notes, but the readOnlyHint and simple nature make these minor gaps. It is sufficient for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage for the only parameter 'section'. The description fully compensates by explaining that it expects a section name from ozon_perf_list_sections and provides a concrete example 'statistics'. This gives the agent clear guidance on valid values and how to obtain them, going well beyond the bare schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'List all endpoints in one section' with a specific resource and scope. It avoids tautology and provides a distinct purpose. However, it does not explicitly differentiate itself from sibling tools like ozon_get_section or wb_get_section, relying on the name prefix 'ozon_perf_' for distinction, which is less explicit than ideal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a hint about how to obtain a valid section name (see ozon_perf_list_sections) and provides an example. However, it does not explicitly state when to use this tool over similar get_section tools for other providers (wb, ym, avito, ozon), nor does it mention any exclusions or prerequisites beyond listing sections. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_get_workflowARead-only
Return the full plan for one workflow: ordered steps (each naming a catalog operation_id and why), interpretation guidance, and common mistakes to avoid.
Args: name: workflow name (see {svc}_list_workflows).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so no contradiction. The description adds behavioral context beyond the annotation by specifying what the returned plan contains and that it is a single workflow's full plan, which helps the agent understand what invoking this tool actually yields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the main purpose. The Args section is minimal and necessary, and every sentence adds value without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one simple parameter, an existing output schema, and read-only annotations, the description covers the essential call context: what the tool returns, what the input means, and where to find valid values. It does not deeply disambiguate from similar-named sibling tools, but the namespace and focus on 'full plan' provide adequate completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does so by explaining that 'name' is a workflow name and pointing the agent to list_workflows for valid values. This gives meaningful semantics beyond the bare string parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return'), a clear resource ('full plan for one workflow'), and the key contents of that plan: ordered steps with operation_id, interpretation guidance, and common mistakes. This clearly distinguishes it from list_workflows and other siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by instructing the agent to obtain a workflow name from list_workflows, which gives some context. However, it does not explicitly state when to prefer this tool over alternatives like ozon_perf_list_workflows or other get_workflow variants, nor when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_list_cabinetsARead-only
List configured cabinets for this marketplace and which one is active.
Returns JSON: {"active": str|null, "cabinets": [names], "fields_needed": [...]}. Secret values are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already communicates safe read-only behavior. The description adds useful behavioral context beyond that: it lists the exact JSON return shape and explicitly states that secret values are never returned, which is a meaningful safeguard for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences, front-loads the core purpose, and includes the return format without 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only listing tool, the description is complete: it says what it lists, which one is active, the JSON shape, and the secret-value guarantee. Combined with readOnlyHint and output schema context, no critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parametersable, and schema description coverage is 100%, so there is no parameter burden for the description to carry. The description instead clarifies the output structure, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('configured cabinets'), and it clarifies that it also indicates the active cabinet for the OZON_PERF marketplace. It is easily distinguished from sibling tools like ozon_perf_use_cabinet or marketplace-specific list_cabinets tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you need to see configured cabinets and which one is active. However, it does not explicitly say when not to use it or compare it with alternatives such as ozon_perf_use_cabinet or other marketplace list_cabinets tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_list_sectionsARead-only
List API sections and how many catalog endpoints each contains.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, openWorldHint=false), so the description's burden is light. It adds one behavioral detail beyond the annotations—that results include per-section counts of catalog endpoints—but discloses nothing about ordering, output size, or failure behavior. With the output schema present, this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 11-word sentence that front-loads the verb and resource and wastes no words. Every phrase ('how many catalog endpoints each contains') adds information beyond what the bare tool name conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool with an output schema in place, the description covers invocation intent and the general shape of the result. It's only missing an explicit scoping note ('Ozon Performance API') and a pointer to the sibling ozon_list_sections, which are minor gaps at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline of 4 applies with nothing to document. The description is even oriented toward the output (per-section endpoint counts), which is the most useful information an agent could get for an argument-less tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and names the resource ('API sections'), adding a distinctive feature: 'how many catalog endpoints each contains.' The tool's action is unambiguous. However, it doesn't explicitly differentiate from the sibling ozon_list_sections beyond the name prefix, leaving the Performance-API scope to be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. It mentions no exclusions and doesn't route the agent to ozon_list_sections (the non-Performance counterpart) or ozon_perf_get_section for drilling into a single section. An agent must infer usage purely from naming conventions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_list_workflowsARead-only
List ready-made analytical workflows (recipes) for this marketplace.
Returns JSON: [{name, category, when_to_use}]. Use {svc}_get_workflow to fetch the full step-by-step plan for one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description only adds that it returns JSON with specific fields. No additional behavioral traits like rate limits or authority requirements are mentioned, but the read-only nature is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first states purpose, second details output format and sibling usage. No extraneous words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema present, the description fully covers the tool's behavior: listing workflows and returning specific fields. It also directs to the sibling for more detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so no parameter explanation is needed. The schema coverage is trivially 100%, and the description adds no param info because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists ready-made analytical workflows (recipes) and specifies the return format with fields name, category, when_to_use. It distinguishes itself from the sibling ozon_get_workflow, which provides step-by-step plans.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description advises using ozon_get_workflow to fetch full step-by-step plans, guiding when to use an alternative. However, it does not explicitly exclude usage for other sibling tools like ozon_perf_list_sections.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_mapARead-only
The big picture: business entities this API covers and the go-to methods for each. Call with no args to see the whole map ("you are here"); pass entity="reviews" (or stocks/prices/orders/…) to list every method of one entity. Use this before guessing — it orients you fast.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds useful behavioral detail: no-args returns the whole map, while entity= returns a per-entity method list. It also frames the tool as orientation/navigation rather than mutation. This is enough for a read-only map tool, though it doesn't discuss auth or return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the first defines the tool's purpose, the second covers both invocation modes precisely, and the third gives the strategic usage cue. It is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity tool: one optional parameter, no required params, an output schema, and read-only annotations. The description covers purpose, parameter behavior, and when to use it. There is no significant missing information that an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It does: 'pass entity="reviews" (or stocks/prices/orders/…) to list every method of one entity' and 'Call with no args to see the whole map.' It doesn't enumerate every valid entity value, but the examples and optionality are sufficient for a 1-parameter optional field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific purpose: showing the big picture of the API's business entities and the go-to methods for each. It clearly distinguishes this navigation tool from method-execution or search tools by saying 'Call with no args to see the whole map' and 'pass entity=... to list every method of one entity.' The 'this API' phrasing plus the ozon_perf_ prefix differentiates it from sibling maps like wb_map, ozon_map, ym_map, and avito_map.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage instructions: call with no args for the whole map, or pass an entity name for one entity's methods. It also says 'Use this before guessing — it orients you fast,' which is a clear when-to-use signal. It does not explicitly name alternatives like ozon_perf_search_methods or ozon_perf_describe_method or state when not to use it, so it misses the full exclusion guidance expected for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_remove_cabinetADestructive
Delete a stored cabinet. If it was active, another becomes active.
Args: name: the cabinet to remove.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is known. The description adds meaningful behavioral context beyond that: deleting an active cabinet triggers automatic activation of another cabinet. This is a genuine side-effect disclosure, though it remains slightly vague about which cabinet is selected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core action in the first sentence, the active-cabinet side effect second, and a clearly formatted Args section. No sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one required string parameter, no nested objects, output schema present), the description covers the essential behavior and the key side effect. The only minor gap is the unspecified fallback selection behavior when the active cabinet is removed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the schema only says 'name' is a string. The description compensates by defining the parameter semantically: 'name: the cabinet to remove.' This is sufficient for a single simple parameter, though it could note that the name likely must match an existing cabinet from list_cabinets.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and resource ('stored cabinet'), and adds a distinctive behavioral detail ('If it was active, another becomes active') that sets it apart from the sibling cabinet tools like list/add/set_key/use. An agent can tell exactly what operation this performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but gives no guidance on when to prefer it over alternatives such as ozon_perf_use_cabinet or ozon_perf_add_cabinet. It does not mention that the cabinet name should come from list_cabinets, nor does it state any conditions or exclusions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_search_methodsARead-only
Search the endpoint catalog by keyword (works in Russian and English).
Args: query: free text, e.g. "остатки", "stocks", "update price". limit: max results (1-50). Returns JSON list of matching endpoints (best first).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=false. The description adds useful behavioral context beyond that: 'works in Russian and English' and 'Returns JSON list of matching endpoints (best first)'. These details help the agent understand language support and result ordering without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured. The purpose is front-loaded, and the Args section cleanly explains each parameter. Every sentence adds value, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with an output schema, the description covers the essentials: what it does, parameter meanings, and return format. However, it omits critical context about which API or environment it targets (OZON PERF vs. Ozon Seller), making it incomplete for an agent choosing among similar search_methods siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so thoroughly: query is explained as free text with concrete examples ('остатки', 'stocks', 'update price'), and limit is defined with a range (1-50). This adds meaning far beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Search the endpoint catalog by keyword'. It clearly conveys the tool's function, but it does not explicitly distinguish it from sibling tools like ozon_search_methods or wb_search_methods. The name includes 'ozon_perf', but the description itself lacks that differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention that this is for the OZON PERF API or contrast with ozon_search_methods. The only usage hint is 'works in Russian and English', which is about input language, not selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_set_keyAIdempotent
Change / rotate the API key from chat (e.g. the old one expired or leaked).
⚠️ The key goes into the chat transcript — requires i_understand_key_goes_to_chat=true. The safe, terminal-free alternative is the installer, where the key never enters chat. Use a scoped key and rotate it in the seller cabinet if it was exposed.
Args: credentials: dict with the required fields ({fields}). cabinet: which cabinet to update. Default: the active one (so "my key expired" just works). If there is none, the cabinet is named from the marketplace's shop name, else "main". i_understand_key_goes_to_chat: must be true to proceed. On success the key is validated against the marketplace and the shop name is reported. Saved locally (chmod 600), never echoed back.
| Name | Required | Description | Default |
|---|---|---|---|
| cabinet | No | ||
| credentials | Yes | ||
| i_understand_key_goes_to_chat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, idempotent=true, destructive=false), the description discloses critical side effects: the key enters the chat transcript, requires an explicit acknowledgment flag, is saved locally with chmod 600, and is never echoed back. It also states validation behavior on success.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with purpose, followed by a warning, alternative, parameter explanations, and success behavior. Every sentence earns its place, and the Args list improves scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers security implications, defaults, local file permissions, and post-success validation. The only notable gap is the unresolved {fields} placeholder for credentials, which prevents the agent from constructing the required argument accurately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the weight. It explains cabinet's default resolution logic and the i_understand_key_goes_to_chat requirement well, but leaves credentials as 'dict with the required fields ({fields})' — an unexpanded placeholder that does not tell the agent what fields are actually required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'Change / rotate the API key from chat'. It clearly states the trigger scenarios (expired or leaked key) and is distinguishable from the many sibling set_key tools by the ozon_perf prefix and the explicit 'from chat' scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use context ('old one expired or leaked') and names the safe alternative ('the installer, where the key never enters chat'). It also instructs using a scoped key and rotating in the seller cabinet if exposed, providing clear routing between this tool and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_use_cabinetAIdempotent
Switch the active cabinet. Subsequent API calls use its credentials.
Args: name: the cabinet to activate (see ozon_perf_list_cabinets).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by disclosing that this tool has a persistent side effect: it changes which credentials are used for later API calls. It also cross-references the listing tool, giving the agent a way to find valid input. No contradiction with readOnlyHint false or idempotentHint true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for the action and a brief Args line that adds value. The most important information is front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter state-switching tool, the description plus the output schema covers almost everything an agent needs: what it does, how to get a valid name, and the effect on subsequent calls. It does not mention failure modes, but that is a minor gap given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides the name and type, but the description enriches the parameter by explaining that 'name' is the cabinet to activate and references ozon_perf_list_cabinets for valid values. This compensates for the 0% schema coverage, though more detail (e.g., exact format or error behavior) would be welcome.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Switch the active cabinet') with a clear resource (the cabinet) and explains the effect on subsequent API calls. It does not explicitly differentiate from the sibling ozon_use_cabinet beyond the name, so it lacks direct sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it ('Subsequent API calls use its credentials') and points to ozon_perf_list_cabinets for obtaining a valid name. However, it does not explicitly compare to alternative tools like ozon_use_cabinet or state exclusions, leaving the selection mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_write_methodA
Execute one WRITE endpoint from the catalog: create or update data.
Target API: https://docs.ozon.ru/api/performance/.
Requires confirm_write=true; nothing is sent without it. Irreversible operations live in ozon_perf_delete_method, reads in ozon_perf_call_method.
Args: operation_id: id from the catalog (see ozon_perf_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false; the description adds meaningful behavior beyond that by requiring confirm_write=true and stating that nothing is sent without it. It also clarifies that irreversible operations are not handled here, which helps an agent reason about side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and target API, then gives safety requirements, sibling routing, and a compact parameter list. Every sentence serves a purpose, and the return format is stated at the end without unnecessary prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic catalog-driven write tool with sparse schema and an output schema present, the description is complete: it covers how to identify the operation, the three request component types, the mandatory confirm_write guard, the sibling split, and the response envelope. An agent has enough context to invoke it correctly without needing the output schema details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the parameter-documentation burden. It maps each parameter to its role clearly: operation_id comes from the catalog, path_values fill placeholders, query is query-string parameters, body is a JSON request body, and confirm_write must be true. This is concise and actionable, though not deeply detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Execute one WRITE endpoint from the catalog: create or update data.' It clearly distinguishes the tool from siblings by stating that irreversible operations are in ozon_perf_delete_method and reads are in ozon_perf_call_method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when this tool applies (write/create/update catalog endpoints) and names the sibling tools for read and delete operations. It also provides a crucial usage condition: confirm_write must be true and nothing is sent without it, plus points to ozon_perf_search_methods for discovering operation_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_perf_write_rawA
Create or update data at ANY path, including paths not in the catalog.
Target API: https://docs.ozon.ru/api/performance/.
POST, PUT and PATCH only; requires confirm_write=true.
Args: method: POST, PUT or PATCH. path: full path beginning with '/'. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as mutable and open-world; the description adds non-obvious behavior: only POST/PUT/PATCH are supported, confirm_write must be true, paths must start with '/', and a specific JSON envelope is returned. This is consistent with the annotations and provides a meaningful safety guardrail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary purpose, then organized into target API, method/confirm constraints, Args, and return format with no filler. The only minor issue is repeating 'POST, PUT or PATCH' and the confirm_write requirement in both the intro and the Args list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description supplies everything an agent needs to make a correct call: target API, allowed methods, path prefix requirement, confirm_write guard, per-parameter semantics, and return/error envelope. Since an output schema and safety annotations also exist, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the Args list carries full responsibility and covers all six parameters: method values, path format, host override default, query/body purpose, and confirm_write behavior. It could specify optionality or query/body types more precisely, but it is well above the minimum for a bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the action ('Create or update data'), the resource (OZON Performance API paths), and the defining scope ('ANY path, including paths not in the catalog'), which clearly separates it from catalog-bound siblings like ozon_perf_write_method. The explicit POST/PUT/PATCH restriction removes any ambiguity that this is a raw write tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context: use for writes/updates via POST/PUT/PATCH, including out-of-catalog paths, and confirm_write=true is a hard prerequisite. It does not explicitly name a sibling alternative for catalog-validated writes, so it stops one step short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_remove_cabinetADestructive
Delete a stored cabinet. If it was active, another becomes active.
Args: name: the cabinet to remove.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is known. The description adds meaningful context beyond annotations: if the removed cabinet was active, another becomes active. This is a valuable side-effect disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: the primary action is stated first, followed by a useful behavioral note and the argument explanation. There is minor redundancy between 'Delete' and 'remove,' but no wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive operation with annotations and an output schema, this description is largely complete: it identifies the target, the side effect, and the argument. It does not discuss error behavior or prerequisites, but those are not essential here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description explicitly defines `name` as 'the cabinet to remove,' fully clarifying the single required parameter. No further format or constraint details are needed for this simple string parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Delete a stored cabinet.' This clearly distinguishes the tool from sibling operations like add, list, or use cabinets. The additional active-cabinet behavior clarifies the exact scope of the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the verb 'Delete' and the reference to a stored cabinet, but the description does not explicitly state when to prefer this tool over alternatives or mention exclusions. It gives no direct comparison to siblings like ozon_add_cabinet or ozon_use_cabinet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_search_methodsARead-only
Search the endpoint catalog by keyword (works in Russian and English).
Args: query: free text, e.g. "остатки", "stocks", "update price". limit: max results (1-50). Returns JSON list of matching endpoints (best first).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares this as read-only. The description adds behavior beyond that: it works in Russian and English, returns results 'best first', and specifies a limit range (1-50). This enriches the agent's understanding of expected behavior without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded. The main purpose is stated in the first sentence, followed by a clear Args list and a one-line return description. There is no redundant or filler content; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description needn't detail the return structure—it only says 'JSON list of matching endpoints (best first)', which is sufficient. The description covers the purpose, arguments (with examples and limits), language support, and return type. For a search tool of this simplicity, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully compensate. It does: 'query: free text' with concrete examples ('остатки', 'stocks', 'update price') clarifies the expected input, and 'limit: max results (1-50)' adds range constraints. This is exactly the kind of semantic enrichment the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search'), the resource ('endpoint catalog'), and the scope ('by keyword'). It also notes language support (Russian and English), which further clarifies its purpose. This distinguishes it from sibling tools like ozon_describe_method (which presumably describes a specific endpoint) and ozon_map, making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use it: when you need to find endpoints by keyword. It doesn't explicitly mention alternatives or exclusions, but the context of sibling tools (e.g., ozon_describe_method, ozon_get_section) makes it obvious that this is the discovery tool. The language support note adds a useful usage constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_set_keyAIdempotent
Change / rotate the API key from chat (e.g. the old one expired or leaked).
⚠️ The key goes into the chat transcript — requires i_understand_key_goes_to_chat=true. The safe, terminal-free alternative is the installer, where the key never enters chat. Use a scoped key and rotate it in the seller cabinet if it was exposed.
Args: credentials: dict with the required fields ({fields}). cabinet: which cabinet to update. Default: the active one (so "my key expired" just works). If there is none, the cabinet is named from the marketplace's shop name, else "main". i_understand_key_goes_to_chat: must be true to proceed. On success the key is validated against the marketplace and the shop name is reported. Saved locally (chmod 600), never echoed back.
| Name | Required | Description | Default |
|---|---|---|---|
| cabinet | No | ||
| credentials | Yes | ||
| i_understand_key_goes_to_chat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the key is sent into the chat transcript, requires an explicit acknowledgment flag, is saved locally with chmod 600, is never echoed back, and is validated against the marketplace on success. This is rich, security-relevant behavioral context that annotations alone do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: a short purpose, a prominent security warning, an alternative recommendation, then concise per-parameter guidance, followed by success behavior. Every sentence adds necessary information, and the most critical caveat is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's security sensitivity, the description covers the trigger, the prerequisites, the confirmation requirement, the default behavior, the failure-avoidance alternative, and post-success validation. Since an output schema exists, it does not need to exhaustively document return values. Nothing essential to calling the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the full burden. It explains credentials as a dict with required fields, cabinet selection including defaults and fallback naming, and the confirmation flag's meaning. However, the exact required fields for credentials are left as a placeholder ('{fields}'), so it does not fully specify how to build a valid credentials object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Change / rotate the API key from chat', a specific verb with a clear resource and intent. The examples ('expired or leaked') and the reference to the installer alternative make it easy to distinguish from all sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use the tool (key expired or leaked), and explicitly contrasts it with the safer installer alternative where the key never enters chat. It also adds practical guidance to use a scoped key and rotate it in the seller cabinet if exposed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_set_priceAIdempotent
Set the price for ONE product by offer_id (v1/product/import/prices). WRITE.
Requires confirm_write=true. Ozon limits price updates to ~10/product/hour. Prices are strings. old_price="0" clears the strikethrough old price.
Args: offer_id: seller's article (offer_id). price: new price as a string, e.g. "1499". old_price: pre-discount price as string, or "0" to clear. min_price: minimum price as string, or "0". currency_code: default "RUB". confirm_write: must be true to send. Returns JSON: {"ok": true, "data": {"result": [{"offer_id", "updated", "errors"}]}}.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | ||
| offer_id | Yes | ||
| min_price | No | 0 | |
| old_price | No | 0 | |
| confirm_write | No | ||
| currency_code | No | RUB |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses WRITE semantics, confirm_write requirement, Ozon's rate limit, string price typing, old_price='0' clearing behavior, and response shape beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence carries distinct operational value; formatted with endpoint, caveats, parameter list, and response shape without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, endpoint, confirmation requirement, rate limit, parameter semantics, and return shape. An agent can call this tool correctly without external lookups.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description adds meaning for every parameter, including units, defaults, and the special old_price sentinel.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Set'), the exact resource ('price for ONE product'), the identifier ('offer_id') and the endpoint. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: requires confirm_write=true, has a rate limit, and is scoped to one product. It does not explicitly name an alternative for bulk updates, though 'ONE product' implies the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_use_cabinetAIdempotent
Switch the active cabinet. Subsequent API calls use its credentials.
Args: name: the cabinet to activate (see ozon_list_cabinets).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (mutation) and idempotentHint=true. The description adds that it affects subsequent calls and uses credentials, providing useful behavioral context beyond the annotations. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a parameter note, with the core action front-loaded. No redundant words or filler. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects, and an output schema present), the description covers the essential behavior and parameter semantics. It does not mention error conditions or prerequisites, but these are not critical for a straightforward switch action and are implied by the reference to list_cabinets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must clarify the parameter. It states that 'name' is 'the cabinet to activate' and points to ozon_list_cabinets for available options, adding meaning beyond the bare schema field. It could offer more format details, but for a single parameter this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Switch' with a clear resource 'active cabinet' and explicitly states the consequence: 'Subsequent API calls use its credentials.' This distinguishes it from siblings like list/add/remove cabinets, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context that this tool changes the active cabinet for subsequent calls, but it does not explicitly state when not to use it or mention alternatives beyond the parameter reference to list_cabinets. There are no exclusions or alternate tools named, but the purpose is self-evident enough for a simple state-switching tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_write_methodA
Execute one WRITE endpoint from the catalog: create or update data.
Target API: https://docs.ozon.ru/api/seller/.
Requires confirm_write=true; nothing is sent without it. Irreversible operations live in ozon_delete_method, reads in ozon_call_method.
Args: operation_id: id from the catalog (see ozon_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide basic read-only/destructive hints. The description adds meaningful behavioral context: the confirmation gate, the fact that no request is sent without confirm_write=true, the target API, and the response envelope format. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: purpose first, then safety requirement and sibling routing, then argument definitions, then return format. Every line adds necessary information without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a dynamic catalog-driven tool, the description covers what an agent needs: which API it targets, how to find operation IDs, how to fill path/query/body, the mandatory confirmation setting, expected return shape, and when to use sibling tools. The presence of an output schema further reduces the need to explain return values in detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It provides concise but useful meanings for all five parameters: operation_id as the catalog id, path_values as placeholder substitutions, query as query-string params, body as JSON body, and confirm_write as the required safety flag. The body and query entries are somewhat generic, so it is not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Execute one WRITE endpoint from the catalog: create or update data') and identifies the resource as a catalog write endpoint. It also distinguishes itself from sibling tools by naming ozon_call_method for reads and ozon_delete_method for irreversible operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is explicit: 'Requires confirm_write=true; nothing is sent without it' and 'Irreversible operations live in ozon_delete_method, reads in ozon_call_method.' This tells the agent exactly when to use this tool and which alternative to select for other operation classes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ozon_write_rawA
Create or update data at ANY path, including paths not in the catalog.
Target API: https://docs.ozon.ru/api/seller/.
POST, PUT and PATCH only; requires confirm_write=true.
Args: method: POST, PUT or PATCH. path: full path beginning with '/'. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=false, destructiveHint=false), the description adds valuable behavior: it only accepts POST/PUT/PATCH, requires confirm_write, documents host defaulting, and specifies the return envelope. It does not discuss error cases or rate limits, but nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two opening sentences plus a tight Args list, with the most important scope statement front-loaded. Every line adds information, there is no filler, and the return format is included compactly at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a raw-path write tool with six parameters, the description supplies the target API, method limitations, parameter semantics, confirmation requirement, and response envelope. An agent has enough to construct a valid call, including knowledge of the required confirm_write override, without needing the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for six parameters. It adds concrete constraints: method values, path format, host defaulting, query-string semantics, JSON body type, and the mandatory confirm_write flag. Every parameter receives meaning beyond its bare title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action ('Create or update data') and resource ('at ANY path'), and immediately differentiates it from catalog-based siblings by noting paths not in the catalog. The POST/PUT/PATCH restriction and target API anchor it as a raw write tool, so an agent can distinguish it from ozon_get_raw, ozon_delete_raw, and ozon_write_method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when the tool applies: any raw write via POST/PUT/PATCH, and requires confirm_write=true. It does not name sibling alternatives or an explicit when-not-to-use, but the 'paths not in the catalog' wording gives a usable decision boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_add_cabinetAIdempotent
Add or update a cabinet (a named set of API credentials), from chat.
⚠️ This puts the key into the chat transcript — requires i_understand_key_goes_to_chat=true. The terminal-free safe alternative is the installer (install.py / double-click), where the key never enters chat.
Args: credentials: dict with the required fields for this service ({fields}). For Ozon: {{"client_id": "...", "api_key": "..."}}; for WB: {{"token": "..."}}. name: optional label. If omitted, the cabinet is named after the real shop name fetched from the marketplace (falls back to "main"). i_understand_key_goes_to_chat: must be true to proceed. Saved to ~/.marketplace-mcp/cabinets.json (local, chmod 600), never echoed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| credentials | Yes | ||
| i_understand_key_goes_to_chat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond annotations by disclosing that the key is placed in the chat transcript, that it requires the i_understand_key_goes_to_chat flag, that the cabinet is saved locally with chmod 600, and that the key is never echoed. These are critical behavioral details not present in the annotations (readOnlyHint false, idempotentHint true, destructiveHint false).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear warning, an args section, and storage details. Every sentence adds value: the warning is critical, the arg explanations are precise, and the storage info reassures about security. It is not verbose despite covering complex topics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all essentials: what the tool does, the security risk, the required flag, parameter formats, auto-naming behavior, and persistence details. An output schema exists, so return values need not be described. Nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining each parameter: credentials as a dict with required fields and concrete examples for Ozon and WB, name as optional with auto-naming fallback to 'main', and i_understand_key_goes_to_chat as a mandatory safety gate. This is exemplary parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Add or update a cabinet (a named set of API credentials), from chat.' It uses a specific verb (add/update) and a concrete resource (cabinet) and provides examples for both Ozon and WB, making its purpose unambiguous and distinguishable from sibling tools like wb_set_key or wb_remove_cabinet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a when-to-use versus when-not-to-use directive: it warns that the key goes into the chat transcript and recommends the terminal-free installer as a safer alternative. This gives clear context for choosing this tool over the installer, and implicitly over other in-chat credential tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_call_methodARead-only
Execute one READ endpoint from the catalog by operation_id.
Target API: https://dev.wildberries.ru/en/openapi/api-information.
Reads only: nothing here changes data, so it runs without confirmation. To change data use wb_write_method, to delete use wb_delete_method.
Args: operation_id: id from the catalog (see wb_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body (a few read endpoints take one). Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=trueaiman, and the description reinforces this with 'nothing here changes data' and adds operational context not in annotations: 'it runs without confirmation.' It also discloses the return envelope and error case. This adds meaningful behavioral context beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. Each sentence adds value: scope, target API, safety, arg explanations, and return format. There is no filler or unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only method with an output schema and clear annotations, the description covers operation selection, argument semantics, related tools, safety, and return envelope. It also gives the target API. An agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It explains every parameter: operation_id as the catalog identifier, path_values for placeholders, query as query-string parameters, and body as the JSON request body. This fully compensates for the schema's lack of field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'Execute one READ endpoint from the catalog by operation_id.' It clearly distinguishes itself from write/delete siblings by stating what it does NOT do, and it references the catalog source. This leaves no ambiguity about the tool's core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Reads only... To change data use wb_write_method, to delete use wb_delete_method,' naming the exact alternatives and the condition that selects them. It also points to wb_search_methods for obtaining operation_id. This is explicit 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.
wb_check_authARead-only
Check whether the required credentials are present in the environment.
Does NOT reveal secret values — only reports which variables are set. Returns JSON: {"ready": bool, "missing": [str], "required": [str]}.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, but the description adds valuable behavior: it explicitly states the tool does NOT reveal secret values and only reports which variables are set. It also specifies the exact return JSON structure. This goes beyond what annotations convey and helps an agent understand safety and output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences plus a return-format spec. It front-loads the purpose, then states a key behavioral constraint, and finally gives the exact output. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only, parameterless check tool, the description is complete. It explains what it does, what it returns, and a critical safety behavior. With an output schema present and no params, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is trivially 100%. Per the baseline rule for 0 params, a score of 4 is appropriate. The description adds no parameter details because none exist, and no compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and resource ('whether the required credentials are present in the environment'), and explicitly clarifies it does not reveal secrets. This clearly distinguishes it from other wb_* tools that perform actions or retrieve data. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is a pre-flight check for environment credentials but does not explicitly state when to use it versus alternatives (e.g., wb_set_key, wb_add_cabinet). It does not mention exclusion conditions or recommend it before other operations. The intended use case is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_delete_methodADestructive
Execute one DESTRUCTIVE endpoint: deletes or irreversibly changes data.
Target API: https://dev.wildberries.ru/en/openapi/api-information.
Both confirm_write=true and i_understand_this_modifies_data=true are required; nothing is sent without both.
Args: operation_id: id from the catalog (see wb_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: must be true. i_understand_this_modifies_data: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes | ||
| confirm_write | No | ||
| i_understand_this_modifies_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and readOnlyHint=false, so the description's job is lighter. It adds meaningful behavioral context: writes are irreversible, and nothing is sent unless both confirm_write and i_understand_this_modifies_data are true, and it documents the response/error envelope. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the destructive warning, followed by the API link, mandatory confirmation flags, a compact parameter list, and return format. The only weakness is redundancy: the two confirmation flags are stated both in the opening paragraph and again in the Args list. Still, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic destructive executor with six parameters, the description covers the core needs: what the tool does, where operation_ids come from, how to pass path/query/body values, the mandatory safety flags, and the return/error envelope. It does not mention authentication prerequisites or explicitly route to alternatives, but the output schema and annotations cover some of the remaining context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does. It lists all six parameters with useful meanings: operation_id comes from the catalog, path_values fill placeholders, confirm_write and i_understand_this_modifies_data must be true. Some entries like 'query: query-string parameters' and 'body: JSON request body' are thin, but the critical safety flags and catalog linkage are explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Execute one DESTRUCTIVE endpoint') and clarifies the resource ('deletes or irreversibly changes data'), which clearly separates it from read-only or non-destructive write tools. It does not name a specific endpoint because it is a generic catalog-based executor, but the destructive framing and target API URL make the purpose understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this tool when an operation_id from the Wildberries catalog is destructive, and it points to wb_search_methods for finding operation_ids. However, it does not explicitly contrast with sibling tools like wb_write_method, wb_call_method, or wb_delete_raw, nor does it state when not to use this tool. The guidance is clear but left largely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_delete_rawADestructive
Delete data at ANY path, including paths not in the catalog.
Target API: https://dev.wildberries.ru/en/openapi/api-information.
DELETE only. Both confirm_write=true and i_understand_this_modifies_data=true are required.
Args: path: full path beginning with '/'. method: DELETE. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write: must be true. i_understand_this_modifies_data: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | No | DELETE | |
| confirm_write | No | ||
| i_understand_this_modifies_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds the mandatory confirm_write and i_understand_this_modifies_data flags, plus the scope of deletion (any path). It also notes the target API and return format. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with a clear capability statement up front, followed by the args list. Every sentence adds necessary information, though the target API link could be seen as extra but is helpful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a raw DELETE with 7 parameters and an output schema. The description covers the core behavior, required flags, parameter details, and return format. It lacks edge-case handling details but is adequate for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains every parameter: path format, method fixed to DELETE, host override, query, body, and the two required boolean flags. This adds significant meaning beyond the schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes data at ANY path, including non-catalog paths, with a specific verb and resource. It distinguishes itself from catalog-based deletion tools (e.g., wb_delete_method) by explicitly mentioning 'any path' and 'not in the catalog'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for arbitrary or non-catalog paths, and explicitly requires both confirmation flags, making the invocation conditions clear. It does not explicitly name alternative tools for catalog paths, but the 'including paths not in the catalog' phrasing provides sufficient context to infer when to use this raw variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_describe_methodARead-only
Return the full catalog record for one endpoint: method, host, path, scope, safety level, pagination style, rate limit, params and doc URL.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the specific content of the returned record, which is useful context, but it doesn't disclose any additional behavioral traits such as error handling, auth requirements, or side effects. Since annotations cover the read-only nature, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that lists all relevant fields without any filler. Every word earns its place, and the structure is perfectly readable for an agent scanning for a quick purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description doesn't need to detail return values. It lists the record's fields, which covers the content. It doesn't mention what happens with an invalid operation_id or how to obtain one, but given the read-only nature and the existence of sibling search tools, this is acceptable. The description is complete enough for the tool's simple role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. The parameter operation_id is only implicitly defined via 'one endpoint.' It doesn't explicitly state that operation_id is the identifier for the endpoint, nor does it provide format or examples. However, the parameter name is self-explanatory and the description implies its role, so it meets the minimum bar.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Return the full catalog record for one endpoint.' It enumerates the exact fields returned (method, host, path, scope, safety level, pagination style, rate limit, params, doc URL), making it unmistakably distinct from sibling tools like wb_search_methods (search) or wb_call_method (execute). The singular 'one endpoint' clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies usage: call this when you have an operation_id and need the full details of a single endpoint. It doesn't explicitly mention alternatives or when not to use it, but the distinction from search/call tools is evident from 'one endpoint' and the listed fields. No exclusions are stated, but the context is clear enough for an agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_fetch_allARead-only
Auto-paginate a read endpoint and return every row in one response.
Handles offset, last_id, cursor (Ozon v4/v5), page and WB lastChangeDate styles. The array path is taken from the catalog automatically.
Args: operation_id: a read endpoint from the catalog. query / body / path_values: base parameters (cursor fields are managed). items_path: override the array path (default: the endpoint's own). limit: page size to request. max_items: hard cap to protect context (default 10000). Returns JSON: {"ok", "items", "total_fetched", "pages_fetched", "truncated"}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| limit | No | ||
| query | No | ||
| max_items | No | ||
| items_path | No | ||
| path_values | No | ||
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and openWorldHint; the description adds valuable context: cursor fields are auto-managed, max_items (default 10000) protects context, and extra keys are ignored. The truncated flag and page-capping behavior are disclosed beyond what annotations convey. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, followed by a scannable list of supported pagination styles, then a compact Args block. Every sentence earns its place; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema being present, the description still documents the return envelope ({ok, items, total_fetched, pages_fetched, truncated}) and fully covers all 7 parameters, which is critical given 0% schema coverage. A minor gap is the lack of a concrete example of items_path or per-endpoint pagination quirks, but the catalog hub makes this acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description carries the full burden and largely succeeds: it explains operation_id as a catalog read endpoint, query/body/path_values as base parameters with cursor fields managed, items_path as an array-path override, and defaults for limit and max_items. It could be slightly more explicit about how cursor management interacts with user-supplied query values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Auto-paginate a read endpoint and return every row in one response.' The read-endpoint scoping distinguishes it from mutation siblings like wb_set_price and from single-call tools like wb_call_method, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use it — when you want every row from a read endpoint rather than a single page — and enumerates the pagination styles it handles. It stops short of explicitly naming alternatives such as wb_call_method or stating when not to use it, so it lacks an explicit exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_get_new_ordersARead-only
Get new FBS assembly orders awaiting processing (Marketplace API).
Returns JSON: {"ok": true, "data": {"orders": [...]}} — each order has id, rid, article, skus, createdAt, warehouseId.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and openWorldHint. Description adds the exact JSON response structure and keys (id, rid, etc.), giving the agent expected output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two-sentence description: first sentence states purpose, second shows response structure. No fluff, well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no parameters, output schema implied by example JSON, annotations cover behavior. Description provides all necessary context for a simple list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage 100%. Description doesn't need to add param info. Baseline 4 for 0 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get', specific resource 'new FBS assembly orders awaiting processing'. Distinct from sibling tools (Ozon products).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives mentioned. However, siblings are unrelated, so guidance is less critical, but still absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_get_pricesARead-only
Get current prices and discounts for products (Discounts-Prices API).
Args: limit: page size (<=1000). offset: pagination offset. filter_nm_id: optional single nmID to filter by. Returns JSON: {"ok": true, "data": {"listGoods": [{nmID, sizes, discount, ...}]}}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| filter_nm_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: true and openWorldHint: true, so the safety profile is covered. The description adds valuable behavioral context by specifying the return JSON structure (including 'ok' and 'data.listGoods' with fields like nmID, sizes, discount) and pagination behavior (limit <=1000, offset). This goes beyond the annotations and helps the agent understand the tool's output and constraints. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary purpose in the first sentence. It then lists parameters and return format in a structured, scannable way. Every sentence provides useful information without fluff. The format is efficient for an agent to parse and act upon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only get tool, the description is complete: it states the purpose, lists all parameters with constraints, and describes the return format. The output schema is essentially embedded in the description, covering what the agent needs to know to call and interpret results. No critical information is missing for a straightforward read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It does so clearly: limit with a max constraint (<=1000), offset as pagination offset, and filter_nm_id as an optional single nmID. This adds meaning beyond the schema, which only provides types and defaults. The description clarifies the purpose and constraints of each parameter, though it doesn't elaborate on what nmID represents, which is a minor gap given domain context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get current prices and discounts for products'. It identifies the specific API ('Discounts-Prices API') and the resource (products). This distinguishes it from sibling tools like wb_set_price (which sets prices) and other get tools (e.g., wb_get_sales, wb_get_stocks) that target different resources. The verb 'Get' and resource 'prices and discounts' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to use the tool via parameters and return format but does not explicitly state when to choose this over alternatives. While the read-only nature and resource scope are clear, there is no direct mention of when not to use it or when a sibling like wb_set_price would be appropriate. The usage context is implied but not stated explicitly, leaving the agent to infer selection based on the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_get_rawARead-only
Read ANY endpoint by path, including ones missing from the catalog.
Target API: https://dev.wildberries.ru/en/openapi/api-information.
Safe verbs only (GET, HEAD, OPTIONS). To change data use wb_write_raw, to delete use wb_delete_raw.
Args: path: full path beginning with '/', e.g. "/ping". method: safe verb, GET by default. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body (rare on reads; some APIs want one). Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | No | GET |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, and the description reinforces the read-only constraint by listing safe verbs. It adds useful behavioral context: the tool returns a JSON envelope {'ok': true, 'status', 'data'} or an error envelope, and notes that some read APIs expect a body. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose and scope appear in the first sentence, followed by the API reference link, safety constraints, sibling routing, and a terse parameter list. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a raw-path tool with an output schema and read-only annotations, the description covers the essential invocation details: path format, method restrictions, host override, query, body, and return envelope. It could mention error behavior in slightly more detail, but the error envelope reference and the output schema cover the main gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains each parameter: path is a full path beginning with '/', method is a safe verb defaulting to GET, host overrides the default, query is query-string parameters, and body is a JSON request body rare on reads. This adds meaning beyond the bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('ANY endpoint by path'), and explicitly distinguishes itself from catalog-based tools by noting it covers endpoints 'missing from the catalog'. It also names sibling tools wb_write_raw and wb_delete_raw for mutation, making its read-only scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 ('Read ANY endpoint by path, including ones missing from the catalog') and when not to ('To change data use wb_write_raw, to delete use wb_delete_raw'). It also restricts to safe verbs (GET, HEAD, OPTIONS), giving clear selection criteria among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_get_salesARead-only
Get Wildberries sales and returns since a date (Statistics API, 1 req/min).
Args: date_from: RFC3339 date/time in MSK, e.g. "2026-06-01" or "2026-06-01T00:00:00". flag: 0 = rows changed since date_from (incremental); 1 = rows dated on date_from. Returns JSON: {"ok": true, "status", "data": [ sale rows ]} or error envelope. Each row includes saleID, srid, nmId, totalPrice, forPay, lastChangeDate.
| Name | Required | Description | Default |
|---|---|---|---|
| flag | No | ||
| date_from | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint and openWorldHint, so read-only status is covered. The description adds meaningful behavioral context: a rate limit of 1 req/min, the JSON success/error envelope shape, and the row-level fields returned. This goes beyond the annotations and helps set expectations for callers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: one sentence states the core purpose and API context, then Args and Returns are clearly sectioned. There is no filler; each line contributes useful information for invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, one required) and the presence of an output schema, the description covers everything an agent needs: purpose, parameter formats, flag behavior, rate limiting, and return envelope. No critical gap is evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries full responsibility for parameter meaning. It defines date_from with RFC3339/MSK format and concrete examples, and explains flag values 0 and 1 with their exact behavioral distinction. This is essential and well done.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get Wildberries sales and returns since a date.' This clearly distinguishes it from sibling tools like wb_get_new_orders or wb_get_stocks, even without comparing schemas. The purpose is immediately identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context — fetching sales and returns relative to a date — and explains the flag semantics for incremental vs dated retrieval. However, it does not explicitly state when to choose this tool over siblings such as wb_get_new_orders or wb_get_prices, nor does it mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_get_sectionARead-only
List all endpoints in one section.
Args: section: section name (see wb_list_sections), e.g. "statistics". Returns JSON list of {operation_id, method, path, safety, summary}.
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description's 'List all endpoints' is consistent with that. The description adds value by specifying the exact return format: 'JSON list of {operation_id, method, path, safety, summary}'. This goes beyond the annotation and provides concrete expectations. It does not mention auth or rate limits, but given the read-only annotation, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence main purpose, an Args block, and a Returns line. It front-loads the core functionality and then provides parameter guidance and output format without any redundant text. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema (indicated as present), the description covers the purpose, how to obtain the parameter, and the return structure. It does not explain the 'safety' field, but that is likely covered by the output schema. It also omits error handling details, which is acceptable for a read-only listing operation. Overall, it is adequate 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the 'section' parameter, so the description must compensate. It does so by explaining that the parameter is a section name, referencing wb_list_sections for valid values, and giving an example ('statistics'). This provides the necessary semantic context that the bare string type in the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'list' and a clear resource 'endpoints in one section', immediately distinguishing it from sibling tools like wb_list_sections (which lists sections) and wb_describe_method (which describes a single method). It also provides a concrete example of a section name, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly references wb_list_sections as the source for valid section names, which is a clear prerequisite and guides the user on how to obtain the parameter value. It does not explicitly mention alternative tools, but the context of the family makes it evident that this tool is for exploring a section's endpoints rather than a specific method. The guidance is implicit but sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_get_stocksARead-only
Get the current Wildberries stock snapshot (Statistics API, 1 req/min).
Stocks have no history — this is a point-in-time snapshot. Use an early date_from to get the full current set.
Args: date_from: RFC3339 date; default "2020-01-01" returns everything in stock now. Returns JSON: {"ok": true, "data": [ stock rows ]} with quantity, warehouseName, nmId.
| Name | Required | Description | Default |
|---|---|---|---|
| date_from | No | 2020-01-01 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint and openWorldHint, but the description adds valuable behavioral context beyond those: it explicitly states the rate limit (1 req/min), clarifies that stocks are a point-in-time snapshot with no history, and describes the return envelope. This is rich, non-contradictory detail that helps the agent set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line purpose, a note on snapshot semantics, then Args and Returns sections. It front-loads the core purpose and rate limit, and every sentence adds value—no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no required fields) and that an output schema exists, the description covers all essential operational aspects: purpose, rate limit, parameter semantics, and return format. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only declares a default value with zero description coverage, so the description fully compensates. It explains the parameter format (RFC3339 date), its default, and its effect ('returns everything in stock now'). This gives the agent clear, actionable meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the current Wildberries stock snapshot.' It clearly identifies the platform (Wildberries) and the data (stock). While it doesn't name sibling tools, the resource is unambiguous and the tool name aligns, so an agent can easily distinguish it from tools like wb_get_sales or wb_get_prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete usage hint: 'Use an early date_from to get the full current set.' This guides parameter selection effectively. However, it does not explicitly state when to use this tool over alternatives (e.g., avito_get_stocks or ozon_get_stocks), though the platform is implied by the name. The hint is useful but not a full when/when-not breakdown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_get_workflowARead-only
Return the full plan for one workflow: ordered steps (each naming a catalog operation_id and why), interpretation guidance, and common mistakes to avoid.
Args: name: workflow name (see {svc}_list_workflows).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include readOnlyHint=true, so the safety profile is covered. The description adds useful detail about the returned content, such as ordered steps and common mistakes, but does not disclose things like auth requirements, error behavior, or rate limits. This is acceptable for a simple read-only getter, but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two dense sentences: the first states what is returned, the second documents the argument. There is no filler or repetition, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required string parameter, an output schema, and a readOnly annotation, the description provides everything needed to invoke the tool: it explains the return contents and tells the agent where to get the workflow name. No additional context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a string 'name' with no description, so the 0% schema coverage means the description must compensate. It does so by explaining that 'name' is a workflow name and pointing to {svc}_list_workflows for valid values. This is sufficient for a single simple parameter, though no format or example is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Return the full plan for one workflow' and enumerates the contents (ordered steps, operation_id, why, interpretation guidance, mistakes). This clearly distinguishes it from sibling tools like wb_list_workflows, which list workflows rather than retrieve one plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the right usage context: use it when you need the full plan for a single workflow, not a list. The Args note 'see {svc}_list_workflows' tells the agent where to obtain a valid name. It could more explicitly contrast with alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_list_cabinetsARead-only
List configured cabinets for this marketplace and which one is active.
Returns JSON: {"active": str|null, "cabinets": [names], "fields_needed": [...]}. Secret values are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds valuable behavioral context: it returns JSON with a specific shape (active, cabinets, fields_needed) and explicitly states that secret values are never returned. This is meaningful beyond the annotations and helps an agent trust the tool with sensitive data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: what it lists, what it returns, and a security guarantee. The most important information (purpose) is front-loaded, and the JSON shape is compactly shown.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool, the description is nearly complete. It covers purpose, output shape, and the key security behavior. The only minor gap is that it doesn't explain what 'fields_needed' means or when it would be populated, but the output schema and the tool's simple nature make this a small omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to explain about inputs. The description instead clarifies the output shape, which is the relevant semantic content for a parameterless tool. Baseline 4 is appropriate for 0-param tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists configured cabinets for a marketplace and identifies which one is active. It distinguishes itself from sibling tools like wb_use_cabinet (which selects a cabinet) and wb_add_cabinet/remove_cabinet (which modify the set). The verb 'list' plus the resource 'cabinets' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is a read-only inspection tool for discovering available cabinets and the active one, which is clear context for when to use it. It doesn't explicitly name alternatives or state when not to use it, but the sibling set (wb_use_cabinet, wb_add_cabinet, wb_remove_cabinet) makes the distinction inferable. A small gap: no explicit statement like 'use wb_use_cabinet to switch the active cabinet.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_list_sectionsARead-only
List API sections and how many catalog endpoints each contains.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnlyHint=true and openWorldHint=false, so the safety profile is handled. The description adds the counting behavior and audited by the 'catalog endpoints' phrase, but provides little beyond what annotations and the tool name convey; it does say it returns a list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, and every phrase earns its place. It states what is listed and the added beneficial detail of 'how many catalog endpoints' in two clauses without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A zero-parameter read-only listing tool with an output schema. The description contains all the caller needs to know to select it, expect it to be non-mutating, and understand what it returns. The output schema preserves the return details from needing to be described here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and has 100% schema coverage, so parameter semantics are the baseline: the description does not need to explain parameters. Nothing is missing; no additional parameter usage context is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb, 'List', on a concrete resource, 'API sections', and adds precise output detail: 'how many catalog endpoints each contains.' This clearly differentiates it from siblings like wb_get_section (singular section retrieval) and wb_search_methods (searching for methods).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied rather than stated: use this tool when you need to enumerate available API sections and see endpoint counts. However, there is no explicit when-to-use guidance, no exclusions, and no mention of alternative tools like wb_get_section or wb_map.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_list_workflowsARead-only
List ready-made analytical workflows (recipes) for this marketplace.
Returns JSON: [{name, category, when_to_use}]. Use {svc}_get_workflow to fetch the full step-by-step plan for one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds value by specifying the return format (JSON array with objects containing name, category, when_to_use) and that it returns only ready-made recipes, which is useful context for agents deciding whether to use this or another tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three sentences that each carry weight: what it does, what it returns, and how to proceed to get details. It is front-loaded with the core purpose and immediately points to the sibling tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters (no schema complexity) and the presence of an output schema, the description is complete. It tells the agent what the output looks like (JSON with name, category, when_to_use) and directs them to wb_get_workflow for details, covering all necessary information for correct invocation and usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parametersanding schema coverage is 100% (n/a), the description clearly explains the return structure and the purpose. Even though there are no parameters to document, the description compensates by clarifying what the returned JSON contains, which is essential for the agent to use the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists ready-made analytical workflows (recipes) for the marketplace, with a specific verb ('List') and resource ('workflows'). It distinguishes itself from the sibling wb_get_workflow by noting that get_workflow fetches the full plan for one workflow, so the agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use {svc}_get_workflow to fetch the full step-by-step plan for one workflow, providing clear routing to the alternative. It does not mention when not to use this tool (e.g., when a specific workflow is needed), but the context is clear enough for a listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_mapARead-only
The big picture: business entities this API covers and the go-to methods for each. Call with no args to see the whole map ("you are here"); pass entity="reviews" (or stocks/prices/orders/…) to list every method of one entity. Use this before guessing — it orients you fast.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains what the tool returns cognitively (a map/orientation) and how to use it, which supplements the readOnlyHint annotation. It adds context about the entity parameter and 'you are here' positioning, so agents understand the tool is a discovery utility with no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the key idea, followed by concrete invocation guidance and a closing recommendation. Every sentence adds value and none are redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only map tool with one optional parameter and an output schema present, the description provides enough context for correct invocation. It explains the two valid invocation patterns and conveys when to use the tool before exploring other methods.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the only parameter has no description. The tool description compensates fully by explaining the default behavior ('Call with no args') and giving representative values like entity='reviews', plus indicating that other entity names map to the same pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific purpose: a capability map that lists business entities and the go-to methods for each. It also distinguishes itself from operational tools by describing the 'big picture' orientation function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: call with no args for the whole map, or pass an entity to list its methods, and 'use this before guessing.' It does not explicitly name alternatives or exclusion conditions, but the intent is obvious enough for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_remove_cabinetADestructive
Delete a stored cabinet. If it was active, another becomes active.
Args: name: the cabinet to remove.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already flag destructiveHint=true, but the description adds a valuable behavioral detail: 'If it was active, another becomes active.' This discloses a side effect beyond the structured annotations. It does not mention error behavior or whether removal is reversible, but the key destructive behavior is addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally short: a purpose sentence, a relevant behavioral sentence, and a simple parameter mapping. There is no filler or redundant material, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with an output schema and destructiveHint annotation, the description conveys the core action and the most important side effect. The notion of 'another becomes active' is left a bit vague, but it is sufficient for an agent to understand and invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description's 'name: the cabinet to remove' is the only semantic explanation for the single parameter. It clarifies that the name identifies the cabinet being deleted, though it is still fairly close to a natural reading of the parameter name itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening phrase 'Delete a stored cabinet' is a clear verb+resource statement that distinguishes this tool from listing, adding, or using cabinets. It does not explicitly reference a sibling tool, but the operation and object are unambiguous enough for an agent to know what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not state when to use this tool versus alternatives like wb_add_cabinet or wb_use_cabinet. It does not explain circumstances that would make deletion inappropriate, nor does it point to any other tool for related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_search_methodsARead-only
Search the endpoint catalog by keyword (works in Russian and English).
Args: query: free text, e.g. "остатки", "stocks", "update price". limit: max results (1-50). Returns JSON list of matching endpoints (best first).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the safe read-only nature is covered. The description adds useful behavioral context beyond that: keyword search works in Russian and English, results are returned as a JSON list, and are ordered best first. This is meaningful additional information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the primary purpose, and clearly separates arguments from return behavior. Every sentence contributes either purpose, parameter semantics, or result expectations without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter search tool with an output schema already present, the description is complete: it covers what the tool does, what inputs look like, the return type, ordering, and multilingual behavior. No essential calling details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for parameter understanding. It explains 'query' as free text with concrete examples and 'limit' as max results with a 1-50 range)Skip the schema only provides type and default. This fully compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Search the endpoint catalog by keyword.' This clearly differentiates the tool from sibling catalog-related tools like wb_list_sections, wb_describe_method, and wb_map.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's usage context is clear: use it when you need to find endpoints by keyword. The description even shows example queries like 'остатки' and 'stocks'. It does not explicitly name alternative tools or state when not to use it, but the search-specific framing provides sufficient context without being misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_set_keyAIdempotent
Change / rotate the API key from chat (e.g. the old one expired or leaked).
⚠️ The key goes into the chat transcript — requires i_understand_key_goes_to_chat=true. The safe, terminal-free alternative is the installer, where the key never enters chat. Use a scoped key and rotate it in the seller cabinet if it was exposed.
Args: credentials: dict with the required fields ({fields}). cabinet: which cabinet to update. Default: the active one (so "my key expired" just works). If there is none, the cabinet is named from the marketplace's shop name, else "main". i_understand_key_goes_to_chat: must be true to proceed. On success the key is validated against the marketplace and the shop name is reported. Saved locally (chmod 600), never echoed back.
| Name | Required | Description | Default |
|---|---|---|---|
| cabinet | No | ||
| credentials | Yes | ||
| i_understand_key_goes_to_chat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors beyond annotations: the key enters the chat transcript, requires an explicit confirmation flag, is stored locally with chmod 600, never echoed back, and is validated against the marketplace. These details add critical context not present in the annotations, and there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: it leads with the purpose, immediately flags the security warning, lists parameters clearly, and concludes with post-success behavior. No superfluous details; the structure aids quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is security-sensitive and complex, yet the description covers the full lifecycle: purpose, prerequisites, parameter details, safety precautions, default behavior, and success outcomes. Even though an output schema exists, the description adds the shop name reporting detail, making it complete for safe and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description fully compensates by explaining all three parameters: credentials (required fields in a dict), cabinet (default behavior and naming fallback), and i_understand_key_goes_to_chat (must be true). This provides complete meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Change / rotate') and a clear resource ('the API key'), with an explicit use case ('old one expired or leaked'). It distinguishes from sibling set_key tools by specifying the platform (wb) and the chat context, making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance (key expired/leaked) and contrasts with the safe installer alternative. It also provides best-practice guidance (use a scoped key, rotate in seller cabinet) and explains the default cabinet selection logic, so an agent knows exactly when and how to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_set_priceA
Set price and discount for ONE product (Discounts-Prices API). WRITE.
Requires confirm_write=true (this changes your live price). A new price 3x below the old one lands the product in WB price quarantine.
Args: nm_id: product nmID. price: new base price in rubles (integer). discount: discount percent (0-99). confirm_write: must be true to actually send the change. Returns JSON: {"ok": true, "data": {"id": uploadID}} — poll wb_prices_history_tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| nm_id | Yes | ||
| price | Yes | ||
| discount | No | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=false, openWorldHint=true), the description adds important behavioral detail: confirm_write gates the live update, prices 3x below the old one trigger WB quarantine, and the endpoint returns an upload ID to poll via wb_prices_history_tasks. This meaningfully enriches the agent's understanding of side effects and follow-up.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well structured: a one-line purpose, a crucial warning, an args list, and the return contract. No sentence is wasted; the quarantine caveat and polling instruction each carry operational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation with side effects, the description covers the required confirmation flag, a domain-specific risk (quarantine), all parameter semantics, and the asynchronous response pattern. An agent has everything needed to invoke it correctly and know what happens next.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates fully: nm_id is defined as the product nmID, price as new base price in rubles (integer), discount as percent 0-99, and confirm_write as the flag that must be true. Units, ranges, and meaning are all supplied, exceeding the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names a precise action—'Set price and discount for ONE product'—and scopes it to the Discounts-Prices API. The explicit 'WRITE' marker plus 'live price' makes the tool's mutating nature unmistakable, distinguishing it from read-only siblings like wb_get_prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description clearly states the mandatory precondition: 'Requires confirm_write=true' and 'must be true to actually send the change.' It gives a concrete consequence (price quarantine) but does not explicitly name an alternative sibling or state when not to use it, so it stops short of full when-vs-alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_use_cabinetAIdempotent
Switch the active cabinet. Subsequent API calls use its credentials.
Args: name: the cabinet to activate (see wb_list_cabinets).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and readOnlyHint=false. The description adds the behavioral consequence that subsequent calls use the new cabinet's credentials, which is useful. However, it doesn't mention error handling (e.g., invalid cabinet name) or any other side effects. It provides moderate extra context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences and a parameter explanation. It front-loads the purpose and effect, with no fluff or repetition. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present), the description covers the core purpose and the prerequisite for finding a valid name. It could mention behavior on invalid input, but that is a minor gap. Overall, it is complete enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the name parameter, so the description must compensate. It explains that 'name' is the cabinet to activate and directs the user to wb_list_cabinets for valid values. This adds meaning and provides a reference for acquiring the parameter, going beyond the bare schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (switch) and the resource (active cabinet), and explains the effect (subsequent API calls use its credentials). This distinguishes it from sibling tools like wb_list_cabinets or wb_add_cabinet, which have different verbs and purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It points to wb_list_cabinets as the source for valid cabinet names, implying you should list before switching. While it doesn't explicitly contrast with alternative actions (add, remove, set_key), the context makes it clear this is for switching between existing cabinets. The guidance is present but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wb_write_methodA
Execute one WRITE endpoint from the catalog: create or update data.
Target API: https://dev.wildberries.ru/en/openapi/api-information.
Requires confirm_write=true; nothing is sent without it. Irreversible operations live in wb_delete_method, reads in wb_call_method.
Args: operation_id: id from the catalog (see wb_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses the critical requirement that confirm_write must be true (nothing is sent without it) and describes the return format ({"ok": true, "status", "data"} or error envelope). This adds meaningful behavior beyond the annotations, which only indicate not read-only and not destructive. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: purpose front-loaded, sibling differentiation immediately after, then a bulleted arg list, then return format. No fluff; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic catalog-based write method, the description covers essentials: target API, confirm flag, parameter semantics, return format, and how to find operation_id. The only minor gap is lack of examples or deeper format guidance for path_values/body, but given the catalog context and output schema presence, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden. It explains each parameter's purpose: operation_id (catalog id), path_values (for placeholders), query, body, and confirm_write (must be true). It clarifies the confirm_write requirement despite the schema's default false, which is valuable. Slightly light on detailed formats but adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it executes a WRITE endpoint for create/update operations, and explicitly differentiates from delete (wb_delete_method) and read (wb_call_method). The verb+resource is specific and the sibling distinction is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says irreversible operations belong in wb_delete_method and reads in wb_call_method, and points to wb_search_methods for finding operation_id. This provides clear 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.
wb_write_rawA
Create or update data at ANY path, including paths not in the catalog.
Target API: https://dev.wildberries.ru/en/openapi/api-information.
POST, PUT and PATCH only; requires confirm_write=true.
Args: method: POST, PUT or PATCH. path: full path beginning with '/'. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the write nature is known. The description adds the confirm_write=true requirement and the return envelope, which are valuable. It does not fully disclose side effects (e.g., overwrite behavior), but 'Create or update' covers the basics. With annotations present, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: purpose, API reference, method constraint, then a clear Args list. The parameter list is necessary given schema underdescription, and there is no fluff. Information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all parameters, method constraints, confirm_write requirement, and return format. Since an output schema exists, return details are handled. Authentication is likely managed elsewhere (e.g., via wb_check_auth). No missing information that would prevent an agent from calling it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has zero description coverage (coverage 0%), so this description is the only source of parameter meaning. Each parameter is explained with constraints: method must be POST/PUT/PATCH, path starts with '/', host override, query, body, and confirm_write must be true. This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Create or update data at ANY path'. Clearly distinguishes from siblings like wb_write_method by noting 'including paths not in the catalog' and restricting to POST, PUT, PATCH. Purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context that this is for arbitrary writes, especially to uncatalogued paths, which implies when to use. It does not explicitly name alternatives or when-not conditions, but the 'not in the catalog' phrase effectively differentiates from catalog-based tools. Slight improvement would be explicit routing to wb_write_method.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_add_cabinetAIdempotent
Add or update a cabinet (a named set of API credentials), from chat.
⚠️ This puts the key into the chat transcript — requires i_understand_key_goes_to_chat=true. The terminal-free safe alternative is the installer (install.py / double-click), where the key never enters chat.
Args: credentials: dict with the required fields for this service ({fields}). For Ozon: {{"client_id": "...", "api_key": "..."}}; for WB: {{"token": "..."}}. name: optional label. If omitted, the cabinet is named after the real shop name fetched from the marketplace (falls back to "main"). i_understand_key_goes_to_chat: must be true to proceed. Saved to ~/.marketplace-mcp/cabinets.json (local, chmod 600), never echoed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| credentials | Yes | ||
| i_understand_key_goes_to_chat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial value beyond the annotations: it warns that the key enters the chat transcript, states the save location (~/.marketplace-mcp/cabinets.json) with chmod 600, and notes that the key is never echoed. This is exactly the kind of behavioral context the agent needs for a credential-handling write operation, and it does not contradict the annotations (readOnlyHint=false, idempotentHint=true).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: the critical warning is front-loaded, arguments are clearly listed, and there is no unnecessary fluff. It is a bit longer than necessary due to the placeholder and examples, but overall it is efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits essential details for correct use: it does not specify the required credential fields for Yandex Market (the '{fields}' placeholder is never filled), nor does it explicitly state which marketplace this tool serves. Given that this is a write operation storing sensitive data, an agent would not be able to construct valid credentials without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain all parameters. It does explain credentials (dict), name (optional with fallback), and the boolean flag. However, the credentials parameter uses a placeholder '{fields}' and only provides examples for Ozon and WB, not for the actual Yandex Market service this tool targets. This is a significant omission that prevents correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds or updates a cabinet (a named set of API credentials) from chat. The verb-resource pair is specific, but it fails to differentiate from sibling add_cabinet tools for other marketplaces (e.g., wb_add_cabinet, ozon_add_cabinet) — it doesn't mention Yandex Market and even gives examples for Ozon and WB, which could mislead the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit alternative (the installer) and a usage condition (requires i_understand_key_goes_to_chat=true), which helps the agent decide when to use this tool. However, it does not mention when to use this specific tool versus the other marketplace-specific add_cabinet tools, so the guidance is partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_call_methodARead-only
Execute one READ endpoint from the catalog by operation_id.
Target API: https://yandex.ru/dev/market/partner-api/doc/ru/.
Reads only: nothing here changes data, so it runs without confirmation. To change data use ym_write_method, to delete use ym_delete_method.
Args: operation_id: id from the catalog (see ym_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body (a few read endpoints take one). Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, and the description reinforces the read-only safety profile ('nothing here changes data, so it runs without confirmation'). It adds useful behavioral context: the return envelope shape ('{"ok": true, "status", "data"}') and the error envelope mention. It doesn't detail rate limits or auth, but the read-only safety is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core action and target are in the first sentence, followed by the safety note, sibling routing, and parameter explanations. Every sentence earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (generic catalog-based executor) and the presence of an output schema, the description covers the essential context: what it executes, how to find operation_id, what the parameters mean, and the return envelope. It doesn't explain the error envelope format in detail, but the output schema and the pointer to ym_search_methods cover most needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains operation_id as 'id from the catalog (see ym_search_methods)', path_values as 'values for {placeholders} in the path', query as 'query-string parameters', and body as 'JSON request body (a few read endpoints take one)'. This adds meaning beyond the bare schema, though it could be more explicit about how path_values map to placeholders.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Execute'), a resource ('one READ endpoint from the catalog'), and the key selector ('by operation_id'). It also names the target API and explicitly contrasts with ym_write_method and ym_delete_method, making it easy to distinguish from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: for read-only endpoints, and explicitly says to use ym_write_method for changes and ym_delete_method for deletion. It also points to ym_search_methods for finding operation_id, giving clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_check_authARead-only
Check whether the required credentials are present in the environment.
Does NOT reveal secret values — only reports which variables are set. Returns JSON: {"ready": bool, "missing": [str], "required": [str]}.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to restate safety. The description adds valuable behavioral context: it does NOT reveal secret values, and it returns a specific JSON structure with ready/missing/required fields. This goes beyond the schema and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what it does, what it doesn't do, and the exact return shape. Front-loaded with the core purpose, then the critical caveat, then the JSON contract. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only check tool, the description is complete. It states the purpose, the safety boundary (no secret revelation), and the exact return format. An agent has everything needed to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the schema is trivially complete. The description adds no parameter info because none is needed. Baseline 4 for 0 params is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks whether required credentials are present in the environment, with a specific verb and resource. It also explicitly distinguishes itself from sibling auth-check tools by noting it does NOT reveal secret values, which is a key differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: before operations requiring credentials, to verify readiness. It doesn't explicitly name alternatives or exclusions, but the context of sibling tools (e.g., ym_set_price, ym_get_campaigns) makes the use case clear. A clear 'use this when you need to verify auth before calling other YM tools' would push it to 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_delete_methodADestructive
Execute one DESTRUCTIVE endpoint: deletes or irreversibly changes data.
Target API: https://yandex.ru/dev/market/partner-api/doc/ru/.
Both confirm_write=true and i_understand_this_modifies_data=true are required; nothing is sent without both.
Args: operation_id: id from the catalog (see ym_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: must be true. i_understand_this_modifies_data: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes | ||
| confirm_write | No | ||
| i_understand_this_modifies_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description reinforces this by stating the action deletes or irreversibly changes data. It adds valuable context beyond annotations: both confirm_write=true and i_understand_this_modifies_data=true are required, and 'nothing is sent without both,' which is a strong safety behavior not visible in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the most important fact (DESTRUCTIVE), followed by the target API, safety requirements, arguments, and return format. Every sentence earns its place, and the Args list is compact and readable without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic destructive catalog method with six parameters and no schema descriptions, the description is nearly complete: it names the target API docs, explains all parameters, gives the required confirmation flags, and states the return envelope. It could slightly expand on optionality of path_values/query/body and prerequisites like authentication, but these are minor gaps given the output schema and existing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the parameter documentation in the description carries the full burden. It explains each of the six parameters: operation_id is a catalog id from ym_search_methods, path_values fill path placeholders, query is query-string parameters, body is a JSON body, and both boolean flags must be true. This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific action: 'Execute one DESTRUCTIVE endpoint: deletes or irreversibly changes data.' It conveys the scope (a single catalog endpoint from the Yandex Market Partner API) and the destructive nature. It does not explicitly name sibling tools like ym_call_method or ym_delete_raw to differentiate, but the catalog-based operation_id makes the distinction reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: for a destructive endpoint whose id was obtained via ym_search_methods. However, it does not explicitly state when not to use it or contrast it with alternatives such as ym_call_method (non-destructive) or ym_delete_raw (raw endpoint).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_delete_rawADestructive
Delete data at ANY path, including paths not in the catalog.
Target API: https://yandex.ru/dev/market/partner-api/doc/ru/.
DELETE only. Both confirm_write=true and i_understand_this_modifies_data=true are required.
Args: path: full path beginning with '/'. method: DELETE. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write: must be true. i_understand_this_modifies_data: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | No | DELETE | |
| confirm_write | No | ||
| i_understand_this_modifies_data | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this destructiveHint=true and readOnlyHint=false; the description adds the confirmation-flag requirement and the open-world scope, and states the success/error return envelope. It could add irreversibility side-effect warnings, but it meaningfully supplements the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The destructive warning is front-loaded, followed by a compact Args list that maps one-to-one to the schema. There is minimal redundancy and no unrelated content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive raw-path nature and sparse schema, the description covers what an agent needs: path format, method, all arguments, mandatory safety flags, and the response envelope. No critical calling requirement is left undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description documents all 7 parameters with useful specifics (path syntax, method constraint, host default, confirm flags). Every parameter receives meaning beyond its raw name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names the operation ('Delete data at ANY path, including paths not in the catalog'), with a specific verb, resource, and scope. This clearly distinguishes it from catalog-scoped delete_method siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It communicates the key usage condition: use for arbitrary paths, including unlisted ones, and only with DELETE plus both confirmation flags. It does not explicitly name a sibling alternative or provide when-not-to-use guidance, but the context is otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_describe_methodARead-only
Return the full catalog record for one endpoint: method, host, path, scope, safety level, pagination style, rate limit, params and doc URL.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and openWorldHint=false, so the description does not need to restate the read-only nature. It adds useful context by listing what the catalog record includes (safety level, pagination style, rate limit), but does not disclose additional behavioral traits like failure modes or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight, front-loaded sentence with no filler. The enumerated fields are directly useful to an agent deciding whether this tool returns what it needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup tool with an output schema present, the description is nearly sufficient. The only notable gap is the operation_id sourcing and format, which is not explained in either the schema or the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description carries the full burden for explaining operation_id. It only indirectly implies that operation_id identifies the endpoint ('for one endpoint'), but gives no guidance on its format, where to obtain it, or how it relates to the search/map tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and resource ('full catalog record for one endpoint'), then enumerates exactly what the record contains. This clearly distinguishes it from sibling operations like call_method or search_methods, which execute or discover endpoints rather than describe them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this when you need metadata about a single known endpoint. However, it does not explicitly say when not to use it or point to alternatives such as ym_search_methods or ym_map for discovering operation_id values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_fetch_allARead-only
Auto-paginate a read endpoint and return every row in one response.
Handles offset, last_id, cursor (Ozon v4/v5), page and WB lastChangeDate styles. The array path is taken from the catalog automatically.
Args: operation_id: a read endpoint from the catalog. query / body / path_values: base parameters (cursor fields are managed). items_path: override the array path (default: the endpoint's own). limit: page size to request. max_items: hard cap to protect context (default 10000). Returns JSON: {"ok", "items", "total_fetched", "pages_fetched", "truncated"}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| limit | No | ||
| query | No | ||
| max_items | No | ||
| items_path | No | ||
| path_values | No | ||
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds substantial behavioral detail: it handles multiple pagination styles, manages cursor fields, applies a max_items cap to protect context, and returns a structured summary with truncation status. This goes well beyond what annotations reveal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: the main behavior is front-loaded, pagination styles are summarized compactly, and the Args section is a clean scannable list. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no enums and an output schema present, the description is complete: what it does, how pagination is handled, how parameters interact, the safety cap, and the return shape are all covered. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully compensates by explaining every parameter: operation_id is a read endpoint from the catalog, query/body/path_values are base parameters with cursor fields managed, items_path overrides the array path, limit controls page size, and max_items is a hard cap. This adds real meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Auto-paginate a read endpoint and return every row in one response.' It clearly distinguishes this from single-call tools like ym_call_method by emphasizing pagination and bulk return.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the use case: any read endpoint from the catalog where all rows are needed, with cursor fields automatically managed. It does not name alternatives or exclusions explicitly, but the context is strong enough that an agent can infer when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_get_campaignsARead-only
List the seller's shops (кампании) with their campaignId and businessId.
Call this first: nearly every other Yandex Market method needs a campaignId (магазин) or businessId (кабинет продавца). Both are in the response: campaigns[].id and campaigns[].business.id.
Args: page_token: pageToken from a previous page (empty for the first page). limit: page size (<=100). Returns JSON: {"ok": true, "data": {"campaigns": [...], "paging": {...}}}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| page_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds behavioral context by explaining that the response contains both campaigns[].id and campaigns[].business.id, which are needed downstream. It also documents the return envelope shape. It doesn't mention pagination behavior beyond the page_token parameter, but the annotations plus the response format description provide solid transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose and the critical 'call this first' guidance appear in the first two sentences. The parameter explanations and return format are concise and each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two optional parameters and an output schema, the description is nearly complete. It covers the purpose, the critical dependency context, parameter semantics, and return shape. The only minor gap is that it doesn't explicitly describe pagination looping behavior, but the paging object in the return format and the page_token parameter make that inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains page_token as 'pageToken from a previous page (empty for the first page)' and limit as 'page size (<=100)', adding meaning beyond the bare schema properties. This is sufficient for an agent to use both parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('the seller's shops (кампании)') and explicitly identifies the key fields returned (campaignId and businessId). It also distinguishes itself from other Yandex Market methods by noting it should be called first because nearly every other method needs these IDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: 'Call this first: nearly every other Yandex Market method needs a campaignId or businessId.' This clearly tells the agent when to use this tool and why it precedes other calls, effectively routing around alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_get_offersARead-only
List the seller's offers (товары) with their Market card mapping (POST /v2/businesses/{businessId}/offer-mappings).
Args: business_id: cabinet id (campaigns[].business.id). offer_ids: comma-separated offerId (SKU) filter; empty = all. page_token: pageToken from a previous page. limit: page size (<=200). Returns JSON: {"ok": true, "data": {"result": {"offerMappings": [...], "paging": {...}}}}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offer_ids | No | ||
| page_token | No | ||
| business_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the endpoint and return shape, which is useful, and the readOnlyHint is consistent with the read-only nature of listing offers. It does not document auth requirements, rate limits, or potential errors, but the annotations already cover the read-only aspect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by parameter details and response shape. It avoids boilerplate while still covering the essential invocation details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description includes the endpoint, all parameter meanings, and the return envelope, making it self-sufficient for a basic call. It lacks error semantics and pagination iteration hints, but for a read-only listing tool the provided context is strong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema parameter descriptions appear absent (0% coverage), but the description compensates by explaining every argument: business_id, offer_ids, page_token, and limit. It adds real meaning with types, defaults, and the pagination token semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists the seller's offers with their Market card mapping, using a specific verb and object. It distinguishes itself from order/stock tools by mentioning 'offerMappings', but it doesn't explicitly contrast it with sibling tools like ym_get_orders or ym_get_stocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to prefer this tool over alternatives such as ym_get_orders or ym_get_stocks. The endpoint and args are specified, but there is no decision-making context for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_get_ordersARead-only
List orders of one shop (GET /v2/campaigns/{campaignId}/orders).
Args: campaign_id: shop id from ym_get_campaigns. status: filter, e.g. PROCESSING | DELIVERY | PICKUP | DELIVERED | CANCELLED | UNPAID (comma-separated allowed). Empty = all. from_date: order creation date lower bound, DD-MM-YYYY (Yandex format). to_date: upper bound, DD-MM-YYYY. page_token: pageToken from a previous page. limit: page size (<=50). Returns JSON: {"ok": true, "data": {"orders": [...], "paging": {...}}}. For every order across pages use ym_fetch_all with ym_get_orders.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | ||
| to_date | No | ||
| from_date | No | ||
| page_token | No | ||
| campaign_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly and openWorld, so the safety profile is covered. The description adds meaningful behavioral detail: pagination via page_token, page size limit <=50, date formats, status filter options, and the JSON response envelope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a one-line purpose, an Args list, a Returns line, and a pagination hint. Every sentence adds useful information; nothing is redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with an output schema, this is complete. It covers parameter detail, response shape, pagination, and cross-tool relationships to ym_get_campaigns and ym_fetch_all, giving an agent everything needed to call and iterate correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries full parameter documentation. It explains every parameter: campaign_id source, status values and comma-separation, date format for from_date/to_date, page_token meaning, and limit maximum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List orders of one shop' with the exact GET endpoint. It clearly scopes to a single campaign/shop via campaign_id and is easy to distinguish from sibling tools like ym_get_offers or ym_get_stocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides helpful context such as campaign_id coming from ym_get_campaigns and explicitly routes pagination-heavy workflows to ym_fetch_all. However, it does not explicitly state when to choose this tool over alternatives like ym_get_orders vs ym_get_offers, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_get_pricesARead-only
Base prices set for all shops of the cabinet (POST /v2/businesses/{businessId}/offer-prices).
Args: business_id: cabinet id. offer_ids: comma-separated offerId filter; empty = all. page_token: pageToken from a previous page. limit: page size (<=200). Returns JSON with result.offers[].price {value, currencyId, discountBase, updatedAt}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offer_ids | No | ||
| page_token | No | ||
| business_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds the cabinet-wide scope, the endpoint, pagination parameters, and the exact price fields returned. This is useful behavioral context beyond the structured metadata. No contradiction with the readOnlyHint is present; the mention of POST is an HTTP detail, not a mutation claim.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and logically structured: scope, endpoint, args, and return format. There is no filler, and the key return path is front-loaded. The noun-phrase opening is slightly awkward but does not hurt clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and every parameter explained, an agent has enough information to invoke this read-only tool correctly. The only missing context is explicit when-to-use guidance and any authentication caveats, but those are minor for a read getter with readOnlyHint and openWorldHint already set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries full responsibility for parameter meaning. It explains business_id as cabinet id, offer_ids as a comma-separated filter with empty meaning all, page_token as a continuation token, and limit as page size capped at 200. This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('base prices for all shops of the cabinet') and the return shape ('result.offers[].price'), making it clear this is a read operation. The tool name ym_get_prices reinforces the purpose and distinguishes it from the sibling ym_set_price. It would be cleaner with an explicit 'Get' verb, but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like ym_set_price or other getters. The readOnlyHint and return structure imply viewing, but the description never states exclusions, prerequisites, or the preferred context. An agent must infer usage from the name and arguments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_get_rawARead-only
Read ANY endpoint by path, including ones missing from the catalog.
Target API: https://yandex.ru/dev/market/partner-api/doc/ru/.
Safe verbs only (GET, HEAD, OPTIONS). To change data use ym_write_raw, to delete use ym_delete_raw.
Args: path: full path beginning with '/', e.g. "/v2/regions". method: safe verb, GET by default. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body (rare on reads; some APIs want one). Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | No | GET |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is known. The description adds value beyond that: it restricts verbs to GET, HEAD, OPTIONS, explains the return envelope ({"ok": true, "status", "data"} or error), and notes that body is rare but sometimes needed. It does not mention auth or rate limits, but those are likely handled by the service layer. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-sentence purpose, a target API reference, safety constraints and sibling pointers, then a clean args list with defaults and examples. It is a bit long but every part earns its place. The most important scoping information (read any endpoint) is front-loaded. No redundant repetition of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic raw-read tool, this description is complete. It covers purpose, usage boundaries, all parameter semantics, return format, and error envelope. It even notes the rare body case. With annotations covering read-only and open-world behavior, and an output schema present, nothing essential is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully explain parameters. It does: path (full path starting with '/', example), method (safe verb, default GET), host (override, default service host), query (query-string params), body (JSON body, rare on reads). All five parameters are given clear semantics with examples, fully compensating for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (ANY endpoint by path), explicitly covering endpoints missing from the catalog. It clearly distinguishes from ym_write_raw and ym_delete_raw, which are mentioned as alternatives for data changes. This makes its purpose unmistakable and differentiates it from the many sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool (read-only raw access to any endpoint) and when not to (use ym_write_raw for changes, ym_delete_raw for deletions). It also implies use for endpoints not covered by catalog-specific tools, and provides the target API documentation link. This is strong guidance on selection among alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_get_sectionARead-only
List all endpoints in one section.
Args: section: section name (see ym_list_sections), e.g. "statistics". Returns JSON list of {operation_id, method, path, safety, summary}.
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds a specific return format ('JSON list of {operation_id, method, path, safety, summary}'), which goes beyond the annotation. It also doesn't contradict any annotation and clarifies the safety field in the output. A strong addition for an agent to know exactly what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a single purpose sentence, an arg explanation with example, and the return format. It's front-loaded with the most critical information, and every sentence adds value. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with one parameter, the description covers the essential aspects: purpose, parameter usage, and output format. It does not mention potential errors or pagination, but these are not critical for a listing operation. The inclusion of the output schema reference (though not shown) is handled by describing the return JSON structure, which is sufficient for an agent to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only lists 'section' as a string with no description, and schema coverage is 0%. The description compensates by defining what 'section' means (a section name), directing to ym_list_sections for valid values, and giving an example. This is valuable context that the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('List') and resource ('all endpoints in one section'), making the tool's purpose immediately understandable. It also aligns with the readOnlyHint annotation and differentiates from sibling tools like ym_get_campaigns and ym_list_sections by specifying the output scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs how to get a valid 'section' by referencing ym_list_sections and provides a concrete example ('statistics'). It does not explicitly mention when not to use this tool, but the context is clear that it's for browsing endpoint definitions, not for executing calls. This is sufficient guidance for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_get_stocksARead-only
Stock per offer per warehouse for one shop, with optional turnover (POST /v2/campaigns/{campaignId}/offers/stocks).
Args: campaign_id: shop id. offer_ids: comma-separated offerId filter; empty = all. with_turnover: also return turnover (оборачиваемость) per offer. page_token: pageToken from a previous page. limit: page size (<=200). Returns JSON: {"ok": true, "data": {"result": {"warehouses": [{"warehouseId", "offers": [...]}]}}}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offer_ids | No | ||
| page_token | No | ||
| campaign_id | Yes | ||
| with_turnover | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true and openWorldHint=trueikuha. The description adds useful behavioral context: it is a POST endpoint that returns warehouse-level stock and supports pagination via page_tokenasia, and optionally includes turnover. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four compact lines cover purpose, endpoint, every parameter, and return shape. No filler or redundancy; the information is dense and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to detail return fields. It explains the endpoint, all parameters, and the high-level data shape. Missing only minor operational details like rate limits or auth requirements, but what is present is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden of explaining parameters. It covers all five: campaign_id (shop id), offer_ids (comma-separated filter, empty=all), with_turnover (per-offer turnover), page_token (pagination), and limit (page size, <=200). This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific, actionable purpose: 'Stock per offer per warehouse for one shop, with optional turnover,' reinforced by the explicit endpoint. This clearly distinguishes it from sibling price/order/offer tools even without reading the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains scope (per-shop stocks) and parameters, but it does not explicitly say when to choose this over related tools like ym_get_offers or ym_get_prices, nor does it state exclusions like draft/archived campaigns or authorization prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_get_workflowARead-only
Return the full plan for one workflow: ordered steps (each naming a catalog operation_id and why), interpretation guidance, and common mistakes to avoid.
Args: name: workflow name (see {svc}_list_workflows).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description's 'Return' wording is consistent with that read-only behavior; there is no contradiction. The description adds useful content-level detail about what the returned plan contains, but it does not disclose additional behavioral context such as authentication requirements, errors, or rate limits. Since annotations carry the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two purposeful sentences plus a one-line args block. The main purpose is front-loaded, and every clause contributes information without restating schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a single-parameter, read-only retrieval tool with an output schema available, so the description does not need to explain return values in depth. It covers the tool's purpose, the nature of the returned plan, and how to source the parameter value. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides only 'name' with a type and no description, so 0% schema coverage leaves the parameter semantically empty. The description compensates by explaining that name is a workflow name and points to '{svc}_list_workflows' for valid values. For a single parameter, this is meaningful and sufficient guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Return the full plan for one workflow' – a specific verb, resource, and scope – then details the plan's contents: ordered steps, each naming a catalog operation_id and why, plus interpretation guidance and common mistakes. This clearly distinguishes it from listing workflows or fetching workflow data, even among many sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is implicit in the parameter line: 'workflow name (see {svc}_list_workflows)', which suggests consulting list_workflows first for valid names. There is no explicit statement of when to choose this tool over alternatives or when not to use it, so the guidance is present but minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_list_cabinetsARead-only
List configured cabinets for this marketplace and which one is active.
Returns JSON: {"active": str|null, "cabinets": [names], "fields_needed": [...]}. Secret values are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description consistently describes a read-only listing. It goes beyond the annotations by disclosing the exact return shape ('active', 'cabinets', 'fields_needed') and a security guarantee that secret values are never returned, which adds meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences: the first front-loads the action and scope, and the second provides the return format and an important secrecy guarantee. Every word earns its place; there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only listing tool with an output schema and readOnlyHint annotation, the description is complete. It names the resource, clarifies what the response contains, and warns about secret values, which is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters, so the input schema fully covers parameter semantics. Baseline for zero parameters is 4; the description reinforces what data will be returned but does not need to elaborate on parameters. No gap exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List configured cabinets for this marketplace and which one is active.' It clearly identifies the operation (list), the object (cabinets), and a distinguishing extra (active status), making it easy to separate from sibling tools like ym_add_cabinet or ym_use_cabinet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use it when you need to see configured cabinets and the active one for this marketplace. However, it does not explicitly state when not to use it or name alternatives such as ym_use_cabinet or wb_list_cabinets, so usage guidance is mostly implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_list_sectionsARead-only
List API sections and how many catalog endpoints each contains.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a read-only operation, and the description adds useful detail about the return scope: sections plus endpoint counts. It does not mention auth, network effects, or rate-limit behavior, but the annotation covers the safety profile adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence fully conveys the tool's action and result shape with no wasted words. The core action 'List' is front-loaded, followed by the object and the count detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only listing tool with an output schema present, the description is complete: it states the action, the resource, and the distinguishing output measurement. An agent has enough information to invoke the tool without further clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema covers all of them trivially, so the description carries no parameter-documentation burden. The baseline for a zero-parameter tool is 4, and nothing here reduces that score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List API sections' and adds the detail 'how many catalog endpoints each contains,' which clarifies what the result includes. It distinguishes the tool from lookup-style siblings like ym_get_section and ym_describe_method, though it does not explicitly name any alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool instead of related tools such as ym_map, ym_search_methods, or platform-specific list_sections variants. No exclusions, prerequisites, or routing hints are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_list_workflowsARead-only
List ready-made analytical workflows (recipes) for this marketplace.
Returns JSON: [{name, category, when_to_use}]. Use {svc}_get_workflow to fetch the full step-by-step plan for one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already signals a safe read operation. The description adds the return format (JSON array of objects with name, category, and when_to_use), which is useful behavioral information beyond the annotation. No hidden side effects or special constraints are mentioned, but none appear to exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the core purpose, the marketplace scope, the output format, and the pointer to the follow-up tool. No filler, no redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with an output schema, the description covers everything an agent needs: what it lists, what the entries look like, and how to proceed when more detail is needed. The companion get_workflow tool is also referenced, making the API surface navigable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters Secret, so there is no parameter documentation burden. The empty schema is consistent with the description, and the return fields are described enough to make the output meaningful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb-object structure ('List ready-made analytical workflows') and scopes it precisely to 'this marketplace', differentiating it from tools like wb_list_workflows. It also distinguishes itself from the related get_workflow operation by positioning the latter as the fetch-full-details counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to use {svc}_get_workflow when a full step-by-step plan is needed, which creates useful routing guidance. It does not explicitly state 'use this when you only need an overview' or list other alternative tools, but the contrast with get_workflow is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_mapARead-only
The big picture: business entities this API covers and the go-to methods for each. Call with no args to see the whole map ("you are here"); pass entity="reviews" (or stocks/prices/orders/…) to list every method of one entity. Use this before guessing — it orients you fast.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already signals safety; the description adds behavioral detail about the no-args vs entity-argument branching and the 'you are here' orientation value. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, information-dense sentences. The purpose is front-loaded, followed immediately by usage examples and a clear directive. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only map with one optional parameter and an output schema, the description covers all necessary invocation context: what it does, when to use, and how arguments change behavior. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for the 'entity' parameter, but the description compensates by explaining its purpose with concrete examples and the default behavior. It doesn't fully enumerate valid entity values, but the map itself can provide that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's role as a high-level map of business entities and their go-to methods, with specific usage variants. It distinguishes itself from sibling action tools (call/write/delete) by framing the tool as the 'big picture' orientation resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers explicit guidance: call with no args for the whole map, or pass entity to list methods for one entity, and instructs to use it before guessing. It doesn't name sibling alternatives or explicitly state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_remove_cabinetADestructive
Delete a stored cabinet. If it was active, another becomes active.
Args: name: the cabinet to remove.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is covered by structured data. The description adds a meaningful side effect beyond annotations: if the removed cabinet was active, another cabinet becomes active. However, it does not disclose other behavioral details like permanence, error behavior for nonexistent names, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core operation, followed by the key side effect and the parameter explanation. Every sentence earns its place, and there is no redundant restatement of the tool name or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter destructive action, the description covers the operation and the most important side effect. Since an output schema exists, return values do not need to be described. Minor gaps remain around prerequisites and exact name matching, but the overall context is adequate for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It does identify 'name' as 'the cabinet to remove,' which is useful and more informative than the schema's bare 'Name' label. However, it does not clarify what form the name takes, how to discover valid values, or whether it must exactly match a stored cabinet name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') and a clear resource ('a stored cabinet'), and the active-cabinet fallback adds a useful behavioral detail. It is immediately distinguishable from sibling tools like ym_use_cabinet and ym_add_cabinet. No ambiguity remains about what operation this tool performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no explicit guidance on when to choose it over alternatives. It does not mention when not to use it or point to related tools such as ym_use_cabinet or ym_add_cabinet. The active-cabinet fallback is a consequence, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_search_methodsARead-only
Search the endpoint catalog by keyword (works in Russian and English).
Args: query: free text, e.g. "остатки", "stocks", "update price". limit: max results (1-50). Returns JSON list of matching endpoints (best first).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the description doesn't need to cover that. It adds the return format (JSON list) and ordering ('best first'), which are useful behavioral details. No contradictions with annotations, but the description doesn't disclose additional constraints like authentication or pagination, though these are less critical for a read-only search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured: a one-line summary, a bulleted args list, and a return note. Every sentence adds value, with examples and constraints front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so the description doesn't need to detail return structure. It covers the essential aspects: query semantics, limit bounds, and result ordering. It lacks guidance on when to use it relative to sibling search tools, but that is a minor gap given the read-only nature and clear output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully documents both parameters: query with free-text examples, and limit with a range (1-50). This adds significant meaning beyond the bare schema, which only lists types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the endpoint catalog by keyword, with a specific verb and resource. It also notes bilingual support. While it doesn't explicitly differentiate from sibling search_methods for other marketplaces, the 'ym_' prefix and 'endpoint catalog' phrasing make the purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like ym_describe_method or ym_map, nor any mention of when not to use it. The usage context is only implied by the description of searching the catalog.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_set_keyAIdempotent
Change / rotate the API key from chat (e.g. the old one expired or leaked).
⚠️ The key goes into the chat transcript — requires i_understand_key_goes_to_chat=true. The safe, terminal-free alternative is the installer, where the key never enters chat. Use a scoped key and rotate it in the seller cabinet if it was exposed.
Args: credentials: dict with the required fields ({fields}). cabinet: which cabinet to update. Default: the active one (so "my key expired" just works). If there is none, the cabinet is named from the marketplace's shop name, else "main". i_understand_key_goes_to_chat: must be true to proceed. On success the key is validated against the marketplace and the shop name is reported. Saved locally (chmod 600), never echoed back.
| Name | Required | Description | Default |
|---|---|---|---|
| cabinet | No | ||
| credentials | Yes | ||
| i_understand_key_goes_to_chat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as non-read-only and idempotent, and the description adds crucial behavioral context beyond those hints: the key enters the chat transcript, the confirmation flag is mandatory, the key is validated against the marketplace, stored locally with chmod 600, and never echoed back. This materially improves an agent's understanding of side effects and risks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose, then gives a focused security warning, parameter guidance, and postconditions. Every sentence provides useful information; no filler or redundant restatement of the tool name exists, and the `Args` section maps cleanly to the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers when to use the tool, the security risk, the required confirmation flag, default cabinet behavior, validation, local file permissions, and what happens on success. The main gap is the missing concrete shape of `credentials`, which keeps it from being fully self-contained, but the overall invocation context is otherwise well covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds real meaning for `cabinet` and `i_understand_key_goes_to_chat`, including defaults and constraints. However, `credentials`, the only required parameter, is described only as 'dict with the required fields ({fields})' — the actual required fields are left as an unresolved placeholder, and schema coverage is 0%, so the agent still cannot confidently construct the required input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Change / rotate the API key from chat'. It also gives concrete trigger examples ('e.g. the old one expired or leaked'), making the tool's purpose unambiguous and distinct from the many set-key siblings by clarifying that this is the chat-based rotation path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to reach for this tool ('old one expired or leaked') and names the safer alternative ('the installer, where the key never enters chat'). It also explains the default cabinet behavior so that common cases like 'my key expired' work without extra configuration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_set_priceAIdempotent
Set the base price of ONE offer for all shops of the cabinet (POST /v2/businesses/{businessId}/offer-prices/updates). WRITE.
Requires confirm_write=true. discount_base is the strikethrough price (must be higher than price); 0 = no discount shown.
Args: business_id: cabinet id. offer_id: seller's SKU (offerId). price: new price, e.g. 1499. discount_base: pre-discount price, or 0 to clear. currency: RUR (default) — Yandex uses "RUR", not "RUB". confirm_write: must be true to send. Returns JSON: {"ok": true, "data": {"status": "OK"}} on success.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | ||
| currency | No | RUR | |
| offer_id | Yes | ||
| business_id | Yes | ||
| confirm_write | No | ||
| discount_base | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true. The description adds valuable context: it explicitly says 'WRITE', requires confirm_write=true, explains the discount_base semantics (strikethrough price must be higher than price; 0 = no discount), and notes the currency quirk ('RUR', not 'RUB'). This goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and endpoint, followed by the critical write confirmation requirement. The Args list is efficient. Slight redundancy with the endpoint and the WRITE label, but no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with 0% schema coverage, the description covers all parameters, the required confirm_write flag, the currency quirk, the discount_base constraint, and the success response format. The output schema exists, so return values are already structured. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It explains every parameter: business_id (cabinet id), offer_id (seller's SKU), price (new price with example), discount_base (pre-discount price or 0 to clear), currency (RUR default, with the RUR/RUB gotcha), and confirm_write (must be true). This fully compensates for the empty schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set'), a precise resource ('base price of ONE offer for all shops of the cabinet'), and the exact API endpoint. It clearly distinguishes this from sibling tools like ym_get_prices (read) and wb_set_price/ozon_set_price (different marketplaces).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates this is a write operation requiring confirm_write=true, and the endpoint path makes it clear this is for Yandex Market. It doesn't explicitly name alternatives or when-not-to-use, but the context is clear enough for an agent to select it over read tools or other marketplace price setters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_use_cabinetAIdempotent
Switch the active cabinet. Subsequent API calls use its credentials.
Args: name: the cabinet to activate (see ym_list_cabinets).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and readOnlyHint=false, so the description doesn't need to restate those. The description adds meaningful behavioral context: switching the active cabinet affects subsequent API calls and uses credentials. This is a state-changing operation with a persistent side effect, which is disclosed. It could mention whether the switch persists across sessions, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence plus a parameter note. Every word earns its place. The key behavioral fact (subsequent calls use its credentials) is front-loaded, and the parameter reference is clearly separated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter state-switching tool, the description is nearly complete. It explains the effect, the parameter, and where to find valid values. The output schema exists but is not described; however, for a switch operation the return value is likely trivial. A minor gap is not stating whether the switch is persistent across sessions or how to verify the active cabinet.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain that 'name' is 'the cabinet to activate' and points to ym_list_cabinets for valid values. This adds meaning beyond the bare schema. However, it doesn't specify the format or constraints of the name (e.g., exact match, case sensitivity), leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Switch the active cabinet' and explains the consequence ('Subsequent API calls use its credentials'). This is a specific verb+resource that distinguishes it from other cabinet operations like list/add/remove. However, it doesn't explicitly name a sibling alternative, so it doesn't fully differentiate from the other *_use_cabinet tools across providers, though the ym_ prefix already scopes it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: before making API calls that need a specific cabinet's credentials. It references ym_list_cabinets as the source for valid names, which is useful routing guidance. It doesn't explicitly state when not to use it or mention alternatives, but the context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_write_methodA
Execute one WRITE endpoint from the catalog: create or update data.
Target API: https://yandex.ru/dev/market/partner-api/doc/ru/.
Requires confirm_write=true; nothing is sent without it. Irreversible operations live in ym_delete_method, reads in ym_call_method.
Args: operation_id: id from the catalog (see ym_search_methods). path_values: values for {placeholders} in the path. query: query-string parameters. body: JSON request body. confirm_write: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| path_values | No | ||
| operation_id | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutation (readOnlyHint=false, destructiveHint=false), so the description's main added behavioral value is the confirm_write guard: 'nothing is sent without it.' It also discloses the response shape and target API. It stops short of describing auth requirements, rate limits, or side-effect granularity, but the annotation coverage lowers the burden; there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose, safety guard, sibling routing, then a scannable Args list and return envelope. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic catalog-driven executor, it provides the essential loop: discover operation_id via ym_search_methods, supply path/query/body, and pass confirm_write=true. The output envelope is stated, and an output schema is present, so return-value detail isn't required. It could have explicitly pointed to ym_describe_method for per-endpoint parameter requirements, but the catalog pointer largely covers this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, and it does: operation_id comes from the catalog, path_values fill {placeholders}, query holds query-string parameters, body is the JSON request body, and confirm_write must be true. This adds significant meaning beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and resource: 'Execute one WRITE endpoint from the catalog: create or update data.' It further distinguishes itself from siblings by noting that irreversible operations live in ym_delete_method and reads in ym_call_method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit precondition and safety rule: 'Requires confirm_write=true; nothing is sent without it.' It also tells the agent where to route other operation types (ym_delete_method for irreversible, ym_call_method for reads) and where to find operation IDs (ym_search_methods).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ym_write_rawA
Create or update data at ANY path, including paths not in the catalog.
Target API: https://yandex.ru/dev/market/partner-api/doc/ru/.
POST, PUT and PATCH only; requires confirm_write=true.
Args: method: POST, PUT or PATCH. path: full path beginning with '/'. host: host override; defaults to the service's default host. query: query-string parameters. body: JSON request body. confirm_write: must be true. Returns JSON: {"ok": true, "status", "data"} or the error envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| host | No | ||
| path | Yes | ||
| query | No | ||
| method | Yes | ||
| confirm_write | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds meaningful behavioral context: it supports only POST/PUT/PATCH, requires confirm_write=true, and returns a specific JSON envelope or error envelope. It also notes the host override behavior. This goes beyond the annotations and helps the agent understand side effects and safety requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, then the API link, then method constraints, then parameter list, then return format. Every sentence earns its place. The parameter list is a bit dense but still readable. Minor deduction for the 'Args:' block being a bit telegraphic, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and annotations, the description covers the essential operational details: allowed methods, required confirm_write flag, path format, host override, and return envelope. It doesn't explain error cases beyond 'error envelope', but that is acceptable given the output schema exists. It is complete enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does: it explains method (POST/PUT/PATCH only), path (full path beginning with '/'), host (override, defaults to service default), query (query-string parameters), body (JSON request body), and confirm_write (must be true). This adds meaning beyond the bare schema titles and defaults, though it could be slightly more explicit about the body being optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create or update data') and a specific resource ('at ANY path, including paths not in the catalog'), which clearly distinguishes it from catalog-bound tools like ym_write_method. It also names the target API and HTTP methods, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says it can write to any path, including non-catalog paths, which implies when to use it (when the path is not in the catalog or when you need raw access). It also states the constraint 'requires confirm_write=true' and lists allowed methods. However, it does not explicitly say 'use ym_write_method for catalog paths' or name alternatives, so it misses the explicit 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
35 tool updates
v0.6.1- Changed
avito_call_method2 fields changed- removed
Input schema / properties / confirm_writeRemoved value: -{ - "default": false, - "title": "Confirm Write", - "type": "boolean" -} - removed
Input schema / properties / i_understand_this_modifies_dataRemoved value: -{ - "default": false, - "title": "I Understand This Modifies Data", - "type": "boolean" -}
- Removed
avito_call_raw - Added
avito_delete_method - Added
avito_delete_raw - Added
avito_get_raw - Added
avito_write_method - Added
avito_write_raw - Changed
ozon_call_method2 fields changed- removed
Input schema / properties / confirm_writeRemoved value: -{ - "default": false, - "title": "Confirm Write", - "type": "boolean" -} - removed
Input schema / properties / i_understand_this_modifies_dataRemoved value: -{ - "default": false, - "title": "I Understand This Modifies Data", - "type": "boolean" -}
- Removed
ozon_call_raw - Added
ozon_delete_method - Added
ozon_delete_raw - Added
ozon_get_raw - Changed
ozon_perf_call_method2 fields changed- removed
Input schema / properties / confirm_writeRemoved value: -{ - "default": false, - "title": "Confirm Write", - "type": "boolean" -} - removed
Input schema / properties / i_understand_this_modifies_dataRemoved value: -{ - "default": false, - "title": "I Understand This Modifies Data", - "type": "boolean" -}
- Removed
ozon_perf_call_raw - Added
ozon_perf_delete_method - Added
ozon_perf_delete_raw - Added
ozon_perf_get_raw - Added
ozon_perf_write_method - Added
ozon_perf_write_raw - Added
ozon_write_method - Added
ozon_write_raw - Changed
wb_call_method2 fields changed- removed
Input schema / properties / confirm_writeRemoved value: -{ - "default": false, - "title": "Confirm Write", - "type": "boolean" -} - removed
Input schema / properties / i_understand_this_modifies_dataRemoved value: -{ - "default": false, - "title": "I Understand This Modifies Data", - "type": "boolean" -}
- Removed
wb_call_raw - Added
wb_delete_method - Added
wb_delete_raw - Added
wb_get_raw - Added
wb_write_method - Added
wb_write_raw - Changed
ym_call_method2 fields changed- removed
Input schema / properties / confirm_writeRemoved value: -{ - "default": false, - "title": "Confirm Write", - "type": "boolean" -} - removed
Input schema / properties / i_understand_this_modifies_dataRemoved value: -{ - "default": false, - "title": "I Understand This Modifies Data", - "type": "boolean" -}
- Removed
ym_call_raw - Added
ym_delete_method - Added
ym_delete_raw - Added
ym_get_raw - Added
ym_write_method - Added
ym_write_raw
103 tool updates
v0.5.2- Added
avito_add_cabinet - Added
avito_call_method - Added
avito_call_raw - Added
avito_check_auth - Added
avito_describe_method - Added
avito_fetch_all - Added
avito_get_balance - Added
avito_get_chats - Added
avito_get_item_stats - Added
avito_get_items - Added
avito_get_orders - Added
avito_get_reviews - Added
avito_get_section - Added
avito_get_stocks - Added
avito_get_workflow - Added
avito_list_cabinets - Added
avito_list_sections - Added
avito_list_workflows - Added
avito_map - Added
avito_remove_cabinet - Added
avito_search_methods - Added
avito_set_key - Added
avito_update_price - Added
avito_update_stock - Added
avito_use_cabinet - Added
avito_whoami - Added
ozon_add_cabinet - Added
ozon_call_method - Added
ozon_call_raw - Added
ozon_check_auth - Added
ozon_describe_method - Added
ozon_fetch_all - Added
ozon_get_fbs_unfulfilled - Added
ozon_get_prices - Added
ozon_get_section - Added
ozon_get_stocks - Added
ozon_get_workflow - Added
ozon_list_cabinets - Added
ozon_list_sections - Added
ozon_list_workflows - Added
ozon_map - Added
ozon_perf_add_cabinet - Added
ozon_perf_call_method - Added
ozon_perf_call_raw - Added
ozon_perf_check_auth - Added
ozon_perf_describe_method - Added
ozon_perf_fetch_all - Added
ozon_perf_get_section - Added
ozon_perf_get_workflow - Added
ozon_perf_list_cabinets - Added
ozon_perf_list_sections - Added
ozon_perf_list_workflows - Added
ozon_perf_map - Added
ozon_perf_remove_cabinet - Added
ozon_perf_search_methods - Added
ozon_perf_set_key - Added
ozon_perf_use_cabinet - Added
ozon_remove_cabinet - Added
ozon_set_key - Added
ozon_set_price - Added
ozon_use_cabinet - Added
wb_add_cabinet - Added
wb_call_method - Added
wb_call_raw - Added
wb_check_auth - Added
wb_describe_method - Added
wb_fetch_all - Added
wb_get_prices - Added
wb_get_sales - Added
wb_get_section - Added
wb_get_stocks - Added
wb_get_workflow - Added
wb_list_cabinets - Added
wb_list_sections - Added
wb_list_workflows - Added
wb_map - Added
wb_remove_cabinet - Added
wb_search_methods - Added
wb_set_key - Added
wb_set_price - Added
wb_use_cabinet - Added
ym_add_cabinet - Added
ym_call_method - Added
ym_call_raw - Added
ym_check_auth - Added
ym_describe_method - Added
ym_fetch_all - Added
ym_get_campaigns - Added
ym_get_offers - Added
ym_get_orders - Added
ym_get_prices - Added
ym_get_section - Added
ym_get_stocks - Added
ym_get_workflow - Added
ym_list_cabinets - Added
ym_list_sections - Added
ym_list_workflows - Added
ym_map - Added
ym_remove_cabinet - Added
ym_search_methods - Added
ym_set_key - Added
ym_set_price - Added
ym_use_cabinet
9 tool updates
v0.1.0- Added
ozon_get_products - Removed
ozon_get_workflow - Removed
ozon_perf_list_sections - Removed
ozon_perf_list_workflows - Removed
ozon_perf_map - Removed
ozon_perf_search_methods - Added
ozon_search_methods - Removed
wb_check_auth - Added
wb_get_new_orders
6 tool updates
v0.3.3- First observed
ozon_get_workflow - First observed
ozon_perf_list_sections - First observed
ozon_perf_list_workflows - First observed
ozon_perf_map - First observed
ozon_perf_search_methods - First observed
wb_check_auth
TDQS
Scored across 126 tools
The five marketplace prefixes (wb_, ozon_, ozon_perf_, ym_, avito_) cleanly separate otherwise identical tool families. Within a service, call_method, get_raw, and fetch_all are distinguishable by catalog-id vs raw-path vs auto-pagination, though convenience wrappers like wb_set_price and wb_write_method could briefly cause hesitation.
Tools overwhelmingly follow a {marketplace}_{verb}_{noun} snake_case pattern, including the nested ozon_perf_ family. Minor deviations like avito_whoami and standalone convenience wrappers (wb_get_sales, ozon_get_products) break the strict verb_noun rhythm, but the overall scheme is predictable.
126 tools is far beyond the recommended range and matches the rubric's extreme mismatch threshold. The five-marketplace scope explains some repetition, but the resulting surface still overwhelms agent context and makes tool selection disproportionately expensive.
Each marketplace receives a full lifecycle: auth and cabinet management, endpoint discovery, generic read/write/delete with raw fallbacks, auto-pagination, and convenience wrappers for core entities like prices, stocks, orders, and products. Common seller workflows have no obvious dead ends.
Maintenance
Related MCP Connectors
Бесплатная русскоязычная аналитика Wildberries, SEO, калькуляторы и прогноз пополнения через MCP.
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceConnects AI assistants to Wildberries and Ozon seller accounts for real-time access to sales, stocks, prices, finances, and reviews through official APIs.MIT
- AlicenseAqualityDmaintenanceMCP server for Ozon Seller API that enables AI clients to manage products, prices, stocks, orders, analytics, and finances on Ozon marketplace.2632 npm6-
- AlicenseAqualityCmaintenanceEnables querying and comparing prices, availability, ratings, reviews, and seller details from major Russian and Chinese marketplaces (Wildberries, Ozon, Yandex Market, and others) without requiring API keys, via a unified MCP interface.424MIT
- FlicenseNot gradedqualityCmaintenanceEnables managing Ozon Seller and Performance APIs through MCP, covering products, stocks, prices, orders, finance, analytics, advertising, reviews, and chat operations.-