Skip to main content
Glama
Pavelsiba

yandex-direct-mcp-plus

by Pavelsiba

yandex-direct-mcp-plus

Ведение контекстной рекламы Яндекс.Директа из диалога с ассистентом: собрать кампанию, разобрать поисковые запросы, вычистить минус-фразы, поправить ставки и посмотреть расход — не переключаясь между разделами кабинета. Работает в любом MCP-клиенте: Claude Code, Claude Desktop, Cursor и другие.

npm License: MIT Node

  • 60 инструментов, из них 25 только читают. Кампании и стратегии, группы, объявления и модерация, ключевые фразы и ставки, минус-фразы и общие наборы, быстрые ссылки, уточнения, изображения, визитки, корректировки ставок, ретаргетинг, аудиторные и динамические цели, фиды, расписание показов, статистика, поисковые запросы, баланс и справочники.

  • Деньги — в рублях, на вводе и на выводе; в микроединицы API сервер переводит сам. Поддержан агентский режим (Client-Login).

  • ID — строками ("1915016273214320641"): 64-битные идентификаторы Директа не помещаются в число JavaScript и молча теряют точность. Здесь это стережёт правило линтера, а не внимательность.

  • Реклама боевая. Тестовой среды у Директа больше нет — какие инструменты тратят деньги и что удаляют необратимо, перечислено в разделе Что меняет данные.

  • Телеметрии нет. Сервер не отправляет никуда ничего, кроме запросов к API Яндекса.

Содержание

Related MCP server: Yandex MCP Server

Что можно делать

Обычным текстом в чате — инструменты сервер подставляет сам:

Собери кампанию «Летняя распродажа»: бюджет 5000 ₽/день, старт 1 мая, показы будни 9–21
Добавь минус-фразы «бесплатно» и «скачать» в кампанию 12345, не затерев остальные
Посмотри поисковые запросы за месяц и предложи, что заминусовать
Подними ставку до 25 ₽ там, где CTR выше 8%, а показов меньше сотни
Что изменилось в кампаниях со вчера?
Покажи расход по кампаниям за неделю и баланс аккаунта
Найди код региона для Новосибирска

Полный список — 60 инструментов ниже.

Установка

Нужен Node.js 22+ и OAuth-токен Яндекс.Директа — как его получить.

Claude Code

claude mcp add yandex-direct -e YANDEX_DIRECT_TOKEN=ваш_токен -- npx -y yandex-direct-mcp-plus

Claude Desktop, Cursor и другие клиенты

{
  "mcpServers": {
    "yandex-direct": {
      "command": "npx",
      "args": ["-y", "yandex-direct-mcp-plus"],
      "env": {
        "YANDEX_DIRECT_TOKEN": "ваш_токен"
      }
    }
  }
}

Из исходников

git clone git@github.com:Pavelsiba/yandex-direct-mcp-plus.git
cd yandex-direct-mcp-plus
npm ci && npm run build

Дальше тот же конфиг, но "command": "node" и путь к dist/app/index.js вместо npx.

Токен

OAuth-токен выпускается для приложения, зарегистрированного в Яндекс OAuth, с доступом к API Директа. Подробности — регистрация приложения и получение токена. Доступ к API нужно запросить в интерфейсе Директа — заявку рассматривают от часа до нескольких суток.

Переменная

Обязательна

Назначение

YANDEX_DIRECT_TOKEN

да

OAuth-токен Яндекс.Директ

YANDEX_DIRECT_LOGIN

нет

Логин клиента для агентских токенов (заголовок Client-Login). Обязателен, если токен агентский

YANDEX_DIRECT_POLYGON_CAMPAIGN_ID

нет

Только для npm run test:int: ID кампании-полигона, оставленной черновиком. Сетевые тесты пишут в неё и ни во что другое; без переменной они пропускаются

Что меняет данные

Тестовой среды у Яндекс.Директа больше нет: песочница отключена с июля 2026, и любой вызов идёт по боевому аккаунту. Отлаживать сценарии приходится на отдельной кампании, оставленной черновиком, — показов она не даёт и потому не тратит бюджет, пока не пройдёт модерацию и не будет включена.

Граница проходит не по «чтение или запись», а по скорости, с которой действие превращается в деньги.

25 инструментов только читают — все list_*, get_* и справочники. Вызвать их безопасно всегда.

Тратят бюджет или запускают показы — восемь:

Инструмент

Чем именно

manage_campaigns

resume — включает показы остановленной кампании

manage_ads

resume и moderate — возвращает объявления в показ

moderate_ads

Отправляет объявления на модерацию, после неё начнутся показы

update_campaign

Меняет дневной бюджет

set_keyword_bids

Меняет ставки, то есть цену клика

set_strategy

Меняет стратегию — переписывает всю экономику кампании

add_bid_adjustments

Заводит корректировку: +N% к ставке на срезе аудитории

set_bid_adjustments

Меняет коэффициент существующей корректировки

Удаляют необратимо — эти инструменты помечены аннотацией DESTRUCTIVE, и хороший MCP-клиент спросит подтверждение перед вызовом:

manage_campaigns (delete), manage_ads (delete), manage_keywords (delete), delete_ad_groups, delete_ad_extensions, delete_sitelinks, delete_vcards, delete_bid_adjustments, delete_retargeting_lists, manage_ad_images (delete), manage_dynamic_targets (delete), set_audience_targets (delete), manage_negative_keyword_shared_sets (delete).

Сюда же — set_campaign_negative_keywords и set_ad_group_negative_keywords в режиме replace: он затирает прежний список минус-фраз целиком. Именно поэтому у них нет режима по умолчанию — mode приходится назвать явно. Так же устроен set_priority_goals: replace и remove убирают цели стратегии, а любая смена целей перезапускает её обучение.

Остальные инструменты создают и правят объекты. Пока кампания не прошла модерацию и не включена, показов по ней нет и бюджет не расходуется.

Инструменты (60)

Кампании

Инструмент

Описание

list_campaigns

Список кампаний (фильтр по статусу/типу, пагинация)

get_campaign

Детальная информация о кампании по ID

create_campaign

Создать кампанию (бюджет в рублях, выбор стратегии, часовой пояс, UTM-разметка)

update_campaign

Обновить название/бюджет/UTM-разметку и/или статус (SUSPEND/RESUME/ARCHIVE/UNARCHIVE)

manage_campaigns

suspend/resume/archive/unarchive/delete для списка кампаний

get_strategy

Получить стратегию текстово-графической кампании

set_strategy

Сменить стратегию: ручная, максимум кликов, средняя цена клика/конверсии, оплата за конверсию

set_priority_goals

Цели стратегии и их ценность в рублях: добавить, убрать или заменить список

get_time_targeting

Расписание показов: часовой пояс, часы по дням недели, праздники

set_time_targeting

Задать расписание показов и почасовые коэффициенты (заменяет целиком)

Группы объявлений

Инструмент

Описание

list_ad_groups

Группы объявлений выбранных кампаний

create_ad_group

Создать группу с таргетингом по регионам

delete_ad_groups

Удалить группы по ID

set_ad_group_negative_keywords

Минус-фразы группы: mode обязателен — replace, add или remove

Объявления

Инструмент

Описание

list_ads

Объявления в группах

create_text_ad

Создать текстовое объявление (≤56/≤30/≤81)

update_text_ad

Обновить заголовок/текст/ссылку

manage_ads

suspend/resume/archive/unarchive/moderate/delete

moderate_ads

Отправить объявления на модерацию

Ключевые слова и ставки

Инструмент

Описание

list_keywords

Ключевые фразы в группах (ставки в рублях)

add_keywords

Добавить ключевые фразы

update_keywords

Изменить текст фразы и подстановочные переменные {param1}/{param2}

set_keyword_bids

Установить ставки (поиск/сети, рубли) на фразах/группах/кампаниях

get_keyword_auction

Аукцион по фразам: ставки и списываемые цены по позициям, ставки конкурентов, цена входа (рубли)

manage_keywords

suspend/resume/delete

set_campaign_negative_keywords

Минус-фразы кампании: mode обязателен — replace, add или remove

get_campaign_negative_keywords

Получить минус-фразы кампаний

Быстрые ссылки, уточнения и корректировки

Инструмент

Описание

list_sitelinks

Получить наборы быстрых ссылок

set_sitelinks

Создать новый набор быстрых ссылок

delete_sitelinks

Удалить наборы быстрых ссылок

list_ad_extensions

Получить уточнения (callouts)

add_ad_extensions

Создать уточнения

delete_ad_extensions

Удалить уточнения

manage_ad_images

Загрузить, получить или удалить изображения

get_bid_adjustments

Получить корректировки: устройства, пол и возраст, аудитории, регионы, платёжеспособность, размещение

add_bid_adjustments

Создать корректировки на кампаниях или группах

set_bid_adjustments

Изменить коэффициенты существующих корректировок

delete_bid_adjustments

Удалить корректировки по ID

Аудитории, цели и фиды

Инструмент

Описание

list_retargeting_lists

Получить условия ретаргетинга и подбора аудитории

add_retargeting_list

Создать условие ретаргетинга

update_retargeting_lists

Изменить название, описание и правила условий (правила заменяются целиком)

delete_retargeting_lists

Удалить условия ретаргетинга

list_audience_targets

Получить аудиторные цели

set_audience_targets

add/set_bids/suspend/resume/delete аудиторных целей

list_dynamic_targets

Получить динамические цели

manage_dynamic_targets

add/set_bids/suspend/resume/delete динамических целей

list_feeds

Получить товарные фиды

list_negative_keyword_shared_sets

Получить общие наборы минус-фраз

manage_negative_keyword_shared_sets

add/update/delete общих наборов

link_negative_keyword_sets

Привязать общие наборы к кампаниям и группам объявлений

Статистика, аккаунт, справочники

Инструмент

Описание

get_statistics

Статистика за период (показы, клики, расход, CTR, CPC)

get_search_queries

Фактические поисковые запросы для подбора минус-фраз

get_changes

Проверить изменения кампаний, групп, объявлений и справочников

list_vcards

Получить виртуальные визитки

add_vcard

Создать виртуальную визитку

delete_vcards

Удалить визитки по ID

list_businesses

Получить профили организаций Яндекс Бизнеса

get_account_balance

Баланс аккаунта (Live API v4)

get_regions

Справочник кодов регионов (225 = Россия), с вложенностью по запросу

list_time_zones

Справочник часовых поясов для расписания показов

Разработка

npm install
npm run build      # tsc → dist/
npm test           # vitest (моки fetch)
npm run dev        # tsx --conditions=development src/app/index.ts
npm run lint       # biome
npm run typecheck  # tsc --noEmit
npm run lint:dead  # knip

Код разложен по слоям app → tools → shared; инструмент — это каталог src/tools/<домен>/ с schema.ts, handler.ts и tool.ts. Подробности — в docs/architecture.md.

Происхождение и благодарности

Проект начат на коде theYahia/yandex-direct-mcp под лицензией MIT. Расширение с 20 до 48 инструментов и перевод ID на строки — работа Maxim (DrSeedon), PR #7; в npm эта версия не публиковалась. Дальше проект развивается самостоятельно и апстрим не отслеживает.

История до отделения от апстрима (версии 3.0.0–5.0.0, включая вклад DrSeedon) — в docs/CHANGELOG-upstream.md; дальнейшие изменения — в CHANGELOG.md. План — в docs/roadmap.md, архитектура — в docs/architecture.md.

Лицензия

MIT — см. LICENSE. Уведомление об авторских правах исходного проекта сохранено.

Available Tools

60 tools
add_ad_extensionsСоздать уточненияC

Создать уточнения (callouts), каждый текст до 25 символов.

ParametersJSON Schema
NameRequiredDescriptionDefault
calloutsYesТексты уточнений, каждый до 25 символов

TDQS

C2.9/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false and openWorldHint=true, so the mutation nature is covered by structured data. Beyond that, the description repeats the 25-char limit already in the schema and says nothing about where extensions are applied, whether the call replaces or appends existing callouts, or permission requirements — a meaningful gap for a write tool.

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

Conciseness4/5

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

One short, front-loaded sentence with zero padding. It is appropriately sized, though the duplicated constraint from the schema means the sentence earns slightly less than it could.

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

Completeness2/5

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

A mutation tool with no output schema and an ambiguous placement scope (campaign vs ad group level), yet the description does not say where these callouts land or what a successful call returns. The agent is left guessing at required preconditions.

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

Parameters3/5

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

Schema description coverage is 100% with a single well-documented parameter (maxLength 25, 1-1000 items), so the baseline is 3. The description only echoes the schema's length constraint and adds no new semantics.

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

Purpose4/5

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

States a specific verb + resource ('Создать уточнения (callouts)') and adds a concrete constraint (each text up to 25 characters). It is distinguishable from list_ad_extensions and delete_ad_extensions by the create verb, but it never explicitly references those siblings or what entity (campaign/ad group) the callouts attach to.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, no mention of what must already exist (a campaign or ad group) or how it relates to list_ad_extensions/delete_ad_extensions. The agent must infer the whole invocation context.

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

add_bid_adjustmentsСоздать корректировки ставокB

Создать корректировки ставок на кампаниях или группах. Коэффициент — проценты от ставки: 100 ничего не меняет, 0 отключает показы среза.

ParametersJSON Schema
NameRequiredDescriptionDefault
adjustmentsYesКорректировки; каждая ставится каждому объекту из campaign_ids или ad_group_ids. Всего за вызов не больше 1000 корректировок — это цели, умноженные на виды
ad_group_idsNoГруппы, которым добавляются корректировки; вместо campaign_ids
campaign_idsNoКампании, которым добавляются корректировки; вместо ad_group_ids

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and openWorldHint=true, so the mutation and open-world nature is covered. The description adds real value by explaining that 100 leaves the bid unchanged and 0 disables impressions for that slice, but it says nothing about permissions or whether adding an adjustment merges with or replaces existing ones — critical given a set_bid_adjustments sibling exists.

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

Conciseness5/5

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

Two sentences, zero waste, with the operation and its scope front-loaded before the coefficient semantics. Nothing could be removed without losing information.

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

Completeness3/5

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

For a mutation tool whose annotations cover the safety profile and whose schema is fully documented, the description is nearly sufficient. The notable gap is that it does not resolve add-versus-set semantics against a very similar sibling, which is exactly the ambiguity an agent needs resolved here.

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

Parameters3/5

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

Schema description coverage is 100%, including the same '100 — ставка без изменений' note for bid_modifier, so the description's coefficient explanation is largely redundant with structured data. Baseline 3 is appropriate when the schema fully documents all parameters.

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

Purpose4/5

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

States a specific verb and resource ('Создать корректировки ставок') and names the two scopes it applies to (кампании или группы). It is clear on its own, but it never distinguishes itself from the sibling set_bid_adjustments, which is the most likely confusion for an agent choosing between them.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance and no mention of the alternatives. With get_bid_adjustments, set_bid_adjustments and delete_bid_adjustments all present as siblings, the agent gets no hint about when to add versus when to set or overwrite existing adjustments.

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

add_keywordsДобавить ключевые словаC

Добавить ключевые фразы в группу объявлений.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYesКлючевые фразы; минус-слова внутри фразы записываются через дефис
ad_group_idYesID группы, в которую добавляются фразы

TDQS

C2.7/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false and openWorldHint=true, so the write and external-system traits are covered structurally. The description adds nothing beyond that: no mention of auth requirements, whether phrases are appended vs replacing, duplicate handling, limits on count, or that new phrases start in a pending moderation state.

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

Conciseness5/5

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

A single short sentence with the action front-loaded and zero filler. Nothing to trim.

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

Completeness2/5

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

For a mutation tool with no output schema and many keyword siblings, the description omits prerequisites, append semantics, duplicate behavior, and moderation state. The structured fields cover safety and params, but the behavioral context an agent needs to call this correctly versus update_keywords is absent.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented, including the hyphen-minus-word convention in the schema itself. The description adds no syntax, format, or constraint detail beyond the schema, so baseline 3 is correct.

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

Purpose3/5

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

States a specific verb (добавить) and resource (ключевые фразы в группу объявлений), which is clearer than a tautology. However, it doesn't distinguish itself from siblings like update_keywords, manage_keywords, or set_keyword_bids, so the agent can't tell when this specific add-path applies versus those.

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

Usage Guidelines2/5

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

No when-to-use context, no prerequisites, and no mention of alternatives such as update_keywords for existing phrases. The agent gets an implied action but no routing guidance among the many keyword siblings.

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

add_retargeting_listСоздать список ретаргетингаB

Создать условие ретаргетинга из целей Метрики, сегментов или интересов.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesНазвание условия ретаргетинга
typeNoRETARGETING — по целям Метрики, AUDIENCE — по сегментам Яндекс.АудиторийRETARGETING
rulesYesПравила условия; между собой они соединяются логическим И
descriptionNoОписание условия — видно только в интерфейсе, на показы не влияет

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and openWorldHint=true, so the write nature is covered. The description confirms it is a creation operation built from Metrica goals/segments but adds no side-effect, permission, or idempotency context beyond what the annotations and schema already convey.

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

Conciseness4/5

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

A single front-loaded sentence with the verb first and zero filler. Efficient, though arguably too terse for a tool whose rules array has nested semantics.

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

Completeness3/5

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

For a write tool with no output schema, fully documented parameters, and annotations covering the mutation profile, the description is minimally adequate. It could have explained the rules structure or creation behavior, but the schema carries most of the load.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The phrase 'из целей Метрики, сегментов или интересов' loosely maps to the type enum (RETARGETING/AUDIENCE) but introduces 'интересы', which has no corresponding enum value, adding slight ambiguity rather than meaning.

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

Purpose4/5

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

States a specific verb ('Создать') and resource ('условие ретаргетинга'), and names the source data (цели Метрики, сегменты, интересы). Clear enough to distinguish it from the list/update/delete siblings by name, but it never explicitly contrasts itself with update_retargeting_lists or list_retargeting_lists.

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

Usage Guidelines2/5

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

No when-to-use guidance and no mention of alternatives, despite being one member of a CRUD family (list_/update_/delete_retargeting_lists). The agent must infer that this is the creation path from the tool name alone.

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

add_vcardСоздать визиткуC

Создать виртуальную визитку для кампании.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesГород
ogrnNoОГРН или ОГРНИП организации
houseNoДом
streetNoУлица
countryYesСтрана, например «Россия»
buildingNoКорпус
apartmentNoОфис или квартира
work_timeYesРежим работы в формате API: день_с#день_по#час_с#мин_с#час_по#мин_по, например 1#5#9#0#18#0
campaign_idYesID кампании, к которой привязывается визитка
company_nameYesНазвание организации
phone_numberYesНомер телефона
contact_emailNoКонтактный адрес электронной почты
extra_messageNoДополнительная информация в визитке
contact_personNoКонтактное лицо
phone_city_codeYesКод города или оператора
phone_extensionNoДобавочный номер
metro_station_idNoID станции метро из справочника MetroStations
phone_country_codeYesКод страны, «+7»

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false and openWorldHint=true, so the agent knows this is a mutating, externally-visible operation. The description adds nothing beyond that: no note on whether the vCard becomes immediately active, whether existing vCards in the campaign are affected, or any limit on how many vCards a campaign may have.

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

Conciseness4/5

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

A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity is close to under-specification rather than exemplary conciseness.

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

Completeness2/5

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

This is a high-complexity mutation with 18 parameters, 8 required, no output schema, and only two structural annotations. The description leaves out the campaign-prerequisite relationship, the effect of creation on existing vCards, and how it relates to list_vcards/delete_vcards, so it is not complete enough for correct invocation in edge cases.

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

Parameters3/5

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

Schema description coverage is 100% across all 18 parameters, including the API-specific work_time format and metro_station_id reference, so the schema carries the semantics well. The description contributes no additional parameter meaning (e.g., which address fields are jointly required), which makes the baseline 3 correct.

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

Purpose4/5

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

The description names a specific verb ('Создать') and resource ('виртуальную визитку') and adds scope ('для кампании'), so the agent knows this creates a vCard bound to a campaign. It does not, however, differentiate itself from siblings such as list_vcards or delete_vcards, which is what would be needed for a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no statement of prerequisites (e.g., that an existing campaign_id is required), and no mention of the related list_vcards/delete_vcards siblings. The agent must infer everything about applicability from the name alone.

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

create_ad_groupСоздать группуB

Создать группу объявлений в кампании с таргетингом по регионам (см. get_regions).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesНазвание группы
region_idsYesРегионы показа, коды из get_regions: ["225"] — Россия, ["225","-213"] — Россия кроме Москвы, ["0"] — все регионы. Минус-регионы нельзя сочетать с 0 и нельзя отправлять одни, без обычного региона
campaign_idYesID кампании, в которой создаётся группа

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and openWorldHint=true, so the agent knows this is a write against external state. The description adds the region-targeting nature of the created entity, but says nothing about required permissions, whether the parent campaign must pre-exist, or failure modes.

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

Conciseness4/5

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

One compact sentence with the verb front-loaded and no filler. It could be marginally improved by making the get_regions cross-reference more actionable, but there is no waste.

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

Completeness3/5

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

With full schema coverage, annotations covering the write/safety profile, and no output schema to explain, the description is nearly sufficient. It still omits prerequisites (existing campaign) and confirmation/return behavior, leaving a modest gap for a mutating tool.

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

Parameters3/5

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

Schema description coverage is 100% and the schema itself is unusually rich (region_ids documents the get_regions format, negative-region rules, and the '0' special case). The description adds no parameter meaning beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb (create) and resource (ad group) plus its embedding context (inside a campaign) and the region-targeting angle, which distinguishes it from the generic campaign/keyword siblings. It does not explicitly contrast with siblings like create_campaign or create_text_ad, but the scope is unambiguous.

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

Usage Guidelines3/5

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

It points the agent to get_regions as the source for region codes, which is genuinely useful for populating region_ids. Beyond that, there is no statement of when to use this versus create_campaign or other creation tools, and no listed prerequisites or exclusions.

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

create_campaignСоздать кампаниюA

Создать новую рекламную кампанию. Бюджет в рублях. ⚠️ Тестовой среды у Директа нет: кампания создаётся в боевом аккаунте. Деньги она начнёт тратить после модерации и включения, поэтому созданную для проверки оставляйте черновиком.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesНазвание кампании
typeNoТип кампании: текстово-графическая или динамические объявленияTEXT_CAMPAIGN
time_zoneNoЧасовой пояс показов, например Europe/Moscow (по умолчанию). Список — в справочнике list_time_zones; на даты отчётов не влияет, они всегда по Москве
start_dateYesДата начала показов, YYYY-MM-DD
daily_budgetNoДневной бюджет в рублях, например 1000 — это 1000 ₽
search_strategyNoСтратегия показов на поиске; SERVING_OFF отключает показы на поискеHIGHEST_POSITION
tracking_paramsNoUTM-разметка, дописывается к ссылкам всех объявлений кампании. Без ведущего «?»: utm_source=yandex&utm_campaign={campaign_id}. Допустимы подстановки Директа в фигурных скобках. null снимает разметку
network_strategyNoСтратегия показов в сетях (РСЯ); SERVING_OFF отключает показы в сетяхSERVING_OFF

TDQS

A3.9/5.0
Behavior5/5

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

Annotations mark it as a non-read-only, open-world mutation but say nothing about risk. The description adds critical context beyond annotations: no test environment exists, the campaign lands in a production account, and it starts spending real money only after moderation and enabling – plus the draft mitigation. This is exactly the kind of behavioral disclosure the annotations cannot convey.

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

Conciseness4/5

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

Three short sentences with the purpose first and the risk warning given prominence via the ⚠️ marker. Every sentence carries weight; only the 'budget in rubles' line is slightly redundant with the schema.

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

Completeness4/5

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

For a mutation tool with 8 parameters and no output schema, the description covers the biggest missing piece: the production/no-sandbox risk and the draft workaround. It does not mention what the call returns (e.g., the new campaign ID), which matters for chaining, but the schema otherwise carries the parameter burden.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 8 parameters in detail, including enums and defaults. The description only adds 'budget in rubles', which the schema also states for daily_budget, so it adds essentially nothing beyond structured fields. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource: 'Создать новую рекламную кампанию' clearly distinguishes it from update_campaign and get_campaign. However, it offers no explicit sibling differentiation or scope details, so it is clear but not exceptional.

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

Usage Guidelines3/5

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

The description implies when to use it (creating a campaign to test should be left as a draft) and gives one precautionary usage note. But it never names alternatives or states when-not to use it (e.g., duplicate name handling, prerequisites). Usage is implied rather than explicitly framed.

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

create_text_adСоздать объявлениеC

Создать текстовое объявление: заголовок (≤56), второй заголовок (≤30), текст (≤81), ссылка.

ParametersJSON Schema
NameRequiredDescriptionDefault
hrefYesСсылка на сайт
textYesТекст объявления, до 81 символов
titleYesЗаголовок объявления, до 56 символов
title2NoВторой заголовок, до 30 символов
ad_group_idYesID группы, в которой создаётся объявление

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false and openWorldHint=true, signaling a write to an external system. The description adds no behavioral context beyond the schema's character limits — nothing about permissions, side effects, or what the call returns.

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

Conciseness4/5

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

A single front-loaded sentence with a colon-separated field list — no wasted words. Efficient, though 'ссылка' omits the constraint the schema carries for href.

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

Completeness3/5

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

For a mutation tool with no output schema, the definition should say more — e.g., that the ad group must exist or what a successful create returns. The schema fully covers the inputs, but the description leaves the agent without return or prerequisite context.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters are already documented with names and length limits. The description's field list and limits only restate what the schema provides, adding no new syntax or meaning. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb ('Создать') and resource ('текстовое объявление') and enumerates the content fields, so the agent knows exactly what is produced. The create-vs-update distinction against update_text_ad follows from the verb, but the description never names the sibling or otherwise differentiates explicitly.

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

Usage Guidelines2/5

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

There is no when/when-not guidance, no mention of the alternative update_text_ad for edits, and no prerequisites such as the target ad group having to exist. The agent gets no routing help beyond the tool name.

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

delete_ad_extensionsУдалить уточненияA
Destructive

Удалить уточнения по ID. ⚠️ Необратимо.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_extension_idsYesУточнения, которые будут удалены безвозвратно

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is largely covered. The description adds the useful nuance that deletion is irreversible ('⚠️ Необратимо'), but does not describe permissions, side effects, or failure behavior.

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

Conciseness5/5

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

The description is two short, front-loaded clauses with zero waste. The irreversible warning is clearly separated and easy to notice.

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

Completeness4/5

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

For a simple one-parameter destructive tool with no output schema, the description plus annotations provide enough to invoke it safely. The main gap is the absence of usage guidance, but annotations already cover the safety-critical behavior.

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

Parameters3/5

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

Schema description coverage is 100%, and the single parameter's type, pattern, array bounds, and meaning are fully documented in the schema. The description only restates that deletion is by ID, adding no syntax or format detail beyond the schema.

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

Purpose5/5

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

The description states a specific verb and resource ('Удалить уточнения' / delete ad extensions) and identifies the key input ('по ID'). It is clearly distinguishable from sibling operations such as list_ad_extensions and add_ad_extensions.

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

Usage Guidelines2/5

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, nor any exclusions or prerequisites. The deletion intent is implied by the name, but the description adds no routing or contextual usage information.

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

delete_ad_groupsУдалить группыA
Destructive

Удалить группы объявлений по их ID. ⚠️ Необратимо.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_group_idsYesГруппы, которые будут удалены безвозвратно

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the irreversibility warning largely repeats structured data. Still, the explicit ⚠️ Необратимо makes the consequence impossible to miss, which is useful for a destructive tool, though it adds nothing about auth, batch limits, or partial-failure behavior.

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

Conciseness5/5

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

Two short sentences front-loading the action and resource, with the risk warning immediately after. Nothing redundant or padded.

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

Completeness3/5

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

For a 1-parameter destructive tool with no output schema, the description covers the action and the irreversibility well, but says nothing about what happens on nonexistent IDs, whether deletion is partial or atomic, or what the agent should verify before calling. Annotations cover the safety profile, so the remaining gap is moderate rather than severe.

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

Parameters3/5

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

Schema description coverage is 100%: the ad_group_ids parameter and its items are already documented with pattern and minItems constraints, and the schema even repeats the irreversible wording. The description adds no syntax or format detail beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb (Удалить) and resource (группы объявлений), scoped by ID. The sibling set contains list_ad_groups, create_ad_group and update_text_ad-style group tools, so naming the deletion action and its keying by ID clearly separates it from sibling operations.

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

Usage Guidelines3/5

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

The description says deletion is by ID, implying the tool is for removing already-known ad groups, but it never states when to choose it over list_ad_groups or other ad-group tools, nor any prerequisites. Usage is only implied through the resource and ID scoping.

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

delete_bid_adjustmentsУдалить корректировки ставокA
Destructive

Удалить корректировки по их ID. Ставка среза возвращается к базовой; отменить удаление нельзя.

ParametersJSON Schema
NameRequiredDescriptionDefault
adjustment_idsYesКорректировки, которые нужно удалить; ID берутся из get_bid_adjustments

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true. The description adds meaningful context: the bid is reset to base and deletion is irreversible. This exceeds what the annotations alone convey, though it doesn't mention auth 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.

Conciseness5/5

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

Two short sentences: the action first, then the consequence/irreversibility. No filler, well front-loaded.

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

Completeness4/5

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

For a destructive single-parameter tool with rich annotations and full schema coverage, the description covers the key behavioral facts (bid reset, no undo). It could mention the maxItems limit or batch nature, but annotations and schema carry most of the remaining burden.

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully documents adjustment_ids including pattern, bounds, and the hint to source IDs from get_bid_adjustments. The description adds no parameter meaning beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource (delete bid adjustments by ID) and clearly distinguishes itself from siblings get_bid_adjustments, add_bid_adjustments, and set_bid_adjustments. It does not explicitly name those siblings, but the delete semantics are unambiguous.

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

Usage Guidelines3/5

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

The description implies usage (delete by ID, references get_bid_adjustments in the schema) but does not explicitly state when to use this tool versus set_bid_adjustments or when not to. Usage is inferable from the verb but not spelled out.

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

delete_retargeting_listsУдалить списки ретаргетингаA
Destructive

Удалить условия ретаргетинга и подбора аудитории по ID; удаление необратимо. Отказ по отдельному условию приходит в ответе списком, а не ошибкой вызова.

ParametersJSON Schema
NameRequiredDescriptionDefault
retargeting_list_idsYesУсловия, которые нужно удалить; ID берутся из list_retargeting_lists

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is destructive. The description adds valuable non-obvious context: deletion is irreversible, and per-item failures are returned in the response list rather than as a tool error. This partial-failure semantics is genuinely useful behavioral detail 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.

Conciseness4/5

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

A single dense sentence covering both the operation and partial-failure behavior. Front-loaded with the action. No wasted words, though could be slightly clearer with punctuation.

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

Completeness3/5

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

Given annotations cover the destructive safety profile and no output schema exists, the description adequately covers core behavior including partial-failure semantics. However, it does not state what permissions are needed or exactly how the failure list is structured in the response, leaving some gaps for a destructive mutation with no output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the single parameter (array of retargeting condition IDs, min 1, max 1000). The description mentions deletion by ID but adds no extra syntax or constraints beyond what the schema provides. Baseline 3 applies when schema does the heavy lifting.

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

Purpose5/5

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

States a specific verb (удалить) and resource (условия ретаргетинга и подбора аудитории), and specifies deletion is by ID. Clearly distinguishable from siblings like add_retargeting_list, update_retargeting_lists, list_retargeting_lists.

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

Usage Guidelines3/5

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

Implies deletion semantics and irreversibility, but does not explicitly state when to use this versus update_retargeting_lists or how to discover IDs. The ID source is noted in the schema (list_retargeting_lists), not the description. Usage is implied rather than guided.

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

delete_vcardsУдалить визиткиA
Destructive

Удалить визитки по ID; удаление необратимо. Отказ по отдельной визитке приходит в ответе списком, а не ошибкой вызова.

ParametersJSON Schema
NameRequiredDescriptionDefault
vcard_idsYesВизитки, которые нужно удалить; ID берутся из list_vcards

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description is not the sole carrier of the safety profile. It nonetheless adds genuinely useful behavior beyond them: irreversibility is stated explicitly, and per-vcard failures surface as a list in the response rather than as a call error — a non-obvious contract worth knowing.

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

Conciseness5/5

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

Two short clauses, no filler, with the destructive/irreversible nature and the unusual error semantics both front-loaded. Every sentence earns its place.

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

Completeness4/5

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

With no output schema, the description admirably covers the key return-behavior quirk (partial failures returned as a list, not an error). It does not discuss the 10000-item limit or atomicity across the whole batch, but it is complete enough to invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100% and there is only one parameter, so the schema already documents that vcard_ids come from list_vcards and enforces the ID pattern. The description's 'по ID' adds nothing new; baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Удалить визитки по ID'), making it immediately distinguishable from the delete siblings (delete_ad_groups, delete_sitelinks, delete_ad_extensions) and paired with list_vcards.

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

Usage Guidelines3/5

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

The tool's usage is implied by 'delete by ID', and the schema points to list_vcards as the ID source, but the description names no alternatives or conditions (e.g., how to delete a single vcard vs many, or when to prefer other tools). Minimum viable.

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

get_account_balanceБаланс аккаунтаB
Read-only

Баланс и финансовая информация аккаунта (Amount, Currency) через Live API v4.

ParametersJSON Schema
NameRequiredDescriptionDefault
loginsNoЛогины аккаунтов для агентского токена; по умолчанию — аккаунт самого токена

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows the safety profile without the description. The description adds that data comes through Live API v4 and what fields are returned, but says nothing about auth requirements, rate limits, or behavior for multiple logins.

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

Conciseness4/5

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

One compact sentence with the resource front-loaded and no filler. It is perhaps slightly terse to the point of omitting useful context, but nothing is wasted.

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

Completeness3/5

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

With no output schema, the description does useful work by naming the returned fields (Amount, Currency). However, for a financial-query tool it omits how the optional logins array affects the response shape and any limits on how many accounts can be queried at once.

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

Parameters3/5

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

Schema description coverage is 100% and the single optional 'logins' parameter is documented in the schema itself (agency-token logins, defaults to the token's own account). The description adds nothing about parameter semantics, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Баланс и финансовая информация аккаунта') and even names the returned fields (Amount, Currency), which is more than most sibling names imply. It does not explicitly differentiate itself from sibling read tools such as get_statistics, but the resource is unambiguous.

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

Usage Guidelines2/5

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

No indication of when this tool should be used versus alternatives, no prerequisites, and no note about whether an agency token context changes the call. The only usage hint is buried in the schema, not the description.

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

get_bid_adjustmentsКорректировки ставокB
Read-only

Получить корректировки ставок кампании или группы: устройства, пол и возраст, аудитории, регионы, платёжеспособность, размещение.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
typesNoФильтр по типу корректировки
levelsYesУровни корректировок: CAMPAIGN и/или AD_GROUP
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
ad_group_idsNoГруппы, корректировки которых нужно получить
campaign_idsNoКампании, корректировки которых нужно получить
adjustment_idsNoКонкретные корректировки по их ID

TDQS

B3.2/5.0
Behavior3/5

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 externally. The description adds that results span several targeting dimensions, but says nothing about pagination, default limits, or ordering, which is the behavior an agent would still wonder about.

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

Conciseness4/5

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

A single front-loaded sentence that opens with the action and immediately lists what is returned. Efficient, though the trailing category enumeration is somewhat long.

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

Completeness3/5

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

For a 7-parameter paginated read with no output schema, the description covers the domain well but omits pagination behavior and how the levels/ad-group/campaign parameters interact. Annotations cover safety, and the schema covers parameter mechanics, so the gap is moderate rather than severe.

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

Parameters3/5

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

Schema description coverage is 100%, so all seven parameters are already documented in the schema. The description's category list loosely maps to the types enum but adds no syntax or format detail beyond it, making the baseline 3 appropriate.

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

Purpose4/5

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

The description names a specific verb (Получить = Get) and resource (bid adjustments), and scopes it to campaign or ad-group level while enumerating the adjustment families (devices, gender/age, audiences, regions, income, placement). The read verb implicitly separates it from set/add/delete siblings, though it never names them explicitly.

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

Usage Guidelines2/5

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

It states only what is returned, with no indication of when to call this versus add_bid_adjustments/set_bid_adjustments/delete_bid_adjustments or any workflow context such as reading current adjustments before modifying them. Usage is left entirely to inference from the verb.

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

get_campaignКампания по IDA
Read-only

Детальная информация о кампании по ID: бюджет (руб), статус и пояснение к нему, даты, статистика, UTM-разметка, цели и их ценность (PriorityGoals), счётчики Метрики, модель атрибуции и прочие настройки. Реальные ID целей — PriorityGoals.Items[].GoalId; GoalId 13 в стратегии — служебное «ключевые цели», то есть оптимизация по этим PriorityGoals. Пустой ответ по ID из веб-интерфейса не значит, что номер неверный: кампании «Баннер на поиске» (MCBANNER) API не отдаёт, по ID они приходят пустыми.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesID рекламной кампании, десятичная строка

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/openWorld annotations, the description discloses non-obvious behavior: MCBANNER campaigns come back empty by ID, empty results do not mean an invalid ID, and the GoalId 13 strategy sentinel semantics. These are exactly the caveats that prevent misdiagnosis of a successful call.

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

Conciseness4/5

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

Purpose is front-loaded and the field list plus caveats each carry information; nothing is filler. It is somewhat dense and long, but the length is justified by the domain-specific edge cases.

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

Completeness5/5

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

No output schema exists, so the description must carry the return shape, and it does so comprehensively (fields returned, nested PriorityGoals semantics, attribution, counters). Combined with the empty-response and MCBANNER caveats, an agent has everything needed to call and interpret this tool.

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

Parameters3/5

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

Only one parameter and schema coverage is 100%, so the schema already documents campaign_id fully (pattern, decimal string). The description's ID-related notes concern interpreting output (PriorityGoals.Items[].GoalId) rather than adding syntax for the input, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource ('детальная информация о кампании по ID') and then enumerates the returned content (budget, status, dates, stats, UTM, PriorityGoals, Metrica counters, attribution). The 'по ID' scope makes it clearly distinct from list_campaigns in the sibling set.

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

Usage Guidelines4/5

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

Gives clear context for when results appear empty (MCBANNER campaigns are not returned by the API) and warns that an empty response does not imply a bad ID, which is real usage guidance. It does not, however, explicitly route the agent to list_campaigns to obtain an ID.

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

get_campaign_negative_keywordsПолучить минус-фразы кампанийC
Read-only

Получить текущие минус-фразы кампаний по их ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idsYesКампании, минус-фразы которых нужно прочитать

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a safe read. The description adds only the word 'текущие' (current), which hints the result reflects live state, but says nothing about pagination, result size, or what happens with unknown IDs.

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

Conciseness4/5

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

One short, front-loaded sentence with no waste. It is tightly scoped, though its brevity borders on under-specification for a retrieval tool.

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

Completeness3/5

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

With one parameter, 100% schema coverage, and annotations covering the safety profile, the essentials are present. However, with no output schema, the description leaves the agent guessing about the shape and volume of the returned negative-keyword data.

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

Parameters3/5

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

Schema coverage is 100% and there is a single well-documented parameter, so the baseline is 3. The phrase 'по их ID' merely restates the campaign_ids parameter without adding format or constraint detail beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource ('получить минус-фразы кампаний'), so an agent knows it reads campaign-level negative keywords. It is distinguishable from the sibling set_campaign_negative_keywords, though it never names that sibling explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites (e.g., needing campaign IDs that already exist), and no routing to alternatives such as list_keywords or set_campaign_negative_keywords. Usage is only implied by the verb.

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

get_changesИзменения объектовB
Read-only

Проверить изменения кампаний, групп и объявлений начиная с указанного времени, а также изменения справочников (mode=dictionaries) и текущее время сервера Директа.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYescampaigns — какие кампании менялись целиком; objects — что изменилось внутри выбранных объектов; dictionaries — менялись ли справочники регионов, часовых поясов и интересов
ad_idsNoОбъявления для mode=objects
timestampNoМомент, начиная с которого искать изменения: YYYY-MM-DDThh:mm:ssZ. Обязателен для campaigns и objects; для dictionaries без него возвращается только текущее время сервера
field_namesNoКакие изменения интересуют; по умолчанию — соответствующие переданным ID
ad_group_idsNoГруппы для mode=objects
campaign_idsNoКампании для mode=objects

TDQS

B3.4/5.0
Behavior3/5

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 one genuinely useful behavioral fact — that dictionaries mode returns only the current server time when timestamp is omitted — but omits return shape, limits (e.g. maxItems 50000) or rate-limit behavior.

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

Conciseness4/5

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

A single front-loaded sentence that leads with the primary resource set and appends the dictionaries special case. No filler, though cramming three distinct modes into one clause reduces scannability slightly.

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

Completeness3/5

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

For a 6-parameter, mode-driven tool with no output schema and no return-value documentation, the description covers the modes but not what the response contains or how field_names interacts with the ID filters. Adequate but leaves meaningful gaps for a polling/change-detection tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents mode, timestamp requirement per mode, and each ID list. The description largely restates the mode=dictionaries behavior rather than adding new semantics, so the baseline of 3 is appropriate.

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

Purpose4/5

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

States a concrete verb ('Проверить изменения') and the resources covered (campaigns, groups, ads, dictionaries), and explicitly names mode=dictionaries. It is distinguishable from siblings like get_statistics or list_campaigns, though the mapping to the 'objects' mode is left implicit.

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

Usage Guidelines3/5

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

Usage is implied: use it to poll for changes since a given time. However, it never says when to prefer this over sibling reads such as get_campaign/get_statistics, nor does it state exclusions or prerequisites (e.g. that it is a change-feed rather than a full fetch).

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

get_keyword_auctionАукцион по фразамA
Read-only

Сколько стоит показ: ставки и списываемые цены по позициям, ставки конкурентов, минимальная цена входа. Всё в рублях. Позиции — P11–P14 (спецразмещение над выдачей) и P21–P24 (гарантия под выдачей); у каждой Bid — сколько надо поставить, Price — сколько спишется на деле. Отбор по одному уровню: фразы, группы или кампании. Цену аукциона показывает для любой кампании, но ставкой она управляется только при ручном управлении: на автостратегии (любая WB_*, AVERAGE_CPA, AVERAGE_CPC и прочие) ставки назначает Директ, и set_keyword_bids там ничего не даст. Стратегию кампании проверяйте через get_strategy.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
keyword_idsNoАукцион по указанным фразам
ad_group_idsNoАукцион по всем фразам указанных групп
campaign_idsNoАукцион по всем фразам указанных кампаний

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only declare readOnlyHint and openWorldHint. The description adds real behavioral context beyond them: all values are in rubles, what Bid vs Price mean, and the critical caveat that autostrategy campaigns (WB_*, AVERAGE_CPA/CPC) make bidding inapplicable. It does not discuss pagination behavior, which 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.

Conciseness4/5

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

Dense and front-loaded, leading with what is returned before scoping and caveats. It is long, but nearly every clause carries operational value; the position-range enumeration is the only slightly verbose stretch.

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

Completeness5/5

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

There is no output schema, so the description carries the burden of explaining return fields (Bid, Price, positions, currency) and does so thoroughly, plus it covers the manual-vs-autostrategy prerequisite. 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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: the three ID-array parameters are mutually exclusive by level ('отбор по одному уровню'), which tells the agent not to combine keyword_ids, ad_group_ids, and campaign_ids.

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

Purpose5/5

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

States a specific resource and scope: auction pricing (Bid/Price) per position P11–P14 and P21–P24, competitor bids and minimum entry price. It also distinguishes itself from set_keyword_bids and get_strategy by naming them and the condition that separates them.

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

Usage Guidelines5/5

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

Explicitly says selection works at one level (keywords, groups, or campaigns), that price is viewable for any campaign but bidding only applies under manual management, and routes the agent to get_strategy to check, noting set_keyword_bids is useless under autostrategies. When-to-use, when-not, and alternatives are all present.

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

get_regionsСправочник регионовA
Read-only

Справочник кодов регионов (GeoRegions) для таргетинга. Фильтр по названию, 225 = Россия. with_parents=true показывает вложенность и различает одноимённые города.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько регионов вернуть, максимум 500
searchNoФильтр по названию региона: подстрока без учёта регистра, например «москва»
with_parentsNoПоказать, во что вложен регион (Новосибирск → Новосибирская область, Россия) — так различаются одноимённые города. По умолчанию выключено; требует search. Ищет при этом сам Директ — по похожему названию, а не подстрокой, как кэшированный справочник

TDQS

A3.5/5.0
Behavior3/5

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

readOnlyHint and openWorldHint already declare the safe, external-read nature, so the safety profile is covered. The description adds useful domain facts beyond annotations — the magic code 225 = Россия and that with_parents distinguishes same-named cities — but return/pagination behavior is left to be inferred.

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

Conciseness4/5

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

Three short, front-loaded fragments with no filler: resource first, then filter hint, then the with_parents behavior. Efficient and easy to scan, though telegraphic rather than fully structured.

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

Completeness4/5

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

For a read-only reference lookup with 100% schema coverage and no output schema, the description supplies enough context (what the regions are, the key code, the special with_parents toggle). Nothing essential to a correct call is missing, though a note on result shape would round it out.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented in the schema, making 3 the baseline. The description largely restates the with_parents semantics already present in the schema; the 225 = Россия fact is extra context but not tied to a specific parameter.

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

Purpose4/5

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

The description names the resource concretely — a reference of region codes (GeoRegions) — and frames its purpose (для таргетинга), so an agent knows this is a lookup tool rather than a campaign mutator. It does not explicitly contrast itself with any sibling, but the resource is clear enough to disambiguate from the surrounding campaign tools.

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

Usage Guidelines3/5

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

Usage is only implied: 'для таргетинга' and 'Фильтр по названию' suggest when the tool is relevant, but there is no explicit when-to-use/when-not and no named alternative (e.g. get_time_targeting or get_campaign). Adequate but leaves the agent to infer the trigger conditions.

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

get_search_queriesПоисковые запросыA
Read-only

Отчёт по фактическим поисковым запросам для анализа и добавления минус-фраз.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoПоля отчёта; по умолчанию Query, CampaignId, CampaignName, AdGroupId, AdGroupName, Criterion, Impressions, Clicks, Cost
date_toYesПоследний день периода включительно, YYYY-MM-DD
date_fromYesПервый день периода, YYYY-MM-DD
campaign_idsYesКампании, по которым нужен отчёт о поисковых запросах

TDQS

A3.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds only that queries are 'actual' but omits pagination, authentication, response format, or other behavioral traits 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler or redundancy. Every word contributes to stating the tool's purpose and use case.

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

Completeness3/5

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

For a read-only report tool with fully documented parameters and safety annotations, the description conveys the core purpose. However, it omits usage details and expected output information, and since there is no output schema, more context could have been provided.

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

Parameters3/5

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

With 100% schema description coverage, the schema fully documents all four parameters, including the optional fields list and date formats. The description provides no additional parameter meaning, so the baseline of 3 is appropriate.

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

Purpose4/5

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

States a specific verb (report) and resource (actual search queries) with its analysis purpose, distinguishing it from keyword-management siblings. However, it does not explicitly name alternative tools for related tasks, so it falls 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.

Usage Guidelines4/5

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

The description gives a clear use case: for analyzing search queries and adding negative phrases. It provides context but does not mention when to use alternatives or any exclusions, so 4 rather than 5.

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

get_statisticsСтатистикаB
Read-only

Статистика кампаний за период: показы, клики, расход (руб), CTR, CPC (ReportService, TSV).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoПоля отчёта; по умолчанию Date, CampaignName, Impressions, Clicks, Cost, Ctr, AvgCpc. Деньги приходят в рублях
date_toYesПоследний день периода включительно, YYYY-MM-DD
date_fromYesПервый день периода, YYYY-MM-DD
campaign_idsYesКампании, по которым строится отчёт

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safe-read nature is covered structurally. The description adds useful context beyond that: money is returned in rubles, output is TSV, and the backing service is ReportService. It does not disclose limits on campaign count, date-range constraints, or any 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.

Conciseness4/5

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

A single dense sentence with the resource and metric list front-loaded and no filler. The trailing '(ReportService, TSV)' parenthetical is compact and informative, though slightly implementation-flavored for a description.

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

Completeness3/5

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

With no output schema, the description does double duty and partially covers it by listing the metric columns and the TSV format. However, it omits how many campaigns can be queried at once, any date-range limits, and whether results are aggregated or per-day, leaving gaps for a reporting tool.

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

Parameters3/5

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

Schema description coverage is 100% (all four parameters documented, including default fields and the ruble note), so the schema carries the parameter burden. The description's 'расход (руб)' only echoes what the schema already states about currency. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb+resource ('Статистика кампаний за период') and enumerates the metrics returned (показы, клики, расход, CTR, CPC). It is clearly distinguishable from sibling tools like get_campaign or list_campaigns, which manage entities rather than report metrics. No explicit sibling differentiation is needed here since none of the siblings are statistics tools.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives, no prerequisites (e.g. campaign must exist), and no exclusions. The period and campaign scope are implied only by the required parameters, not by the description text.

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

get_strategyСтратегия кампанииA
Read-only

Получить текущую стратегию показов текстово-графической кампании вместе с целями (PriorityGoals), счётчиками и моделью атрибуции. Реальные ID целей Метрики, по которым работает кампания, — TextCampaign.PriorityGoals.Items[].GoalId (рядом их ценность Value в рублях), счётчики — CounterIds. GoalId внутри BiddingStrategy бывает служебным: 13 — «оптимизировать по ключевым целям», то есть по тем же PriorityGoals; 12 — «Вовлечённые сессии». Названий целей API Директа не отдаёт — они есть только в Метрике.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesID текстово-графической кампании

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description goes further with non-obvious domain behavior: that GoalId in BiddingStrategy can be a service value (13 = key goals, 12 = engaged sessions) and that the Direct API never returns goal names. This is real added context 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.

Conciseness4/5

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

The purpose is front-loaded in the first sentence, followed by dense but relevant detail on return fields and the service-GoalId gotcha. Slightly long for a one-parameter read, but every sentence carries domain value rather than filler.

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

Completeness4/5

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

With no output schema, the description carries the burden of explaining returns and does so with concrete field paths (TextCampaign.PriorityGoals.Items[].GoalId, CounterIds) and the Value-in-rubles detail. Coverage is strong; pagination/error behavior is not addressed but is minor for this call.

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

Parameters3/5

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

Schema description coverage is 100% for the single campaign_id parameter, so the schema already documents it fully. The description adds nothing about the parameter itself, matching the baseline-3 rule when the schema does the work.

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

Purpose5/5

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

States a specific verb ('Получить') and resource (current impression strategy of a text-graphic campaign) and enumerates what comes with it: PriorityGoals, counters, attribution model. An agent can immediately tell this apart from set_strategy and from get_campaign.

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

Usage Guidelines3/5

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

Usage is only implied: it reads the current strategy, so it is the read-side counterpart of set_strategy. There is no explicit when-to-use/when-not guidance and no named alternative for the cases where get_campaign would suffice.

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

get_time_targetingРасписание показов кампанииB
Read-only

Временной таргетинг кампании: часовой пояс, часы показов по дням недели, почасовые коэффициенты и настройка праздников.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesID кампании, десятичная строка

TDQS

B3.2/5.0
Behavior3/5

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 no behavioral context beyond that — no mention of permissions, rate limits, or response shape — but it does scope what the resource contains, which is mild added value.

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

Conciseness4/5

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

A single compact sentence with the resource stated first and no filler. It is well front-loaded, though as a fragment it stops short of fully specifying the tool's behavior.

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

Completeness4/5

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

With no output schema, the description usefully enumerates the fields the resource exposes (time zone, weekday hours, hourly coefficients, holidays), effectively standing in for a return-value description. For a one-parameter read-only getter this is close to complete; only the retrieval framing is missing.

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

Parameters3/5

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

Schema description coverage is 100% with a single documented campaign_id parameter (pattern and format included), so the schema already carries the semantics. The description adds nothing about the parameter, making the baseline 3 appropriate.

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

Purpose4/5

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

The description names a specific resource (campaign time targeting) and enumerates its components: time zone, display hours per weekday, hourly coefficients, and holiday settings. Combined with the get_ prefix it is distinguishable from the sibling set_time_targeting, but the description never states the retrieval action explicitly — it is a noun phrase describing the resource rather than a verb+resource statement.

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

Usage Guidelines2/5

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 set_time_targeting or the other campaign getters, and no prerequisites (e.g. needing campaign_id to exist) are mentioned. The read-only nature must be inferred entirely from the name and annotations.

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

list_ad_extensionsСписок уточненийB
Read-only

Получить уточнения (callouts) с их статусами и текстом.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
statesNoФильтр по состоянию уточнения
statusesNoФильтр по статусу модерации уточнения
ad_extension_idsNoКонкретные уточнения; без них возвращаются все

TDQS

B3.2/5.0
Behavior3/5

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 that returned items include statuses and text, but says nothing about pagination behavior despite limit/offset parameters, leaving a meaningful gap for a list tool with no output schema.

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

Conciseness4/5

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

A single short, front-loaded sentence with no filler. It is efficient, though arguably too terse to earn full marks given the tool's five-parameter surface.

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

Completeness3/5

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

For a five-parameter, zero-required list tool with no output schema and only readOnly/openWorld annotations, the description is minimal. It hints at return content (statuses and text) but omits pagination behavior and the relationship between the states and statuses filters, leaving the agent to rely wholly on the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (limit, offset, states, statuses, ad_extension_ids) is already documented in the schema. The description adds no syntax, format, or filter semantics beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb ('Получить') and resource ('уточнения (callouts)'), and the bilingual gloss disambiguates the term. It does not explicitly distinguish itself from the add_ad_extensions/delete_ad_extensions siblings, but the read/list nature is clear from the name and description together.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives such as add_ad_extensions, delete_ad_extensions, or the sitelink listers. No prerequisites or exclusions are stated; usage must be inferred entirely from the name.

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

list_ad_groupsСписок группB
Read-only

Группы объявлений выбранных кампаний: названия, регионы, статусы.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
campaign_idsYesКампании, группы которых нужно выбрать

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safe-read nature is covered by structured data. The description adds that results are scoped to selected campaigns and enumerates returned fields, which is modest extra context but doesn't discuss pagination or result size limits beyond what the schema covers.

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

Conciseness4/5

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

A single short sentence, front-loaded with the resource and scope. Nothing wasted, though the field list is a bit thin for the space allotted.

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

Completeness3/5

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

For a read-only list tool with full schema coverage and annotations covering safety, the description is minimally adequate. It lacks explicit guidance on pagination behavior, expected result volume, or how it relates to sibling list tools, but nothing essential for a correct call is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (campaign_ids, limit, offset) are already documented in the schema, including pagination semantics for offset. The description adds no parameter-level detail beyond what the schema provides, so baseline 3 applies.

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

Purpose4/5

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

States verb+resource: lists ad groups of selected campaigns and the fields returned (names, regions, statuses). Clear purpose, though it doesn't explicitly distinguish itself from sibling list tools like list_campaigns or list_ads beyond the resource name itself, which is fairly self-evident.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, no mention of alternatives. The agent must infer from the name alone that this is the read-side complement to create_ad_group/delete_ad_groups.

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

list_adsСписок объявленийA
Read-only

Объявления в группах: заголовки, тексты, ссылки, статусы, тип и подтип объявления, привязанные сайтлинки, визитка и изображение. Причина отказа модерации приходит в StatusClarification. Отбор только по группам — по ID объявления не ищет. Архивные приходят наравне с активными. Список может быть неполным: объявления, тексты которых генерирует нейросеть Яндекса, через API недоступны и в выдачу не попадают, а по ответу это никак не видно. Поэтому «в группе только эти объявления» из ответа не следует — ни из пустого, ни из непустого; для полноты картины сверяйтесь с интерфейсом Директа.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
ad_group_idsYesГруппы, объявления которых нужно выбрать

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, it discloses two non-obvious behavioral traits: the result set silently omits ads whose copy is neural-network generated (and no signal of this appears in the response), and the moderation rejection reason surfaces in StatusClarification. This is exactly the kind of context annotations cannot carry, and it warns the agent not to infer absence from the output.

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

Conciseness4/5

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

Dense but front-loaded: the returned fields come first, then the filtering constraint, then the incompleteness caveat. Every sentence carries information, though the paragraph is heavy and the caveat about neural-network ads could be tightened without losing meaning.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so: it names the fields, where the rejection reason lives, and critically warns that the list can be incomplete in a way invisible to the caller. An agent has everything needed to call and correctly interpret the result.

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

Parameters4/5

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

Schema coverage is 100% so the schema already documents limit, offset and ad_group_ids. The description adds a genuine constraint not in the schema: ad_group_ids is the only selector and ad-ID lookup is not supported, which clarifies how the parameter must be used.

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

Purpose5/5

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

States a specific verb+resource (listing ads within ad groups) and enumerates the returned fields (titles, texts, links, statuses, type/subtype, sitelinks, vcard, image). It is clearly distinguishable from write-oriented siblings like manage_ads, moderate_ads and create_text_ad, and from list_ad_groups by its resource scope.

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

Usage Guidelines4/5

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

Gives clear scoping rules — selection is by group only, not by ad ID, and archived ads are returned alongside active ones — plus a caution to cross-check the Direct UI for completeness. It stops short of explicitly naming a sibling alternative for other lookup modes, but the context for when this tool applies is unambiguous.

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

list_audience_targetsАудиторные целиB
Read-only

Получить условия нацеливания на аудиторию по ID кампании, группы, ретаргетинга или интереса.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
statesNoФильтр по состоянию: ON или SUSPENDED
ad_group_idsNoУсловия выбранных групп
campaign_idsNoУсловия выбранных кампаний
interest_idsNoУсловия, построенные на этих интересах
audience_target_idsNoКонкретные условия нацеливания
retargeting_list_idsNoУсловия, построенные на этих списках ретаргетинга

TDQS

B3.2/5.0
Behavior3/5

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 nothing further — no pagination behavior, no indication of whether multiple filter IDs are combined with AND or OR, and no note on result size.

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

Conciseness5/5

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

A single front-loaded sentence with no wasted words; the verb and the filter dimensions arrive immediately.

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

Completeness2/5

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

For an 8-parameter listing tool with no output schema, the description omits how results are returned, how paging works (the offset/limit pair is only explained inside the schema), and whether supplying no filter IDs is valid. Given no annotations beyond read/open-world, this is under-specified.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (limit, offset, states, and the five ID-array filters) is already documented in the schema. The description's mention of campaign/group/retargeting/interest IDs mirrors the schema rather than extending it, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb ("Получить") and resource ("условия нацеливания на аудиторию"), plus the four ID dimensions it can be queried by. It does not explicitly name the sibling set_audience_targets, but the get-vs-set distinction is readable from the name and title.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no statement of prerequisites (e.g. at least one filter ID), and no pointer to set_audience_targets for modifications or to list_retargeting_lists for resolving list IDs. Usage must be inferred entirely from the verb.

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

list_businessesПрофили организацийB
Read-only

Получить доступные профили организаций из Яндекс Бизнеса.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
business_idsNoКонкретные профили; без них возвращаются все доступные

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds only that profiles are 'доступные' (available), which hints at access scoping, but does not disclose pagination, rate limits, or return format. With annotations covering the basics, this is a minimal addition. Score 3.

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

Conciseness5/5

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

A single sentence with no wasted words, front-loading the verb and resource. Appropriately sized for the tool's simplicity. Score 5.

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

Completeness3/5

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

For a list tool with three optional parameters, no output schema, and annotations covering safety, the description is adequate but minimal. It does not explain pagination or the shape of returned profiles, leaving some gaps. Score 3.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented in the input schema. The description adds no parameter-level meaning beyond what the schema provides. Baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb ('Получить') and resource ('доступные профили организаций из Яндекс Бизнеса'), making the tool's purpose clear. It does not explicitly differentiate from sibling tools, but the domain (business profiles) is unique among the siblings. Score 4.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives or in what contexts. The description only says what it does, not when to invoke it. Score 2.

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

list_campaignsСписок кампанийA
Read-only

Список рекламных кампаний Яндекс.Директ с фильтрацией по статусу и типу. Бюджеты — в рублях. По умолчанию возвращается узкий набор полей; нужны другие (Funds, TimeZone, NegativeKeywords и прочие из CampaignFieldEnum) — перечислите их в fields. Кампаний «Баннер на поиске» (MCBANNER) API не отдаёт вовсе: их нет в списке, и это граница API, а не ошибка логина или фильтра — такие кампании видны только в веб-интерфейсе.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
typesNoФильтр по типам кампаний
fieldsNoКакие поля вернуть; по умолчанию Id, Name, Status, StatusClarification, State, DailyBudget, StartDate, Type, Statistics
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
statusNoФильтр по статусу модерации кампании

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, openWorldHint), so the description goes beyond by disclosing a non-obvious behavioral boundary: MCBANNER campaigns are absent by API design, not by filter or auth failure — an important trap for an agent. It also discloses currency units and the default projection, though it says nothing about rate limits or result caps beyond 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.

Conciseness4/5

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

Four sentences, front-loaded with purpose then progressively adding field behavior and the API-boundary caveat. Each sentence carries information, though the default-field enumeration slightly overlaps the schema text.

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

Completeness5/5

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

With no output schema, the description compensates by stating what is returned by default, how to widen the projection, and which campaigns will never appear. For a 5-parameter, read-only list tool this covers everything 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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: budgets are denominated in rubles (relevant to DailyBudget/Funds), the default returned field set, and the purpose of 'fields'. The default-field list is partly duplicated from the schema, keeping it from a 5.

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

Purpose5/5

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

States a specific verb and resource ("Список рекламных кампаний Яндекс.Директ") plus the supported filter dimensions (status and type). The plural 'список' clearly separates it from the singular get_campaign sibling without needing further contrast.

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

Usage Guidelines4/5

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

Explains how to operate the tool: default field set applies, and other CampaignFieldEnum fields must be requested explicitly via 'fields'. It also sets expectations that MCBANNER campaigns are never returned. It lacks explicit when-to-use-vs-alternative routing (e.g. vs get_campaign or manage_campaigns), so it stops 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.

list_dynamic_targetsДинамические целиC
Read-only

Получить условия нацеливания динамических текстовых объявлений.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
statesNoФильтр по состоянию: ON или SUSPENDED
ad_group_idsNoЦели выбранных групп
campaign_idsNoЦели выбранных кампаний
dynamic_target_idsNoКонкретные динамические цели

TDQS

C2.9/5.0
Behavior2/5

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 no behavioral context such as pagination behavior, authentication needs, rate limits, or what happens with large limits/states filters. It only restates the purpose.

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

Conciseness5/5

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

A single front-loaded sentence that states the action and resource with no filler, repetition, or wasted words. It is appropriately sized for its scope.

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

Completeness2/5

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

For a six-parameter list tool with no output schema, the description lacks routing information to separate it from manage_dynamic_targets and does not summarize return content or filtering behavior. Although the schema and annotations provide structured details, the description itself is too thin to fully guide selection and invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters (limit, offset, states, ad_group_ids, campaign_ids, dynamic_target_ids) are fully documented in the schema. The description does not mention any parameters or add semantic meaning beyond what the schema provides, warranting the baseline score.

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

Purpose4/5

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

States a specific verb 'Получить' (get) and a clear resource 'условия нацеливания динамических текстовых объявлений' (targeting conditions of dynamic text ads). It does not explicitly differentiate from the sibling manage_dynamic_targets beyond the tool name, but the purpose is otherwise clear.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus manage_dynamic_targets or list_audience_targets. There are no exclusions, prerequisites, or context signals in the description; usage must be inferred entirely from the name and sibling list.

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

list_feedsСписок фидовB
Read-only

Получить товарные фиды, их источники, статусы обработки и связанные кампании.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
feed_idsNoКонкретные фиды; без них возвращаются все фиды аккаунта

TDQS

B3.2/5.0
Behavior3/5

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 useful context about what data is returned (sources, processing statuses, related campaigns), but says nothing about pagination, filtering behavior, or result limits beyond what the schema implies.

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

Conciseness4/5

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

A single, efficient sentence with no filler and the resource front-loaded. It is appropriately sized, though minimal enough that it leaves room for additional usage context.

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

Completeness3/5

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

For a read-only list tool with annotations covering safety and 100% schema coverage, the essentials are present. However, with no output schema, the description's brief enumeration of returned fields is thin and pagination behavior (offset/LimitedBy) is left unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, so limit, offset, and feed_ids are already fully documented in the schema. The description adds no additional parameter meaning or syntax, matching the baseline 3 when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb ('Получить') and resource ('товарные фиды') and enumerates what it returns (sources, processing statuses, related campaigns). No sibling tool covers feeds, so there is no alternative to disambiguate from, but the scope is clear.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance, prerequisites, or conditions. It only describes output content, leaving the agent to infer that this is the unfiltered account-level feed listing on its own.

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

list_keywordsСписок ключевых словB
Read-only

Ключевые фразы в группах объявлений: фразы, ставки (руб), статусы. По умолчанию возвращается узкий набор полей; нужны другие (StatisticsSearch, StatisticsNetwork, Productivity, ServingStatus и прочие из KeywordFieldEnum) — перечислите их в fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
fieldsNoКакие поля вернуть; по умолчанию Id, Keyword, CampaignId, AdGroupId, Status, State, Bid, ContextBid
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
ad_group_idsYesГруппы, ключевые фразы которых нужно выбрать

TDQS

B3.2/5.0
Behavior3/5

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 useful behavior beyond that: a narrow default field set is returned unless the caller expands it via fields. It does not mention pagination or return shape, but with annotations present 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.

Conciseness4/5

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

Two compact sentences with the resource and purpose front-loaded, followed by the field-selection caveat. No wasted words, though the parenthetical field examples are borderline redundant against the enum in the schema.

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

Completeness3/5

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

For a read-only filtered-list tool with full schema coverage and no output schema, the essentials are present. However, it omits pagination/offset behavior and does not clarify how results relate to sibling listing tools, leaving modest gaps.

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

Parameters3/5

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

Schema coverage is 100%, so both the fields enumeration and the default field list are already documented in the schema. The description reinforces this by naming KeywordFieldEnum and example fields, but adds little the schema does not already provide. Baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource: keywords ("ключевые фразы") in ad groups, with the returned data types (phrases, bids in rubles, statuses). It is clearly a read/list operation distinguishable from add_keywords/update_keywords, though it does not call out those siblings explicitly.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance or reference to alternatives. The agent must infer that this is the read counterpart to add_keywords/update_keywords/manage_keywords purely from the verb in the name; the description provides no conditions, prerequisites, or exclusions.

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

list_negative_keyword_shared_setsОбщие наборы минус-фразC
Read-only

Получить общие наборы минус-фраз аккаунта.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
set_idsNoКонкретные наборы; без них возвращаются все наборы аккаунта

TDQS

C2.9/5.0
Behavior2/5

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 only the account-level scoping, with nothing about pagination behavior, result ordering, or that set_ids narrows the result set beyond the schema text.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler. It is efficient, though arguably under-specified rather than ideally concise for a listing tool.

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

Completeness3/5

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

For a simple read-only list tool with a fully documented schema and readOnly annotations, the definition is minimally adequate. With no output schema, a note on what a returned set contains would have added value, but nothing essential to invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (limit, offset, set_ids) are already fully documented in the schema. The description contributes no additional parameter meaning, which is the baseline case.

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

Purpose4/5

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

States a specific verb ('Получить') and resource ('общие наборы минус-фраз аккаунта'), so the agent knows exactly what it retrieves. It does not distinguish itself from the sibling manage_negative_keyword_shared_sets (which likely also lists/manages these sets) or from get_campaign_negative_keywords, leaving some ambiguity about scope.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives such as the campaign- or ad-group-level negative keyword tools. Usage is only implied by the verb.

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

list_retargeting_listsСписки ретаргетингаC
Read-only

Получить условия ретаргетинга и подбора аудитории с правилами и областью применения.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
typesNoФильтр по типу: RETARGETING — цели Метрики, AUDIENCE — сегменты Аудиторий
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
retargeting_list_idsNoКонкретные условия; без них возвращаются все

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a safe, potentially unbounded read. The description adds little beyond restating that it retrieves rules and scope, but doesn't contradict annotations. It fails to disclose pagination limits (though maxItems hints at 10000), rate limits, or output structure.

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

Conciseness3/5

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

The description is a single, reasonably concise sentence with no wasted words. However, it is under-specified and front-loads only the general purpose, leaving key details (filtering, pagination) to the schema. It's efficient but lacks informative structure.

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

Completeness3/5

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

For a read-only list tool with full schema coverage and no output schema, the description covers the basic purpose but omits important context: that it supports filtering by type and specific IDs, and that it may paginate. Given the sibling tools include update/delete/add variants, more guidance on distinguishing this as the 'list' operation would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all four parameters including limit, types enum, offset, and retargeting_list_ids. The description adds no parameter-specific information, which is acceptable given the high coverage. Baseline 3 is appropriate.

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

Purpose3/5

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

The description states a verb ('Получить') and resource ('условия ретаргетинга и подбора аудитории'), which gives a general sense of retrieval. However, it doesn't differentiate from siblings like list_audience_targets, list_dynamic_targets, or list_negative_keyword_shared_sets, all of which are also list operations. The scope is vague about what 'область применения' means in practice.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_audience_targets or list_dynamic_targets. There's no mention of prerequisites, pagination behavior, or when filtering by types is appropriate. The agent is left to infer usage context entirely.

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

list_time_zonesСправочник часовых поясовB
Read-only

Справочник часовых поясов (TimeZones) для set_time_targeting и create_campaign. Фильтр по коду или названию.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько часовых поясов вернуть, максимум 500
searchNoФильтр по коду или названию пояса: подстрока без учёта регистра, например «moscow» или «Екатеринбург»

TDQS

B3.4/5.0
Behavior3/5

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 only the consumer context (set_time_targeting, create_campaign) and the filter capability; it does not cover the 50-item default limit behavior, pagination, or result size, which would be valuable given the maximum of 500.

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

Conciseness4/5

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

Two short sentences, front-loaded with the resource and followed by the filter capability. Efficient, though the consumer list could be integrated more tightly and the sentence stops short of stating the retrieval action.

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

Completeness3/5

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

For a simple two-parameter read-only lookup with no output schema, the essentials (resource, filter, consumers) are present. But the description omits the default limit of 50 and the maximum of 500, which materially affect how an agent should call it, and does not clarify its relationship to get_regions.

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

Parameters3/5

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

Schema description coverage is 100%, with both limit (default 50, max 500) and search (substring, case-insensitive, examples) fully documented in the schema. The description merely echoes the filter capability ('Фильтр по коду или названию') without adding format or syntax beyond what the schema already provides.

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

Purpose4/5

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

States a specific resource (time zone reference list) and its consumers (set_time_targeting, create_campaign), which helps position it against siblings like get_regions. However, it describes itself as a 'справочник' (reference/directory) rather than clearly stating the verb (list/retrieve), leaving the action implicit.

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

Usage Guidelines3/5

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

Naming set_time_targeting and create_campaign implies this is a lookup to support those operations, giving useful context. But there is no explicit when/when-not guidance, no mention of the read-only nature in prose, and no differentiation from get_regions, which is a closely related sibling.

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

list_vcardsСписок визитокA
Read-only

Получить виртуальные визитки по ID или найти их через объявления выбранных кампаний.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
vcard_idsNoКонкретные визитки по их ID
campaign_idsNoНайти визитки, привязанные к объявлениям этих кампаний

TDQS

A3.6/5.0
Behavior3/5

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 only the two retrieval modes and nothing about pagination, result caps, or how campaign-based lookup behaves. Given the lower bar set by annotations, 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.

Conciseness5/5

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

A single, front-loaded sentence that names the resource and both retrieval modes with no filler or redundancy. Every clause earns its place.

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

Completeness4/5

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

For a read-only list tool with four optional parameters fully documented in the schema and clear annotations and no output schema, the description covers the essential access paths. It omits pagination framing and typical result shape, but the schema and annotations carry enough that an agent can call it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with limit, offset, vcard_ids, and campaign_ids each documented in the schema itself. The description's mention of IDs and campaign-linked ads adds marginal framing but no syntax or format detail beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb (получить/найти) and resource (виртуальные визитки), and clearly distinguishes itself from the mutation siblings add_vcard and delete_vcards by being a read/list operation. It also names the two distinct retrieval paths (by ID vs. via campaign ads), which helps disambiguate intent.

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

Usage Guidelines3/5

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

The sentence implies the two usage modes — pass IDs directly or select campaigns whose ads carry the vCards — which maps loosely to the vcard_ids and campaign_ids parameters. However, it gives no explicit guidance on when to prefer one path over the other, no prerequisites, and no exclusions, leaving usage inference to the agent.

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

manage_ad_imagesУправление изображениямиB
Destructive

Загрузить, получить или удалить изображения объявлений (AdImages). Для add данные передаются в base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoСколько объектов вернуть (максимум 10000)
actionYesЧто сделать: add, get или delete (необратимо)
imagesNoИзображения для загрузки; обязателен при action=add
offsetNoСмещение выборки: сюда передаётся LimitedBy предыдущей страницы
associatedNoФильтр при action=get: YES — только привязанные к объявлениям, NO — только свободные
ad_image_hashesNoХеши изображений: фильтр при action=get, обязателен при action=delete

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true, so the safety profile is covered externally. The description's only added behavioral detail is the base64 encoding requirement for add, which largely duplicates the schema's 'image_data' description; it does not say which action is irreversible or what constraints apply.

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

Conciseness4/5

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

A single front-loaded sentence naming the three actions, followed by one short conditional clause. Both clauses earn their place and there is no filler, though the whole definition is thin for a six-parameter destructive tool.

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

Completeness3/5

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

For a multi-action tool with a destructive delete branch, the description covers only the add path and omits any framing of the read/filter or delete flows. With no output schema this is acceptable on return values, but the description does not help an agent understand which parameters matter for which action beyond what the schema already spells out.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters (action, images, limit, offset, associated, ad_image_hashes) are documented in the schema itself, including per-action applicability and the irreversibility of delete. The description's base64 note adds nothing beyond what 'image_data' already states, so the baseline 3 applies.

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

Purpose4/5

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

The description names a specific resource (AdImages / объявления изображения) and enumerates the three operations (upload, get, delete), so an agent immediately knows this is a multi-action image CRUD tool. It does not need to differentiate from siblings since no other tool in the list touches ad images, but it also makes no explicit contrast.

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

Usage Guidelines3/5

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

Usage is only implied through the action list and the one conditional hint ('Для add данные передаются в base64'). There is no guidance on when to choose get vs delete, no prerequisites, and no exclusions relative to any sibling tool.

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

manage_adsУправление объявлениямиA
Destructive

Действие над объявлениями: suspend/resume/archive/unarchive/moderate/delete. ⚠️ delete необратимо.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesДействие: suspend, resume, archive, unarchive, moderate или delete (необратимо)
ad_idsYesОбъявления, над которыми выполняется действие

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds the pinpointed fact that specifically 'delete' is irreversible (⚠️ delete необратимо), which is genuinely additive over the blanket destructive flag. It still omits permission requirements and what suspend/archive do to live serving, but clears the lowered bar set by annotations.

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

Conciseness5/5

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

Two compact sentences with the action set front-loaded and the destructive caveat attached directly to the dangerous action. No filler; every clause earns its place.

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

Completeness3/5

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

Adequate for a 2-param mutation tool with full schema coverage and safety annotations, and no output schema to explain. But for a six-action destructive tool it omits what non-delete actions actually change and any preconditions, leaving clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so both 'action' (enum) and 'ad_ids' are fully documented in the schema, including the irreversibility note on delete. The description only restates the enum values already present, adding no syntax or format detail beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

States a clear verb+resource ('Действие над объявлениями') and enumerates the exact action set, so the agent knows precisely what the tool does. However, it offers no differentiation from the sibling 'moderate_ads', which appears to overlap with the 'moderate' action listed here, nor from delete_ad_groups/list_ads.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives. The agent is not told when to pick manage_ads versus moderate_ads or the create/update_text_ad siblings, despite the overlap.

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

manage_campaignsУправление кампаниямиA
Destructive

Запустить, остановить, архивировать, разархивировать или удалить кампании. ⚠️ delete необратимо и недоступен кампании с накопленной статистикой — такую только архивировать.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesДействие: suspend, resume, archive, unarchive или delete (необратимо)
campaign_idsYesID кампаний, над которыми выполняется действие

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety class is covered. The description goes beyond them by stating delete is irreversible and, importantly, that it fails for campaigns with accumulated statistics — a real operational constraint the annotations cannot convey.

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

Conciseness5/5

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

Two front-loaded sentences: the action list first, then the warning. No filler, and the emoji flag efficiently surfaces the one destructive caveat.

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

Completeness4/5

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

For a batch mutation tool with fully covered params and annotations carrying the destructive profile, the essentials are present. It could mention per-campaign result handling or partial failure behavior, but that is a minor gap with no output schema to lean on.

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

Parameters3/5

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

Schema description coverage is 100%, so the enum values and campaign_ids are already documented, which sets the baseline at 3. The description echoes the action list and adds the delete restriction, but adds little on the campaign_ids container (batch size, ordering, partial behavior) beyond the schema.

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

Purpose4/5

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

The description names the resource (campaigns) and enumerates the specific batch actions (start, stop, archive, unarchive, delete), so the agent immediately understands it is a state-change tool. It does not explicitly contrast itself against update_campaign/create_campaign siblings, but the action list is unambiguous enough to distinguish it.

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

Usage Guidelines4/5

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

It gives a concrete when-not rule: delete is unavailable for campaigns with accumulated statistics, and such a campaign can only be archived. That routing guidance is genuinely useful. It stops short of explaining when to reach for manage_campaigns versus update_campaign or list_campaigns.

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

manage_dynamic_targetsУправление динамическими целямиB
Destructive

Создать, изменить ставки, остановить, возобновить или удалить динамические цели.

ParametersJSON Schema
NameRequiredDescriptionDefault
bidsNoНовые ставки и приоритеты; обязателен при action=set_bids
actionYesЧто сделать: add, set_bids, suspend, resume или delete (необратимо)
targetsNoЦели для добавления; обязателен при action=add
dynamic_target_idsNoЦели для suspend, resume или delete

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the destructive profile is covered. The description does not add anything beyond the enum, such as irreversibility detail (though the schema notes delete is irreversible) or bidding behavior on set_bids.

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

Conciseness4/5

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

A single compact sentence enumerating all supported actions. It is appropriately sized and front-loaded, with no filler, though it is not broken into structured when-to-use segments.

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

Completeness3/5

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

For a multi-action mutation tool with rich schema coverage and destructive annotations, the description is minimally viable. It lacks routing to sibling tools and does not clarify action-specific prerequisites, leaving modest gaps.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are fully documented in the schema. The description adds no parameter detail beyond the action verb list, which matches the baseline 3 when the schema carries the load.

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

Purpose4/5

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

States a clear set of verbs (create, change bids, stop, resume, delete) applied to dynamic targets. It distinguishes itself from the sibling list_dynamic_targets by being the mutating counterpart, though it does not name that sibling explicitly.

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

Usage Guidelines3/5

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

The action list implies when each mode applies, but there is no explicit guidance on prerequisites or when to prefer this tool over siblings like list_dynamic_targets. Usage must be inferred from the enum values.

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

manage_keywordsУправление ключевыми словамиB
Destructive

Действие над ключевыми фразами: suspend/resume/delete. ⚠️ delete необратимо.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesДействие: suspend, resume или delete (необратимо)
keyword_idsYesФразы, над которыми выполняется действие

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is largely covered. The description adds the useful nuance that delete is irreversible, but it says nothing about auth requirements, whether suspend/resume can be undone, or side effects on bids or statistics.

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

Conciseness5/5

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

A single front-loaded sentence that leads with the resource and the allowed actions, then flags the destructive one. No filler, no repetition beyond what is needed.

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

Completeness3/5

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

For a destructive, no-output-schema mutation tool, the definition is minimally adequate: safety is partly carried by annotations and the delete warning, but scope (per-keyword vs bulk behavior), reversibility of suspend/resume, and any limits on keyword_ids are unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, with the action enum and irreversibility already documented in the schema itself. The description merely restates the same action set and the 'необратимо' note, adding no format, ordering, or batching semantics for keyword_ids.

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

Purpose4/5

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

The description names the resource (keywords/фразы) and enumerates the three concrete operations (suspend/resume/delete), so an agent knows it mutates existing keywords rather than adding or bidding on them. However, it never differentiates itself from close siblings like update_keywords, add_keywords, or set_keyword_bids, leaving the boundary implicit.

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

Usage Guidelines2/5

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

It lists what the tool can do but gives no when-to-use guidance, prerequisites, or routing to alternatives such as update_keywords or delete_ad_groups. The agent must infer from the action enum alone which sibling to pick for a given intent.

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

manage_negative_keyword_shared_setsУправление общими минус-фразамиC
Destructive

Создать, изменить или удалить общие наборы минус-фраз аккаунта.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesЧто сделать с наборами: add, update или delete (необратимо)
set_idsNoНаборы для удаления; обязателен при action=delete
add_setsNoНаборы для создания; обязателен при action=add
update_setsNoНаборы для изменения; обязателен при action=update

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true. The description only restates the create/change/delete operations and adds no extra behavioral context such as irreversibility, overwrite semantics, authorization requirements, or 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.

Conciseness4/5

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

The single sentence is efficient and front-loads the three supported actions. It wastes no words, though it is too terse to provide any action-specific structure.

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

Completeness3/5

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

For a multi-action mutation with no output schema, the annotations cover destructive behavior and the schema covers parameters and conditional requirements. The description is minimally adequate but omits action-dependent workflow context and return expectations, leaving some gaps for the agent to infer.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents the action enum, conditional required fields, ID constraints, and overwrite behavior. The description adds no parameter meaning beyond what the structured schema provides, so the baseline of 3 applies.

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

Purpose4/5

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

States concrete actions (create, modify, delete) and the resource (account-level shared negative keyword sets). It is clear what the tool does, but it does not explicitly distinguish itself from siblings such as list_negative_keyword_shared_sets or link_negative_keyword_sets.

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

Usage Guidelines2/5

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

The description gives no when-to-use or when-not-to-use guidance. The action enum in the schema indicates supported operations, but the description does not explain when this tool should be chosen over the list or link siblings.

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

moderate_adsОтправить объявления на модерациюC
Idempotent

Отправить выбранные объявления на модерацию.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_idsYesОбъявления, отправляемые на модерацию

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, and idempotentHint=true, so the safety/mutation profile is covered structurally. The description adds nothing on top: it does not say whether already-moderated ads are re-submitted, what status results, whether there is a review delay, or any account-level constraints.

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

Conciseness3/5

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

A single short sentence with no filler, which is structurally clean, but it is under-specified rather than concise — every word restates what the name already conveys.

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

Completeness2/5

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

For a write/submission tool with no output schema, the description should at minimum explain what happens after submission and any constraints (e.g., the 1–10000 ad_ids limit is only in the schema). As written, an agent has no behavioral context about the moderation workflow.

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

Parameters3/5

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

Only one parameter (ad_ids), and schema description coverage is 100% with item-level and array-level descriptions plus min/maxItems constraints. The description adds no format or batching detail beyond the schema, so the baseline 3 applies.

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

Purpose2/5

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

The description ('Send selected ads for moderation') is essentially a verbatim translation of the title ('Отправить объявления на модерацию'), adding no information beyond the name/title. It states a verb+resource, but does nothing to distinguish this tool from siblings like update_text_ad or manage_ads, and never explains what 'moderation' entails.

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

Usage Guidelines2/5

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 such as update_text_ad or manage_ads, no prerequisites, and no mention of what state the ads must be in first. Usage must be entirely inferred from the name.

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

set_ad_group_negative_keywordsМинус-фразы группыA
Destructive

Минус-фразы на уровне группы объявлений. Режим mode обязателен: replace заменяет список целиком (прежние фразы теряются, пустой массив очищает), add дописывает к текущим, remove убирает названные — читать список перед этим не нужно, add и remove делают это сами. Чтобы добавить фразу к существующим, нужен add: replace с одной фразой сотрёт остальные.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesОбязателен. replace — заменить список целиком (пустой массив очищает, прежние фразы теряются), add — дописать к текущим, remove — убрать перечисленные. add и remove сначала читают текущий список, это дополнительный вызов API. Фразы сравниваются так же, как их сравнивает Директ: без учёта регистра, буквы ё и е равны, краевые и повторные пробелы не учитываются, операторы закрепления ! и + игнорируются
ad_group_idYesID группы объявлений
negative_keywordsYesМинус-фразы группы: при mode=replace — полный новый список взамен прежнего, при add — что дописать, при remove — что убрать

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds the concrete consequences: replace discards prior phrases, an empty array clears the list, and add/remove read the current list themselves (an extra API call). This discloses what gets destroyed and the side-effect cost 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.

Conciseness4/5

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

Three sentences, front-loaded with the resource and the mandatory mode, and the most important gotcha (add vs replace) lands last. Some mode detail overlaps with the schema, costing a little density, but there is no filler.

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

Completeness4/5

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

For a 3-param mutation tool with no output schema, the description covers the essential behaviors: mode requirement, destruction semantics, and the read-then-write behavior of add/remove. It omits permissions/authorization context but is otherwise sufficient to call the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100% and the mode field's schema already documents replace/add/remove semantics plus the matching/comparison rules. The description mostly reiterates the mode behavior and only adds the 'no need to read the list first' note, so it does not substantially extend the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource ('Минус-фразы на уровне группы объявлений') and pins the scope to ad-group level, which distinguishes it from the campaign-level siblings get_campaign_negative_keywords and set_campaign_negative_keywords. An agent can tell what this does 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.

Usage Guidelines4/5

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

Gives clear operational guidance: mode is mandatory, each mode's effect is spelled out, and it warns that to append you must use add rather than replace (with the concrete failure mode). It does not explicitly contrast the tool against the campaign-level sibling, so tool selection is left partly to inference.

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

set_audience_targetsУправление аудиторными целямиB
Destructive

Добавить, остановить, возобновить, удалить аудиторные цели или изменить их ставки.

ParametersJSON Schema
NameRequiredDescriptionDefault
bidsNoНовые ставки и приоритеты; обязателен при action=set_bids
actionYesЧто сделать: add, set_bids, suspend, resume или delete (необратимо)
targetsNoУсловия для добавления; обязателен при action=add
audience_target_idsNoУсловия для suspend, resume или delete

TDQS

B3.3/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true, so the agent already knows this is a mutating, destructive, external-facing tool. The schema description for the 'delete' action notes it is irreversible ('необратимо'), which adds useful context beyond annotations. However, the description itself says nothing about permissions, rate limits, or side effects — it merely restates the action set.

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

Conciseness4/5

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

A single efficient sentence listing the allowed actions. It is front-loaded and wastes no words, though it is extremely terse and arguably could not be shorter without losing the action enumeration.

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

Completeness2/5

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

For a mutation tool with destructive and open-world annotations, no output schema, and complex conditional parameter requirements (bids vs targets vs audience_target_ids depending on action), the description is almost absent. It does not explain action-parameter relationships, does not mention that some actions are irreversible beyond the schema note, and provides no behavioral context for a potentially high-impact operation.

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

Parameters3/5

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

Schema description coverage is 100%. Every parameter, nested field, and enum is fully documented in the schema, including when each array is required (add requires targets; set_bids requires bids). The one-sentence description adds no parameter meaning. Baseline 3 is appropriate when the schema does all the work.

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

Purpose4/5

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

The description states specific verbs (add, suspend, resume, delete, change bids) and the resource (аудиторные цели / audience targets). It clearly identifies the tool's operations, but does not differentiate it from base targeting — a reasonable inference is that this is a CRUD/bid-set tool for audience targeting. Sibling list_audience_targets is the read counterpart; no explicit disambiguation is needed but the description doesn't name it.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when you need to modify audience targets) but gives no explicit when-not or alternatives. The action enum in the schema effectively lists the operations, but the description adds no routing guidance beyond what the parameter already conveys.

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

set_bid_adjustmentsИзменить корректировки ставокA
Idempotent

Изменить коэффициенты существующих корректировок по их ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
adjustmentsYesКорректировки и их новые коэффициенты

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and idempotentHint=true, so the safety profile is covered. The description adds only the nuance that this changes coefficients of existing entries (a partial-update semantic rather than a full overwrite), and says nothing about scope limits, permissions, or what happens to unspecified fields.

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

Conciseness4/5

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

A single short sentence with the action front-loaded; nothing is padded or redundant. It is efficient, though its brevity comes partly from omitting useful context rather than from tight editing.

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

Completeness4/5

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

The schema fully documents the single nested-array parameter and the annotations cover the mutation/idempotency profile, so an agent has enough to call this correctly. Only a note about batch size (max 1000) or prerequisites would be needed for a 5, but those are already in the schema bounds.

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

Parameters3/5

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

Schema description coverage is 100% — the nested bid_modifier (0–1300, 100 = unchanged) and adjustment_id pattern are fully documented in the schema. The description echoes this with 'коэффициенты' and 'по их ID' but adds no syntax or format detail beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb (Изменить) and resource (коэффициенты существующих корректировок), and 'существующих' hints it operates on already-created items rather than adding new ones. It does not, however, explicitly contrast itself with add_bid_adjustments or delete_bid_adjustments, leaving sibling differentiation to the reader.

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

Usage Guidelines3/5

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

The word 'существующих' and 'по их ID' imply this is for updating already-existing adjustments, which weakly implies add_bid_adjustments is the tool for new ones. No explicit when-to-use, when-not-to-use, or prerequisite (e.g. that IDs must be fetched via get_bid_adjustments) is given.

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

set_campaign_negative_keywordsМинус-фразы кампанииA
Destructive

Минус-фразы на уровне кампании. Режим mode обязателен: replace заменяет список целиком (прежние фразы теряются, пустой массив очищает), add дописывает к текущим, remove убирает названные — читать список перед этим не нужно, add и remove делают это сами. Чтобы добавить фразу к существующим, нужен add: replace с одной фразой сотрёт остальные.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesОбязателен. replace — заменить список целиком (пустой массив очищает, прежние фразы теряются), add — дописать к текущим, remove — убрать перечисленные. add и remove сначала читают текущий список, это дополнительный вызов API. Фразы сравниваются так же, как их сравнивает Директ: без учёта регистра, буквы ё и е равны, краевые и повторные пробелы не учитываются, операторы закрепления ! и + игнорируются
campaign_idYesID кампании
negative_keywordsYesМинус-фразы кампании: при mode=replace — полный новый список взамен прежнего, при add — что дописать, при remove — что убрать

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, yet the description adds precise destruction semantics (previous phrases are lost, empty array clears the list) and a hidden cost (add/remove perform an extra read/API call). This is exactly the kind of context annotations cannot convey.

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

Conciseness5/5

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

Front-loaded with scope, then mode semantics, then the key pitfall. Three sentences, zero filler, each earning its place.

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

Completeness5/5

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

For a destructive, three-required-parameter mutation with no output schema, the description covers mode behavior, side effects, and the read-before-write implication. Nothing an agent needs to invoke it safely is missing.

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

Parameters4/5

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

Schema description coverage is 100% and the enum is fully documented in the schema, so the schema carries the baseline. The description still reinforces the mode contract and adds a practical warning about replace collaterally deleting other phrases, adding value beyond the schema.

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

Purpose5/5

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

States a specific operation (setting negative keywords) at a specific scope (campaign level), which cleanly distinguishes it from get_campaign_negative_keywords (read) and set_ad_group_negative_keywords (ad-group scope) among the siblings. An agent can identify the right tool 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.

Usage Guidelines5/5

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

Explicitly enumerates when to use each mode: replace for a full swap, add to append, remove to delete named phrases. It also gives a concrete decision rule ('to add a phrase to existing ones, use add — replace with one phrase erases the rest') and states the prerequisite is unnecessary ('no need to read the list first').

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

set_keyword_bidsУстановить ставкиA
Idempotent

Установить ставки (поиск/сети, в рублях) на уровне фраз, групп или кампаний (сервис Bids). Работает только при ручном управлении ставками: на автостратегии Директ назначает ставки сам, вызов пройдёт без ошибки, но на показы не повлияет. Сначала get_strategy, затем get_keyword_auction — сколько стоит нужная позиция.

ParametersJSON Schema
NameRequiredDescriptionDefault
bidNoСтавка на поиске в рублях
context_bidNoСтавка в сетях (РСЯ) в рублях
keyword_idsNoСтавки на уровне фраз
ad_group_idsNoСтавки на все фразы указанных групп
campaign_idsNoСтавки на все фразы указанных кампаний

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover readOnly=false, openWorld=true, idempotent=true, so the safety profile is known. The description adds genuinely non-structured context: the silent no-op on autostrategies and the mandatory prerequisite call ordering. It does not describe what happens with conflicting or multiple ID arrays, keeping it below a 5.

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

Conciseness4/5

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

Three sentences, front-loaded with the operation and scope, then preconditions, then the recommended call sequence. Dense and largely waste-free, though the middle sentence packs condition and consequence into a single long clause.

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

Completeness3/5

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

No output schema, so the description needn't explain returns, and annotations cover the mutation profile. However, all five parameters are optional and the description never states that at least one target level must be supplied, nor whether the target arrays are mutually exclusive — a real gap for a bid-setting tool with no required parameters.

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

Parameters3/5

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

Schema description coverage is 100% and every parameter (bid, context_bid, keyword_ids, ad_group_ids, campaign_ids) is documented in-schema with units and level meaning. The description repeats the per-ruble and per-level semantics without adding format or cardinality rules beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource (set bids, in rubles, for search/networks) and enumerates the three target levels: keywords, ad groups, campaigns. An agent can distinguish it from get_bid_adjustments or set_bid_adjustments. It does not explicitly name a sibling, so it stops 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.

Usage Guidelines5/5

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

Explicitly states the precondition that makes this tool effective (manual bid management only) and the failure mode on autostrategies (call succeeds silently, no effect on impressions), plus a required workflow: get_strategy first, then get_keyword_auction. This is exactly the when/when-not guidance an agent needs.

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

set_priority_goalsЦели стратегииA
Destructive

Задать цели стратегии кампании (PriorityGoals) и их ценность в рублях — по ним автостратегия оптимизирует ставки, в том числе «максимум конверсий» со служебным GoalId 13. Режим mode обязателен: add добавляет цели или меняет ценность уже заданных, remove убирает названные, replace заменяет список целиком (пустой массив очищает). Текущий список сервер читает сам. Чтобы добавить цель к существующим, нужен add: replace с одной целью сотрёт остальные. ⚠️ Смена целей перезапускает обучение стратегии. Поддерживаются текстово-графические, динамические, смарт и единые перфоманс-кампании; ID целей — из Метрики.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesОбязателен. replace — заменить список целиком (прежние цели теряются), add — добавить цели или поменять ценность уже заданных, remove — убрать перечисленные. Текущий список сервер читает сам, это дополнительный вызов API
goalsYesЦели: при mode=replace — полный новый список взамен прежнего (пустой массив очищает), при add — что добавить или чью ценность поменять, при remove — что убрать
campaign_idYesID кампании: текстово-графической, динамической, смарт или единой перфоманс-кампании

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, openWorldHint=true. The description adds valuable non-obvious context: that changing goals restarts strategy training (a destructive side effect) and that the server reads the current list itself (an extra API call). It doesn't detail auth requirements or rate limits, but adds meaningful behavioral 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.

Conciseness4/5

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

Front-loads the core purpose, then mode explanation, then warnings. Every sentence carries information, though slightly dense. Uses a warning symbol to draw attention to the training restart.

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

Completeness4/5

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

For a 3-parameter mutation tool with no output schema and rich annotations, the description covers purpose, modes, supported campaigns, goal ID source, destructive side effect, and the server reading current list. It doesn't explain what happens to goals not mentioned in add vs remove modes beyond the mode descriptions, but is largely complete.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description reinforces mode semantics and states value is in roubles and required for goals, plus mentions GoalId 13 for maximum conversions. The schema handles specific parameter details; description adds the 'why' and edge cases like empty array clearing.

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

Purpose5/5

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

States a specific verb+resource (set strategy PriorityGoals) with their rouble value, and explains the optimization purpose including the auto-strategy context. Distinguishes itself from sibling set_strategy by focusing specifically on campaign goals, not general strategy settings.

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

Usage Guidelines5/5

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

Explicitly explains when to use each mode: add to add/change value of existing goals, remove to remove named goals, replace to replace the entire list. Includes a critical warning that replace with one goal erases the rest, guiding correct usage. Names which campaigns are supported.

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

set_strategyИзменить стратегию кампанииB
Idempotent

Изменить стратегию текстово-графической кампании: ручная, максимум кликов, средняя цена клика или конверсии, оплата за конверсию. Цены — в рублях, цель Метрики — goal_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
goal_idNoID цели Метрики для AVERAGE_CPA, PAY_FOR_CONVERSION и WB_MAXIMUM_CONVERSION_RATE; для оплаты за конверсию обязателен. Для WB_MAXIMUM_CONVERSION_RATE допустимо служебное 13 — оптимизация по ключевым целям кампании (PriorityGoals); Директ принимает его, только если в PriorityGoals есть цель, кроме 12 «Вовлечённые сессии»; сами цели задаёт set_priority_goals
average_cpaNoСредняя цена конверсии в рублях; обязательна для AVERAGE_CPA
average_cpcNoСредняя цена клика в рублях; обязательна для AVERAGE_CPC
bid_ceilingNoМаксимальная ставка в рублях для WB_MAXIMUM_CLICKS, WB_MAXIMUM_CONVERSION_RATE и AVERAGE_CPA
campaign_idYesID текстово-графической кампании
search_typeYesСтратегия на поиске: HIGHEST_POSITION (ручная), WB_MAXIMUM_CLICKS, WB_MAXIMUM_CONVERSION_RATE (максимум конверсий за недельный бюджет), AVERAGE_CPC, AVERAGE_CPA, PAY_FOR_CONVERSION или SERVING_OFF
network_typeYesСтратегия в сетях: NETWORK_DEFAULT (по настройкам поиска), MAXIMUM_COVERAGE, WB_MAXIMUM_CLICKS, WB_MAXIMUM_CONVERSION_RATE, AVERAGE_CPC, AVERAGE_CPA, PAY_FOR_CONVERSION или SERVING_OFF
conversion_priceNoЦена конверсии в рублях для PAY_FOR_CONVERSION: списывается за конверсию, а не за клик
weekly_spend_limitNoНедельный бюджет в рублях; обязателен для WB_MAXIMUM_CLICKS и WB_MAXIMUM_CONVERSION_RATE, для остальных автостратегий необязателен
network_limit_percentNoДоля расходов в сетях для NETWORK_DEFAULT, проценты

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and openWorldHint=true, so the mutation/idempotency profile is supplied structurally. The description's added facts (prices in rubles, goal via goal_id) largely duplicate what each schema property already states, so it contributes little genuine behavioral context 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.

Conciseness4/5

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

Two short sentences, front-loaded with the action and resource, no filler. The trailing clause about rubles and goal_id is compact and lands where it is needed.

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

Completeness3/5

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

For a 10-parameter mutation tool with no output schema, the description is minimal — it leaves the per-strategy parameter combinations (which of goal_id/average_cpa/conversion_price/weekly_spend_limit apply) entirely to the schema. Adequate because the schema is rich, but not complete on usage context.

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

Parameters3/5

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

Schema description coverage is 100%, and every parameter is documented in the schema itself (units, enum meanings, per-strategy requirements). The description adds no parameter detail beyond that, so the baseline 3 for a fully-covered schema is appropriate.

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

Purpose4/5

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

States a specific verb+resource ('Изменить стратегию текстово-графической кампании') and enumerates the strategy variants the tool sets. It is clearly the write counterpart to the sibling get_strategy, though it never names that sibling explicitly.

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

Usage Guidelines3/5

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

Usage is only implied by the enumerated strategy names and the passing mention that prices are in rubles and the Metrika goal is goal_id. It never says when to choose this over get_strategy, or what prerequisites (e.g. required goal_id / weekly budget per strategy) must hold before calling it.

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

set_time_targetingЗадать расписание показовA
Idempotent

Задать расписание показов кампании: дни, часы, почасовые коэффициенты, праздники и часовой пояс. ⚠️ Расписание заменяется целиком: часы вне переданных правил показов не получат.

ParametersJSON Schema
NameRequiredDescriptionDefault
scheduleYesПравила показов. Часы, не покрытые ни одним правилом, показов не получают — расписание задаётся целиком, а не дополняется. Правила применяются по порядку, последнее переопределяет предыдущие
time_zoneNoЧасовой пояс кампании, например Europe/Moscow. Допустимые значения — в справочнике list_time_zones. Не задан — остаётся прежним
campaign_idYesID кампании, десятичная строка
holiday_end_hourNoЧас окончания показов в праздники, не включая его, 1–24
holiday_start_hourNoЧас начала показов в праздники включительно, 0–23
holiday_bid_percentNoКоэффициент к ставке в праздники, % от текущей: 10–200 с шагом 10. Ноль запрещён — показы отключает suspend_on_holidays
suspend_on_holidaysNotrue — в праздники показов нет; false — идут по правилам holiday_*. Не задан — праздники отдельно не настраиваются
consider_working_weekendsNoПоказывать ли в рабочие выходные по расписанию переносимого буднего дня; false — по расписанию выходного

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and idempotentHint=true, so the mutating and repeat-safe nature is covered. The description nevertheless adds important non-obvious behavior: the schedule is replaced wholesale, and any hour not covered by a supplied rule receives no impressions — a real operational hazard an agent must know before calling.

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

Conciseness4/5

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

Two sentences, front-loaded with the purpose and ending with the high-severity replacement warning, with no filler. Slightly terse given the eight-parameter surface, but every sentence earns its place.

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

Completeness4/5

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

For an eight-parameter mutation tool with no output schema, the description covers purpose, the destructive-replacement semantics, and points to list_time_zones for valid time_zone values. It omits anything about the response and does not explicitly tie suspend_on_holidays to holiday_bid_percent, though the schema does that work.

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

Parameters3/5

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

Schema description coverage is 100%, including per-field docs for start/end hour semantics, bid_percent stepping, and holiday interaction, so the schema carries the parameter burden. The description only restates the field categories and adds no syntax or format detail beyond it, which is the baseline 3 case.

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

Purpose4/5

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

States a specific verb (Задать) and resource (расписание показов кампании) and enumerates the dimensions it covers: days, hours, hourly coefficients, holidays, time zone. The read counterpart get_time_targeting is implicitly distinguished by the set/get contrast, though it is never named.

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

Usage Guidelines3/5

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

Usage is implied by the verb and the enumeration of what can be configured, but there is no explicit statement of when to call this versus get_time_targeting or set_bid_adjustments, nor of prerequisites such as required permissions or the campaign existing.

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

update_campaignОбновить кампаниюA
Idempotent

Обновить кампанию: название, бюджет (руб), UTM-разметку и/или статус (SUSPEND/RESUME/ARCHIVE/UNARCHIVE). Разметка действует на ссылки всех объявлений кампании.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoНовое название
statusNoДействие со статусом показов: SUSPEND (остановить), RESUME, ARCHIVE, UNARCHIVE
campaign_idYesID кампании, десятичная строка
daily_budgetNoНовый дневной бюджет в рублях
tracking_paramsNoUTM-разметка, дописывается к ссылкам всех объявлений кампании. Без ведущего «?»: utm_source=yandex&utm_campaign={campaign_id}. Допустимы подстановки Директа в фигурных скобках. null снимает разметку

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, and idempotentHint=true, so the mutation profile is covered structurally. The description's note that tracking markup applies to all ads in the campaign is a genuine side-effect disclosure, though it largely duplicates the schema's own tracking_params documentation. Nothing is said about permissions, reversibility of ARCHIVE, or budget-change effects.

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

Conciseness5/5

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

Two compact sentences, zero filler, with the affected fields front-loaded before the cross-ad side effect. Every clause carries information.

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

Completeness4/5

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

For a mutation tool with no output schema and fully documented parameters, the description covers the operation surface and the one non-obvious ripple effect (link rewriting across ads). It omits only secondary details such as error/permission behavior, which is a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters are already documented in the schema with formats and valid values. The description only restates the field list and adds the currency unit (руб), which the schema also states — baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb (обновить) plus resource (кампанию) and enumerates exactly which fields can be updated: название, бюджет, UTM-разметку, статус. It does not distinguish itself from siblings like manage_campaigns or update_text_ad, but the scope is unambiguous.

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

Usage Guidelines3/5

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

The 'и/или' phrasing implies this is a partial-update tool and that at least one optional field should be supplied, which is useful implied guidance. There is no explicit when-to-use vs. when-not, and no mention of the adjacent manage_campaigns sibling.

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

update_keywordsИзменить ключевые словаA

Изменить текст ключевых фраз и подстановочные переменные {param1}/{param2}. Правка текста может привести к появлению фразы с новым ID или к её удалению как дубликата — сверьтесь с list_keywords после вызова. Ставки меняет set_keyword_bids, статус — manage_keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYesФразы и их новые значения; поля, которые не переданы, остаются прежними

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only say it is a non-read-only open-world operation. The description adds high-value behavioral disclosure: editing text may produce a phrase with a NEW ID or delete it as a duplicate, and auto-targeting text is never changed. These are non-obvious side effects an agent must know before calling.

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

Conciseness4/5

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

Two sentences, front-loaded with the action and immediately followed by side effects and sibling routing. Dense and efficient, though the side-effect sentence is long.

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

Completeness4/5

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

Covers the action, the key side effect, verification step, and delimitation from siblings. No output schema exists, but for a mutation with ID-changing side effects, a brief note on the response shape or partial-failure handling would make it fully complete.

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

Parameters3/5

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

Schema coverage is 100% and the nested items already document keyword constraints, keyword_id pattern, and param1/param2 null-clearing. The description only restates that it edits phrase text and substitution variables, adding no meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb+resource ('Изменить текст ключевых фраз') and explicitly delimits scope: bids and status are handled by other tools. An agent can immediately distinguish this from set_keyword_bids and manage_keywords.

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

Usage Guidelines5/5

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

Explicitly routes the caller: 'Ставки меняет set_keyword_bids, статус — manage_keywords', and tells the caller to verify results with list_keywords. This is textbook when-to-use/when-not-to-use guidance naming the alternatives.

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

update_retargeting_listsИзменить списки ретаргетингаA

Изменить название, описание и правила условий ретаргетинга. Переданные правила заменяют прежние целиком: сначала прочитайте условие через list_retargeting_lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
retargeting_listsYesУсловия и их новые значения; поля, которые не переданы, остаются прежними

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only tell the agent this is a mutation (readOnlyHint=false) in an open world, which is a low bar. The description adds the critical non-obvious semantic that supplied rules replace the previous set entirely rather than merging, and warns the agent to read first — genuine behavioral context beyond the annotations. It omits reversibility, permissions, and partial-failure behavior.

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

Conciseness5/5

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

Two sentences, zero filler: the first declares what changes, the second front-loads the destructive replacement rule and the prerequisite read. Nothing is wasted.

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

Completeness4/5

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

With a single required array parameter, a rich nested schema, and no output schema, the description covers what an agent needs: the mutable fields and the whole-replacement semantics. Only minor gaps remain (error behavior for unknown IDs, permission requirements) for a bulk-mutation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every field, including the enum for operator and the day range for membership_life_span. The description mirrors the field list and the replace-semantics but adds no syntax or format detail beyond the schema — the baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb (change/update) and resource (retargeting lists/conditions) and enumerates the mutable fields: name, description, and rules. An agent can immediately distinguish it from add_retargeting_list and delete_retargeting_lists without opening any schema.

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

Usage Guidelines4/5

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

It gives an explicit prerequisite — read the condition first via list_retargeting_lists — which is a concrete workflow instruction naming the sibling to call. It does not, however, spell out when to prefer add/delete siblings, so it stops short of full alternative routing.

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

update_text_adОбновить объявлениеA
Idempotent

Обновить текстовое объявление: заголовок, текст, ссылка. Изменённое объявление уходит на модерацию.

ParametersJSON Schema
NameRequiredDescriptionDefault
hrefNoНовая ссылка на сайт
textNoНовый текст объявления
ad_idYesID обновляемого объявления
titleNoНовый заголовок
title2NoНовый второй заголовок

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true and idempotentHint=true, so the safety profile is covered. The description adds a genuinely new behavioral trait beyond annotations: the modified ad is sent to moderation, which tells the agent the change is not immediately live. This is meaningful 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.

Conciseness5/5

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

Two short sentences with zero waste; the mutation is front-loaded and the moderation consequence follows. Every clause earns its place.

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

Completeness4/5

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

For an update tool with full annotation coverage and a fully described schema, the description supplies the essential extra fact (post-update moderation) plus the editable field set. Missing only the routing against sibling write tools, which prevents a 5.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters (including title2 and ad_id). The description names only a subset of editable fields (title, text, link) and adds no syntax, format, or constraint detail beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb (обновить) and resource (текстовое объявление) and enumerates the mutable fields (заголовок, текст, ссылка). It is clearly distinct from create_text_ad by the verb, though it never names siblings like manage_ads or update_campaign, so differentiation rests on the verb alone.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives such as manage_ads or create_text_ad. The moderation note hints at consequences but not at selection between sibling tools.

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.

  1. 60 tool updatesv1.6.1
    • First observedadd_ad_extensions
    • First observedadd_bid_adjustments
    • First observedadd_keywords
    • First observedadd_retargeting_list
    • First observedadd_vcard
    • First observedcreate_ad_group
    • First observedcreate_campaign
    • First observedcreate_text_ad
    • First observeddelete_ad_extensions
    • First observeddelete_ad_groups
    • First observeddelete_bid_adjustments
    • First observeddelete_retargeting_lists
    • First observeddelete_sitelinks
    • First observeddelete_vcards
    • First observedget_account_balance
    • First observedget_bid_adjustments
    • First observedget_campaign
    • First observedget_campaign_negative_keywords
    • First observedget_changes
    • First observedget_keyword_auction
    • First observedget_regions
    • First observedget_search_queries
    • First observedget_statistics
    • First observedget_strategy
    • First observedget_time_targeting
    • First observedlink_negative_keyword_sets
    • First observedlist_ad_extensions
    • First observedlist_ad_groups
    • First observedlist_ads
    • First observedlist_audience_targets
    • First observedlist_businesses
    • First observedlist_campaigns
    • First observedlist_dynamic_targets
    • First observedlist_feeds
    • First observedlist_keywords
    • First observedlist_negative_keyword_shared_sets
    • First observedlist_retargeting_lists
    • First observedlist_sitelinks
    • First observedlist_time_zones
    • First observedlist_vcards
    • First observedmanage_ad_images
    • First observedmanage_ads
    • First observedmanage_campaigns
    • First observedmanage_dynamic_targets
    • First observedmanage_keywords
    • First observedmanage_negative_keyword_shared_sets
    • First observedmoderate_ads
    • First observedset_ad_group_negative_keywords
    • First observedset_audience_targets
    • First observedset_bid_adjustments
    • First observedset_campaign_negative_keywords
    • First observedset_keyword_bids
    • First observedset_priority_goals
    • First observedset_sitelinks
    • First observedset_strategy
    • First observedset_time_targeting
    • First observedupdate_campaign
    • First observedupdate_keywords
    • First observedupdate_retargeting_lists
    • First observedupdate_text_ad

TDQS

C2.8/5.0

Scored across 60 tools

Disambiguation2/5

Multiple tools have unclear boundaries because generic 'manage_' actions overlap with dedicated tools: manage_campaigns duplicates status/archive operations in update_campaign, manage_ads includes 'moderate' while moderate_ads also exists, and manage_keywords overlaps with update_keywords and set_keyword_bids. Broad action-bundling tools like set_audience_targets and manage_dynamic_targets further blur the line between adding, updating, and removing entities.

Naming Consistency3/5

All names use snake_case, but verb conventions are mixed for the same operations: creation is expressed as create_campaign, add_keywords, set_sitelinks, and add_vcard, while mutation is split between manage_*, update_*, set_*, and delete_*. The generic 'manage_' prefix also obscures what each tool actually does, making the pattern less predictable than it appears.

Tool Count1/5

With 60 tools, the set is far beyond a well-scoped surface and lands in the '50+' extreme-mismatch range. The large count is inflated by many granular read/write tools that could be consolidated or grouped by resource, making the server unwieldy for an agent to navigate.

Completeness3/5

Core Yandex Direct lifecycle operations for campaigns, ads, keywords, bids, negative keywords, retargeting, bid adjustments, and reporting are covered. However, notable gaps exist: there is no get_ad_group or update_ad_group, no get_ad_group_negative_keywords despite a setter, and no explicit tool for binding sitelinks/callouts to ads despite creation endpoints.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Enables managing Yandex Direct PPC campaigns, ad groups, ads, and keywords, plus pulling performance statistics via the Yandex Direct API v5.
    44
    100 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables interaction with Yandex advertising and analytics APIs (Direct, Metrika, Audience, Webmaster, AdMetrica) through MCP tools, resources, and prompts for campaign management and data retrieval.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to manage Yandex Direct advertising campaigns, ads, keywords, and reports via natural language using the Yandex Direct API v5.
    2
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to manage Yandex Direct advertising accounts via the API v5, including reports, bids, campaign management, and semantic analysis through natural language requests.
    4
    4 npm
    MIT