yandex-direct-mcp-plus
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yandex-direct-mcp-plusshow search queries for the past month and suggest negative keywords"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
yandex-direct-mcp-plus
Ведение контекстной рекламы Яндекс.Директа из диалога с ассистентом: собрать кампанию, разобрать поисковые запросы, вычистить минус-фразы, поправить ставки и посмотреть расход — не переключаясь между разделами кабинета. Работает в любом MCP-клиенте: Claude Code, Claude Desktop, Cursor и другие.
60 инструментов, из них 25 только читают. Кампании и стратегии, группы, объявления и модерация, ключевые фразы и ставки, минус-фразы и общие наборы, быстрые ссылки, уточнения, изображения, визитки, корректировки ставок, ретаргетинг, аудиторные и динамические цели, фиды, расписание показов, статистика, поисковые запросы, баланс и справочники.
Деньги — в рублях, на вводе и на выводе; в микроединицы API сервер переводит сам. Поддержан агентский режим (
Client-Login).ID — строками (
"1915016273214320641"): 64-битные идентификаторы Директа не помещаются в число JavaScript и молча теряют точность. Здесь это стережёт правило линтера, а не внимательность.Реклама боевая. Тестовой среды у Директа больше нет — какие инструменты тратят деньги и что удаляют необратимо, перечислено в разделе Что меняет данные.
Телеметрии нет. Сервер не отправляет никуда ничего, кроме запросов к API Яндекса.
Содержание
Что можно делать — примеры запросов обычным текстом
Установка — Claude Code, Claude Desktop, Cursor, из исходников
Токен — как получить и какие переменные окружения нужны
Что меняет данные — что тратит бюджет и что необратимо
Инструменты — полный список с описаниями
Разработка — сборка, тесты, архитектура
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-plusClaude 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 нужно запросить в интерфейсе Директа — заявку рассматривают от часа до нескольких суток.
Переменная | Обязательна | Назначение |
| да | OAuth-токен Яндекс.Директ |
| нет | Логин клиента для агентских токенов (заголовок |
| нет | Только для |
Что меняет данные
Тестовой среды у Яндекс.Директа больше нет: песочница отключена с июля 2026, и любой вызов идёт по боевому аккаунту. Отлаживать сценарии приходится на отдельной кампании, оставленной черновиком, — показов она не даёт и потому не тратит бюджет, пока не пройдёт модерацию и не будет включена.
Граница проходит не по «чтение или запись», а по скорости, с которой действие превращается в деньги.
25 инструментов только читают — все list_*, get_* и справочники. Вызвать их безопасно всегда.
Тратят бюджет или запускают показы — восемь:
Инструмент | Чем именно |
|
|
|
|
| Отправляет объявления на модерацию, после неё начнутся показы |
| Меняет дневной бюджет |
| Меняет ставки, то есть цену клика |
| Меняет стратегию — переписывает всю экономику кампании |
| Заводит корректировку: +N% к ставке на срезе аудитории |
| Меняет коэффициент существующей корректировки |
Удаляют необратимо — эти инструменты помечены аннотацией 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)
Кампании
Инструмент | Описание |
| Список кампаний (фильтр по статусу/типу, пагинация) |
| Детальная информация о кампании по ID |
| Создать кампанию (бюджет в рублях, выбор стратегии, часовой пояс, UTM-разметка) |
| Обновить название/бюджет/UTM-разметку и/или статус (SUSPEND/RESUME/ARCHIVE/UNARCHIVE) |
| suspend/resume/archive/unarchive/delete для списка кампаний |
| Получить стратегию текстово-графической кампании |
| Сменить стратегию: ручная, максимум кликов, средняя цена клика/конверсии, оплата за конверсию |
| Цели стратегии и их ценность в рублях: добавить, убрать или заменить список |
| Расписание показов: часовой пояс, часы по дням недели, праздники |
| Задать расписание показов и почасовые коэффициенты (заменяет целиком) |
Группы объявлений
Инструмент | Описание |
| Группы объявлений выбранных кампаний |
| Создать группу с таргетингом по регионам |
| Удалить группы по ID |
| Минус-фразы группы: |
Объявления
Инструмент | Описание |
| Объявления в группах |
| Создать текстовое объявление (≤56/≤30/≤81) |
| Обновить заголовок/текст/ссылку |
| suspend/resume/archive/unarchive/moderate/delete |
| Отправить объявления на модерацию |
Ключевые слова и ставки
Инструмент | Описание |
| Ключевые фразы в группах (ставки в рублях) |
| Добавить ключевые фразы |
| Изменить текст фразы и подстановочные переменные |
| Установить ставки (поиск/сети, рубли) на фразах/группах/кампаниях |
| Аукцион по фразам: ставки и списываемые цены по позициям, ставки конкурентов, цена входа (рубли) |
| suspend/resume/delete |
| Минус-фразы кампании: |
| Получить минус-фразы кампаний |
Быстрые ссылки, уточнения и корректировки
Инструмент | Описание |
| Получить наборы быстрых ссылок |
| Создать новый набор быстрых ссылок |
| Удалить наборы быстрых ссылок |
| Получить уточнения (callouts) |
| Создать уточнения |
| Удалить уточнения |
| Загрузить, получить или удалить изображения |
| Получить корректировки: устройства, пол и возраст, аудитории, регионы, платёжеспособность, размещение |
| Создать корректировки на кампаниях или группах |
| Изменить коэффициенты существующих корректировок |
| Удалить корректировки по ID |
Аудитории, цели и фиды
Инструмент | Описание |
| Получить условия ретаргетинга и подбора аудитории |
| Создать условие ретаргетинга |
| Изменить название, описание и правила условий (правила заменяются целиком) |
| Удалить условия ретаргетинга |
| Получить аудиторные цели |
| add/set_bids/suspend/resume/delete аудиторных целей |
| Получить динамические цели |
| add/set_bids/suspend/resume/delete динамических целей |
| Получить товарные фиды |
| Получить общие наборы минус-фраз |
| add/update/delete общих наборов |
| Привязать общие наборы к кампаниям и группам объявлений |
Статистика, аккаунт, справочники
Инструмент | Описание |
| Статистика за период (показы, клики, расход, CTR, CPC) |
| Фактические поисковые запросы для подбора минус-фраз |
| Проверить изменения кампаний, групп, объявлений и справочников |
| Получить виртуальные визитки |
| Создать виртуальную визитку |
| Удалить визитки по ID |
| Получить профили организаций Яндекс Бизнеса |
| Баланс аккаунта (Live API v4) |
| Справочник кодов регионов (225 = Россия), с вложенностью по запросу |
| Справочник часовых поясов для расписания показов |
Разработка
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 toolsadd_ad_extensionsСоздать уточненияC
Создать уточнения (callouts), каждый текст до 25 символов.
| Name | Required | Description | Default |
|---|---|---|---|
| callouts | Yes | Тексты уточнений, каждый до 25 символов |
TDQS
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.
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.
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.
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.
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.
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 отключает показы среза.
| Name | Required | Description | Default |
|---|---|---|---|
| adjustments | Yes | Корректировки; каждая ставится каждому объекту из campaign_ids или ad_group_ids. Всего за вызов не больше 1000 корректировок — это цели, умноженные на виды | |
| ad_group_ids | No | Группы, которым добавляются корректировки; вместо campaign_ids | |
| campaign_ids | No | Кампании, которым добавляются корректировки; вместо ad_group_ids |
TDQS
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.
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.
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.
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.
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.
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
Добавить ключевые фразы в группу объявлений.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Ключевые фразы; минус-слова внутри фразы записываются через дефис | |
| ad_group_id | Yes | ID группы, в которую добавляются фразы |
TDQS
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.
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.
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.
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.
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.
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
Создать условие ретаргетинга из целей Метрики, сегментов или интересов.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Название условия ретаргетинга | |
| type | No | RETARGETING — по целям Метрики, AUDIENCE — по сегментам Яндекс.Аудиторий | RETARGETING |
| rules | Yes | Правила условия; между собой они соединяются логическим И | |
| description | No | Описание условия — видно только в интерфейсе, на показы не влияет |
TDQS
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.
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.
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.
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.
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.
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
Создать виртуальную визитку для кампании.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | Город | |
| ogrn | No | ОГРН или ОГРНИП организации | |
| house | No | Дом | |
| street | No | Улица | |
| country | Yes | Страна, например «Россия» | |
| building | No | Корпус | |
| apartment | No | Офис или квартира | |
| work_time | Yes | Режим работы в формате API: день_с#день_по#час_с#мин_с#час_по#мин_по, например 1#5#9#0#18#0 | |
| campaign_id | Yes | ID кампании, к которой привязывается визитка | |
| company_name | Yes | Название организации | |
| phone_number | Yes | Номер телефона | |
| contact_email | No | Контактный адрес электронной почты | |
| extra_message | No | Дополнительная информация в визитке | |
| contact_person | No | Контактное лицо | |
| phone_city_code | Yes | Код города или оператора | |
| phone_extension | No | Добавочный номер | |
| metro_station_id | No | ID станции метро из справочника MetroStations | |
| phone_country_code | Yes | Код страны, «+7» |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Название группы | |
| region_ids | Yes | Регионы показа, коды из get_regions: ["225"] — Россия, ["225","-213"] — Россия кроме Москвы, ["0"] — все регионы. Минус-регионы нельзя сочетать с 0 и нельзя отправлять одни, без обычного региона | |
| campaign_id | Yes | ID кампании, в которой создаётся группа |
TDQS
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.
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.
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.
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.
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.
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
Создать новую рекламную кампанию. Бюджет в рублях. ⚠️ Тестовой среды у Директа нет: кампания создаётся в боевом аккаунте. Деньги она начнёт тратить после модерации и включения, поэтому созданную для проверки оставляйте черновиком.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Название кампании | |
| type | No | Тип кампании: текстово-графическая или динамические объявления | TEXT_CAMPAIGN |
| time_zone | No | Часовой пояс показов, например Europe/Moscow (по умолчанию). Список — в справочнике list_time_zones; на даты отчётов не влияет, они всегда по Москве | |
| start_date | Yes | Дата начала показов, YYYY-MM-DD | |
| daily_budget | No | Дневной бюджет в рублях, например 1000 — это 1000 ₽ | |
| search_strategy | No | Стратегия показов на поиске; SERVING_OFF отключает показы на поиске | HIGHEST_POSITION |
| tracking_params | No | UTM-разметка, дописывается к ссылкам всех объявлений кампании. Без ведущего «?»: utm_source=yandex&utm_campaign={campaign_id}. Допустимы подстановки Директа в фигурных скобках. null снимает разметку | |
| network_strategy | No | Стратегия показов в сетях (РСЯ); SERVING_OFF отключает показы в сетях | SERVING_OFF |
TDQS
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.
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.
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.
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.
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.
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), ссылка.
| Name | Required | Description | Default |
|---|---|---|---|
| href | Yes | Ссылка на сайт | |
| text | Yes | Текст объявления, до 81 символов | |
| title | Yes | Заголовок объявления, до 56 символов | |
| title2 | No | Второй заголовок, до 30 символов | |
| ad_group_id | Yes | ID группы, в которой создаётся объявление |
TDQS
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.
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.
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.
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.
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.
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Удалить уточненияADestructive
Удалить уточнения по ID. ⚠️ Необратимо.
| Name | Required | Description | Default |
|---|---|---|---|
| ad_extension_ids | Yes | Уточнения, которые будут удалены безвозвратно |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the 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.
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.
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.
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.
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.
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Удалить группыADestructive
Удалить группы объявлений по их ID. ⚠️ Необратимо.
| Name | Required | Description | Default |
|---|---|---|---|
| ad_group_ids | Yes | Группы, которые будут удалены безвозвратно |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the 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.
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.
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.
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.
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.
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Удалить корректировки ставокADestructive
Удалить корректировки по их ID. Ставка среза возвращается к базовой; отменить удаление нельзя.
| Name | Required | Description | Default |
|---|---|---|---|
| adjustment_ids | Yes | Корректировки, которые нужно удалить; ID берутся из get_bid_adjustments |
TDQS
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.
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.
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.
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.
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.
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Удалить списки ретаргетингаADestructive
Удалить условия ретаргетинга и подбора аудитории по ID; удаление необратимо. Отказ по отдельному условию приходит в ответе списком, а не ошибкой вызова.
| Name | Required | Description | Default |
|---|---|---|---|
| retargeting_list_ids | Yes | Условия, которые нужно удалить; ID берутся из list_retargeting_lists |
TDQS
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.
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.
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.
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.
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.
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_sitelinksУдалить быстрые ссылкиADestructive
Удалить наборы быстрых ссылок по ID. Набор, привязанный к объявлению, Директ удалить не даст.
| Name | Required | Description | Default |
|---|---|---|---|
| sitelink_set_ids | Yes | Наборы, которые нужно удалить; ID берутся из list_sitelinks |
TDQS
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 covered. Beyond that, the description discloses a concrete behavioral guardrail — that Direct will refuse to delete a sitelink set bound to an ad — which is genuine value not present in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource, followed immediately by the key constraint. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool with no output schema and annotations covering the safety profile, the description is almost complete: it names the resource, the identifier source, and the one behavioral gotcha. It lacks only a note on the outcome/error behavior when deletion is blocked.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single array parameter is fully documented ('ID набора быстрых ссылок', sourced from list_sitelinks). The description adds nothing beyond what the schema already conveys, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Удалить наборы быстрых ссылок по ID' / delete sitelink sets by ID), which an agent can distinguish from the sibling set_sitelinks (create/attach) and list_sitelinks (read). The scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description adds a useful contextual condition ('a set attached to an ad cannot be deleted'), which implicitly hints at a precondition, but it never states when to prefer this tool over alternatives or how to resolve the blocked-deletion case (e.g., unlink first). 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Удалить визиткиADestructive
Удалить визитки по ID; удаление необратимо. Отказ по отдельной визитке приходит в ответе списком, а не ошибкой вызова.
| Name | Required | Description | Default |
|---|---|---|---|
| vcard_ids | Yes | Визитки, которые нужно удалить; ID берутся из list_vcards |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description 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.
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.
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.
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.
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.
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Баланс аккаунтаBRead-only
Баланс и финансовая информация аккаунта (Amount, Currency) через Live API v4.
| Name | Required | Description | Default |
|---|---|---|---|
| logins | No | Логины аккаунтов для агентского токена; по умолчанию — аккаунт самого токена |
TDQS
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.
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.
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.
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.
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.
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Корректировки ставокBRead-only
Получить корректировки ставок кампании или группы: устройства, пол и возраст, аудитории, регионы, платёжеспособность, размещение.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| types | No | Фильтр по типу корректировки | |
| levels | Yes | Уровни корректировок: CAMPAIGN и/или AD_GROUP | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| ad_group_ids | No | Группы, корректировки которых нужно получить | |
| campaign_ids | No | Кампании, корректировки которых нужно получить | |
| adjustment_ids | No | Конкретные корректировки по их ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered 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.
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.
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.
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.
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.
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Кампания по IDARead-only
Детальная информация о кампании по ID: бюджет (руб), статус и пояснение к нему, даты, статистика, UTM-разметка, цели и их ценность (PriorityGoals), счётчики Метрики, модель атрибуции и прочие настройки. Реальные ID целей — PriorityGoals.Items[].GoalId; GoalId 13 в стратегии — служебное «ключевые цели», то есть оптимизация по этим PriorityGoals. Пустой ответ по ID из веб-интерфейса не значит, что номер неверный: кампании «Баннер на поиске» (MCBANNER) API не отдаёт, по ID они приходят пустыми.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | ID рекламной кампании, десятичная строка |
TDQS
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.
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.
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.
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.
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.
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Получить минус-фразы кампанийCRead-only
Получить текущие минус-фразы кампаний по их ID.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_ids | Yes | Кампании, минус-фразы которых нужно прочитать |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the 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.
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.
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.
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.
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.
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Изменения объектовBRead-only
Проверить изменения кампаний, групп и объявлений начиная с указанного времени, а также изменения справочников (mode=dictionaries) и текущее время сервера Директа.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | campaigns — какие кампании менялись целиком; objects — что изменилось внутри выбранных объектов; dictionaries — менялись ли справочники регионов, часовых поясов и интересов | |
| ad_ids | No | Объявления для mode=objects | |
| timestamp | No | Момент, начиная с которого искать изменения: YYYY-MM-DDThh:mm:ssZ. Обязателен для campaigns и objects; для dictionaries без него возвращается только текущее время сервера | |
| field_names | No | Какие изменения интересуют; по умолчанию — соответствующие переданным ID | |
| ad_group_ids | No | Группы для mode=objects | |
| campaign_ids | No | Кампании для mode=objects |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds 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.
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.
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.
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.
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.
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Аукцион по фразамARead-only
Сколько стоит показ: ставки и списываемые цены по позициям, ставки конкурентов, минимальная цена входа. Всё в рублях. Позиции — P11–P14 (спецразмещение над выдачей) и P21–P24 (гарантия под выдачей); у каждой Bid — сколько надо поставить, Price — сколько спишется на деле. Отбор по одному уровню: фразы, группы или кампании. Цену аукциона показывает для любой кампании, но ставкой она управляется только при ручном управлении: на автостратегии (любая WB_*, AVERAGE_CPA, AVERAGE_CPC и прочие) ставки назначает Директ, и set_keyword_bids там ничего не даст. Стратегию кампании проверяйте через get_strategy.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| keyword_ids | No | Аукцион по указанным фразам | |
| ad_group_ids | No | Аукцион по всем фразам указанных групп | |
| campaign_ids | No | Аукцион по всем фразам указанных кампаний |
TDQS
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.
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.
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.
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.
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.
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Справочник регионовARead-only
Справочник кодов регионов (GeoRegions) для таргетинга. Фильтр по названию, 225 = Россия. with_parents=true показывает вложенность и различает одноимённые города.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько регионов вернуть, максимум 500 | |
| search | No | Фильтр по названию региона: подстрока без учёта регистра, например «москва» | |
| with_parents | No | Показать, во что вложен регион (Новосибирск → Новосибирская область, Россия) — так различаются одноимённые города. По умолчанию выключено; требует search. Ищет при этом сам Директ — по похожему названию, а не подстрокой, как кэшированный справочник |
TDQS
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.
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.
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.
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.
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.
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Поисковые запросыARead-only
Отчёт по фактическим поисковым запросам для анализа и добавления минус-фраз.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Поля отчёта; по умолчанию Query, CampaignId, CampaignName, AdGroupId, AdGroupName, Criterion, Impressions, Clicks, Cost | |
| date_to | Yes | Последний день периода включительно, YYYY-MM-DD | |
| date_from | Yes | Первый день периода, YYYY-MM-DD | |
| campaign_ids | Yes | Кампании, по которым нужен отчёт о поисковых запросах |
TDQS
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.
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.
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.
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.
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.
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СтатистикаBRead-only
Статистика кампаний за период: показы, клики, расход (руб), CTR, CPC (ReportService, TSV).
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Поля отчёта; по умолчанию Date, CampaignName, Impressions, Clicks, Cost, Ctr, AvgCpc. Деньги приходят в рублях | |
| date_to | Yes | Последний день периода включительно, YYYY-MM-DD | |
| date_from | Yes | Первый день периода, YYYY-MM-DD | |
| campaign_ids | Yes | Кампании, по которым строится отчёт |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the 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.
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.
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.
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.
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.
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Стратегия кампанииARead-only
Получить текущую стратегию показов текстово-графической кампании вместе с целями (PriorityGoals), счётчиками и моделью атрибуции. Реальные ID целей Метрики, по которым работает кампания, — TextCampaign.PriorityGoals.Items[].GoalId (рядом их ценность Value в рублях), счётчики — CounterIds. GoalId внутри BiddingStrategy бывает служебным: 13 — «оптимизировать по ключевым целям», то есть по тем же PriorityGoals; 12 — «Вовлечённые сессии». Названий целей API Директа не отдаёт — они есть только в Метрике.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | ID текстово-графической кампании |
TDQS
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.
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.
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.
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.
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.
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Расписание показов кампанииBRead-only
Временной таргетинг кампании: часовой пояс, часы показов по дням недели, почасовые коэффициенты и настройка праздников.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | ID кампании, десятичная строка |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds 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.
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.
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.
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.
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.
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.
link_negative_keyword_setsПривязать общие минус-фразыAIdempotent
Заменить привязки общих наборов минус-фраз у кампаний и/или групп объявлений. Привязка к кампании действует на все её группы. Пустой set_ids очищает привязки.
| Name | Required | Description | Default |
|---|---|---|---|
| set_ids | Yes | Полный новый список наборов объекта — прежние привязки затираются. Пустой массив снимает все | |
| ad_group_ids | No | Группы, которым назначаются наборы | |
| campaign_ids | No | Кампании, которым назначаются наборы. Привязка на уровне кампании действует на все её группы. Тип кампании сервер читает сам — это дополнительный вызов API; общие наборы поддерживают TEXT_CAMPAIGN, DYNAMIC_TEXT_CAMPAIGN, MOBILE_APP_CAMPAIGN и UNIFIED_CAMPAIGN |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover readOnly=false, idempotent=true and openWorld=true, but the description adds real behavioral context: bindings are replaced (not appended), campaign-level bindings cascade to all its ad groups, and an empty set_ids clears them. It also notes that campaign type is read server-side, causing an extra API call — a useful cost hint not present in structured fields. Missing only permission/error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with zero filler; the replacement semantics come first and each subsequent sentence adds a distinct behavioral fact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with full annotation coverage, full schema descriptions and no output schema, the description supplies the key destructive/cascade/clearing semantics an agent needs. It stops short of routing guidance against the many sibling negative-keyword tools, which is the one notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema, including maxItems and the destructive-replacement note. The description only reinforces the empty-set_ids behavior already stated in the schema, adding no new syntax or format detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Заменить привязки общих наборов минус-фраз') plus the two target scopes (кампаний и/или групп объявлений). This clearly separates it from sibling tools like set_campaign_negative_keywords and set_ad_group_negative_keywords, which operate on individual keywords rather than shared sets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the operational semantics (campaign-level binding cascades to all ad groups, empty set_ids clears), which implies usage, but never states when to choose this over manage_negative_keyword_shared_sets or the per-level negative keyword tools. No alternatives or prerequisites are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ad_extensionsСписок уточненийBRead-only
Получить уточнения (callouts) с их статусами и текстом.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| states | No | Фильтр по состоянию уточнения | |
| statuses | No | Фильтр по статусу модерации уточнения | |
| ad_extension_ids | No | Конкретные уточнения; без них возвращаются все |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds 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.
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.
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.
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.
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.
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Список группBRead-only
Группы объявлений выбранных кампаний: названия, регионы, статусы.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| campaign_ids | Yes | Кампании, группы которых нужно выбрать |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the 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.
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.
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.
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.
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.
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Список объявленийARead-only
Объявления в группах: заголовки, тексты, ссылки, статусы, тип и подтип объявления, привязанные сайтлинки, визитка и изображение. Причина отказа модерации приходит в StatusClarification. Отбор только по группам — по ID объявления не ищет. Архивные приходят наравне с активными. Список может быть неполным: объявления, тексты которых генерирует нейросеть Яндекса, через API недоступны и в выдачу не попадают, а по ответу это никак не видно. Поэтому «в группе только эти объявления» из ответа не следует — ни из пустого, ни из непустого; для полноты картины сверяйтесь с интерфейсом Директа.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| ad_group_ids | Yes | Группы, объявления которых нужно выбрать |
TDQS
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.
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.
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.
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.
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.
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Аудиторные целиBRead-only
Получить условия нацеливания на аудиторию по ID кампании, группы, ретаргетинга или интереса.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| states | No | Фильтр по состоянию: ON или SUSPENDED | |
| ad_group_ids | No | Условия выбранных групп | |
| campaign_ids | No | Условия выбранных кампаний | |
| interest_ids | No | Условия, построенные на этих интересах | |
| audience_target_ids | No | Конкретные условия нацеливания | |
| retargeting_list_ids | No | Условия, построенные на этих списках ретаргетинга |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds 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.
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.
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.
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.
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.
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Профили организацийBRead-only
Получить доступные профили организаций из Яндекс Бизнеса.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| business_ids | No | Конкретные профили; без них возвращаются все доступные |
TDQS
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.
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.
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.
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.
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.
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Список кампанийARead-only
Список рекламных кампаний Яндекс.Директ с фильтрацией по статусу и типу. Бюджеты — в рублях. По умолчанию возвращается узкий набор полей; нужны другие (Funds, TimeZone, NegativeKeywords и прочие из CampaignFieldEnum) — перечислите их в fields. Кампаний «Баннер на поиске» (MCBANNER) API не отдаёт вовсе: их нет в списке, и это граница API, а не ошибка логина или фильтра — такие кампании видны только в веб-интерфейсе.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| types | No | Фильтр по типам кампаний | |
| fields | No | Какие поля вернуть; по умолчанию Id, Name, Status, StatusClarification, State, DailyBudget, StartDate, Type, Statistics | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| status | No | Фильтр по статусу модерации кампании |
TDQS
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.
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.
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.
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.
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.
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Динамические целиCRead-only
Получить условия нацеливания динамических текстовых объявлений.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| states | No | Фильтр по состоянию: ON или SUSPENDED | |
| ad_group_ids | No | Цели выбранных групп | |
| campaign_ids | No | Цели выбранных кампаний | |
| dynamic_target_ids | No | Конкретные динамические цели |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds 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.
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.
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.
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.
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.
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Список фидовBRead-only
Получить товарные фиды, их источники, статусы обработки и связанные кампании.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| feed_ids | No | Конкретные фиды; без них возвращаются все фиды аккаунта |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds 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.
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.
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.
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.
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.
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Список ключевых словBRead-only
Ключевые фразы в группах объявлений: фразы, ставки (руб), статусы. По умолчанию возвращается узкий набор полей; нужны другие (StatisticsSearch, StatisticsNetwork, Productivity, ServingStatus и прочие из KeywordFieldEnum) — перечислите их в fields.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| fields | No | Какие поля вернуть; по умолчанию Id, Keyword, CampaignId, AdGroupId, Status, State, Bid, ContextBid | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| ad_group_ids | Yes | Группы, ключевые фразы которых нужно выбрать |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds 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.
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.
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.
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.
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.
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_retargeting_listsСписки ретаргетингаCRead-only
Получить условия ретаргетинга и подбора аудитории с правилами и областью применения.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| types | No | Фильтр по типу: RETARGETING — цели Метрики, AUDIENCE — сегменты Аудиторий | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| retargeting_list_ids | No | Конкретные условия; без них возвращаются все |
TDQS
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.
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.
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.
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.
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.
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_sitelinksСписок быстрых ссылокCRead-only
Получить все или выбранные наборы быстрых ссылок.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| sitelink_set_ids | No | Конкретные наборы; без них возвращаются все наборы аккаунта |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that — no note on pagination behavior, result volume, or permissions. It does not contradict the annotations, but contributes very little behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that is front-loaded with the action and contains no filler. It is efficient, though its brevity is partly the source of the missing usage and behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with zero required parameters, fully documented schema, and no output schema, the description is minimally sufficient. Annotations cover the safety profile, but nothing addresses result ordering or pagination beyond the offset parameter's own schema text.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, offset, and sitelink_set_ids are fully documented in the schema itself. The description's 'all or selected sets' mirrors the optional sitelink_set_ids filter but adds no syntax or format detail. Baseline 3 is appropriate 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Получить') and resource ('наборы быстрых ссылок') and clarifies the all-vs-selected scope. It separates itself from write operations like set_sitelinks/delete_sitelinks by verb alone, but never explicitly names a sibling, 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.
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 list_ad_extensions or set_sitelinks, no prerequisites, and no conditions. The 'all or selected' phrasing hints at filtering but is a description of scope, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_time_zonesСправочник часовых поясовBRead-only
Справочник часовых поясов (TimeZones) для set_time_targeting и create_campaign. Фильтр по коду или названию.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько часовых поясов вернуть, максимум 500 | |
| search | No | Фильтр по коду или названию пояса: подстрока без учёта регистра, например «moscow» или «Екатеринбург» |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds 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.
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.
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.
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.
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.
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Список визитокARead-only
Получить виртуальные визитки по ID или найти их через объявления выбранных кампаний.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| vcard_ids | No | Конкретные визитки по их ID | |
| campaign_ids | No | Найти визитки, привязанные к объявлениям этих кампаний |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds 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.
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.
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.
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.
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.
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Управление изображениямиBDestructive
Загрузить, получить или удалить изображения объявлений (AdImages). Для add данные передаются в base64.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Сколько объектов вернуть (максимум 10000) | |
| action | Yes | Что сделать: add, get или delete (необратимо) | |
| images | No | Изображения для загрузки; обязателен при action=add | |
| offset | No | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы | |
| associated | No | Фильтр при action=get: YES — только привязанные к объявлениям, NO — только свободные | |
| ad_image_hashes | No | Хеши изображений: фильтр при action=get, обязателен при action=delete |
TDQS
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.
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.
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.
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.
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.
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Управление объявлениямиADestructive
Действие над объявлениями: suspend/resume/archive/unarchive/moderate/delete. ⚠️ delete необратимо.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Действие: suspend, resume, archive, unarchive, moderate или delete (необратимо) | |
| ad_ids | Yes | Объявления, над которыми выполняется действие |
TDQS
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.
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.
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.
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.
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.
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Управление кампаниямиADestructive
Запустить, остановить, архивировать, разархивировать или удалить кампании. ⚠️ delete необратимо и недоступен кампании с накопленной статистикой — такую только архивировать.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Действие: suspend, resume, archive, unarchive или delete (необратимо) | |
| campaign_ids | Yes | ID кампаний, над которыми выполняется действие |
TDQS
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.
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.
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.
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.
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.
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Управление динамическими целямиBDestructive
Создать, изменить ставки, остановить, возобновить или удалить динамические цели.
| Name | Required | Description | Default |
|---|---|---|---|
| bids | No | Новые ставки и приоритеты; обязателен при action=set_bids | |
| action | Yes | Что сделать: add, set_bids, suspend, resume или delete (необратимо) | |
| targets | No | Цели для добавления; обязателен при action=add | |
| dynamic_target_ids | No | Цели для suspend, resume или delete |
TDQS
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.
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.
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.
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.
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.
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Управление ключевыми словамиBDestructive
Действие над ключевыми фразами: suspend/resume/delete. ⚠️ delete необратимо.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Действие: suspend, resume или delete (необратимо) | |
| keyword_ids | Yes | Фразы, над которыми выполняется действие |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the 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.
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.
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.
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.
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.
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.
moderate_adsОтправить объявления на модерациюCIdempotent
Отправить выбранные объявления на модерацию.
| Name | Required | Description | Default |
|---|---|---|---|
| ad_ids | Yes | Объявления, отправляемые на модерацию |
TDQS
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.
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.
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.
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.
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.
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Минус-фразы группыADestructive
Минус-фразы на уровне группы объявлений. Режим mode обязателен: replace заменяет список целиком (прежние фразы теряются, пустой массив очищает), add дописывает к текущим, remove убирает названные — читать список перед этим не нужно, add и remove делают это сами. Чтобы добавить фразу к существующим, нужен add: replace с одной фразой сотрёт остальные.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Обязателен. replace — заменить список целиком (пустой массив очищает, прежние фразы теряются), add — дописать к текущим, remove — убрать перечисленные. add и remove сначала читают текущий список, это дополнительный вызов API. Фразы сравниваются так же, как их сравнивает Директ: без учёта регистра, буквы ё и е равны, краевые и повторные пробелы не учитываются, операторы закрепления ! и + игнорируются | |
| ad_group_id | Yes | ID группы объявлений | |
| negative_keywords | Yes | Минус-фразы группы: при mode=replace — полный новый список взамен прежнего, при add — что дописать, при remove — что убрать |
TDQS
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.
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.
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.
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.
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.
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Управление аудиторными целямиBDestructive
Добавить, остановить, возобновить, удалить аудиторные цели или изменить их ставки.
| Name | Required | Description | Default |
|---|---|---|---|
| bids | No | Новые ставки и приоритеты; обязателен при action=set_bids | |
| action | Yes | Что сделать: add, set_bids, suspend, resume или delete (необратимо) | |
| targets | No | Условия для добавления; обязателен при action=add | |
| audience_target_ids | No | Условия для suspend, resume или delete |
TDQS
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.
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.
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.
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.
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.
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Изменить корректировки ставокAIdempotent
Изменить коэффициенты существующих корректировок по их ID.
| Name | Required | Description | Default |
|---|---|---|---|
| adjustments | Yes | Корректировки и их новые коэффициенты |
TDQS
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.
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.
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.
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.
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.
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Минус-фразы кампанииADestructive
Минус-фразы на уровне кампании. Режим mode обязателен: replace заменяет список целиком (прежние фразы теряются, пустой массив очищает), add дописывает к текущим, remove убирает названные — читать список перед этим не нужно, add и remove делают это сами. Чтобы добавить фразу к существующим, нужен add: replace с одной фразой сотрёт остальные.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Обязателен. replace — заменить список целиком (пустой массив очищает, прежние фразы теряются), add — дописать к текущим, remove — убрать перечисленные. add и remove сначала читают текущий список, это дополнительный вызов API. Фразы сравниваются так же, как их сравнивает Директ: без учёта регистра, буквы ё и е равны, краевые и повторные пробелы не учитываются, операторы закрепления ! и + игнорируются | |
| campaign_id | Yes | ID кампании | |
| negative_keywords | Yes | Минус-фразы кампании: при mode=replace — полный новый список взамен прежнего, при add — что дописать, при remove — что убрать |
TDQS
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.
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.
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.
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.
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.
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Установить ставкиAIdempotent
Установить ставки (поиск/сети, в рублях) на уровне фраз, групп или кампаний (сервис Bids). Работает только при ручном управлении ставками: на автостратегии Директ назначает ставки сам, вызов пройдёт без ошибки, но на показы не повлияет. Сначала get_strategy, затем get_keyword_auction — сколько стоит нужная позиция.
| Name | Required | Description | Default |
|---|---|---|---|
| bid | No | Ставка на поиске в рублях | |
| context_bid | No | Ставка в сетях (РСЯ) в рублях | |
| keyword_ids | No | Ставки на уровне фраз | |
| ad_group_ids | No | Ставки на все фразы указанных групп | |
| campaign_ids | No | Ставки на все фразы указанных кампаний |
TDQS
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.
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.
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.
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.
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.
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Цели стратегииADestructive
Задать цели стратегии кампании (PriorityGoals) и их ценность в рублях — по ним автостратегия оптимизирует ставки, в том числе «максимум конверсий» со служебным GoalId 13. Режим mode обязателен: add добавляет цели или меняет ценность уже заданных, remove убирает названные, replace заменяет список целиком (пустой массив очищает). Текущий список сервер читает сам. Чтобы добавить цель к существующим, нужен add: replace с одной целью сотрёт остальные. ⚠️ Смена целей перезапускает обучение стратегии. Поддерживаются текстово-графические, динамические, смарт и единые перфоманс-кампании; ID целей — из Метрики.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Обязателен. replace — заменить список целиком (прежние цели теряются), add — добавить цели или поменять ценность уже заданных, remove — убрать перечисленные. Текущий список сервер читает сам, это дополнительный вызов API | |
| goals | Yes | Цели: при mode=replace — полный новый список взамен прежнего (пустой массив очищает), при add — что добавить или чью ценность поменять, при remove — что убрать | |
| campaign_id | Yes | ID кампании: текстово-графической, динамической, смарт или единой перфоманс-кампании |
TDQS
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.
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.
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.
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.
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.
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_sitelinksСоздать быстрые ссылкиA
Создать новый набор из 1–8 быстрых ссылок. Возвращает ID набора для привязки к объявлению.
| Name | Required | Description | Default |
|---|---|---|---|
| sitelinks | Yes | Новый набор из 1–8 быстрых ссылок |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false (a mutation) and openWorldHint=true, so safety profile is covered. The description adds one genuinely useful behavioral fact — that it returns a set ID for ad linking — but says nothing about permissions, duplicate handling, whether existing sets are overwritten, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and scope, followed by the return value. No filler or redundant clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with full schema coverage and annotations, the description is nearly complete and even compensates for the missing output schema by stating the returned ID. Only deeper mutation semantics (idempotency, overwrite behavior) are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested items are fully documented (title 30 chars, description 60 chars, href), so the schema carries the parameter burden. The description's '1–8' range merely restates the minItems/maxItems already in the schema, adding no new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Создать новый набор из 1–8 быстрых ссылок'), which disambiguates the ambiguous 'set_' prefix as a create operation rather than a bulk-set. It does not explicitly contrast with siblings such as list_sitelinks or delete_sitelinks, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the description notes the returned ID is meant for attaching to an ad, which hints at the workflow (create set, then link to ad). There is no explicit when-to-use, when-not-to-use, or named alternative among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_strategyИзменить стратегию кампанииBIdempotent
Изменить стратегию текстово-графической кампании: ручная, максимум кликов, средняя цена клика или конверсии, оплата за конверсию. Цены — в рублях, цель Метрики — goal_id.
| Name | Required | Description | Default |
|---|---|---|---|
| goal_id | No | ID цели Метрики для AVERAGE_CPA, PAY_FOR_CONVERSION и WB_MAXIMUM_CONVERSION_RATE; для оплаты за конверсию обязателен. Для WB_MAXIMUM_CONVERSION_RATE допустимо служебное 13 — оптимизация по ключевым целям кампании (PriorityGoals); Директ принимает его, только если в PriorityGoals есть цель, кроме 12 «Вовлечённые сессии»; сами цели задаёт set_priority_goals | |
| average_cpa | No | Средняя цена конверсии в рублях; обязательна для AVERAGE_CPA | |
| average_cpc | No | Средняя цена клика в рублях; обязательна для AVERAGE_CPC | |
| bid_ceiling | No | Максимальная ставка в рублях для WB_MAXIMUM_CLICKS, WB_MAXIMUM_CONVERSION_RATE и AVERAGE_CPA | |
| campaign_id | Yes | ID текстово-графической кампании | |
| search_type | Yes | Стратегия на поиске: HIGHEST_POSITION (ручная), WB_MAXIMUM_CLICKS, WB_MAXIMUM_CONVERSION_RATE (максимум конверсий за недельный бюджет), AVERAGE_CPC, AVERAGE_CPA, PAY_FOR_CONVERSION или SERVING_OFF | |
| network_type | Yes | Стратегия в сетях: NETWORK_DEFAULT (по настройкам поиска), MAXIMUM_COVERAGE, WB_MAXIMUM_CLICKS, WB_MAXIMUM_CONVERSION_RATE, AVERAGE_CPC, AVERAGE_CPA, PAY_FOR_CONVERSION или SERVING_OFF | |
| conversion_price | No | Цена конверсии в рублях для PAY_FOR_CONVERSION: списывается за конверсию, а не за клик | |
| weekly_spend_limit | No | Недельный бюджет в рублях; обязателен для WB_MAXIMUM_CLICKS и WB_MAXIMUM_CONVERSION_RATE, для остальных автостратегий необязателен | |
| network_limit_percent | No | Доля расходов в сетях для NETWORK_DEFAULT, проценты |
TDQS
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.
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.
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.
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.
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.
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Задать расписание показовAIdempotent
Задать расписание показов кампании: дни, часы, почасовые коэффициенты, праздники и часовой пояс. ⚠️ Расписание заменяется целиком: часы вне переданных правил показов не получат.
| Name | Required | Description | Default |
|---|---|---|---|
| schedule | Yes | Правила показов. Часы, не покрытые ни одним правилом, показов не получают — расписание задаётся целиком, а не дополняется. Правила применяются по порядку, последнее переопределяет предыдущие | |
| time_zone | No | Часовой пояс кампании, например Europe/Moscow. Допустимые значения — в справочнике list_time_zones. Не задан — остаётся прежним | |
| campaign_id | Yes | ID кампании, десятичная строка | |
| holiday_end_hour | No | Час окончания показов в праздники, не включая его, 1–24 | |
| holiday_start_hour | No | Час начала показов в праздники включительно, 0–23 | |
| holiday_bid_percent | No | Коэффициент к ставке в праздники, % от текущей: 10–200 с шагом 10. Ноль запрещён — показы отключает suspend_on_holidays | |
| suspend_on_holidays | No | true — в праздники показов нет; false — идут по правилам holiday_*. Не задан — праздники отдельно не настраиваются | |
| consider_working_weekends | No | Показывать ли в рабочие выходные по расписанию переносимого буднего дня; false — по расписанию выходного |
TDQS
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.
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.
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.
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.
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.
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Обновить кампаниюAIdempotent
Обновить кампанию: название, бюджет (руб), UTM-разметку и/или статус (SUSPEND/RESUME/ARCHIVE/UNARCHIVE). Разметка действует на ссылки всех объявлений кампании.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Новое название | |
| status | No | Действие со статусом показов: SUSPEND (остановить), RESUME, ARCHIVE, UNARCHIVE | |
| campaign_id | Yes | ID кампании, десятичная строка | |
| daily_budget | No | Новый дневной бюджет в рублях | |
| tracking_params | No | UTM-разметка, дописывается к ссылкам всех объявлений кампании. Без ведущего «?»: utm_source=yandex&utm_campaign={campaign_id}. Допустимы подстановки Директа в фигурных скобках. null снимает разметку |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Фразы и их новые значения; поля, которые не переданы, остаются прежними |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| retargeting_lists | Yes | Условия и их новые значения; поля, которые не переданы, остаются прежними |
TDQS
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.
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.
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.
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.
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.
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Обновить объявлениеAIdempotent
Обновить текстовое объявление: заголовок, текст, ссылка. Изменённое объявление уходит на модерацию.
| Name | Required | Description | Default |
|---|---|---|---|
| href | No | Новая ссылка на сайт | |
| text | No | Новый текст объявления | |
| ad_id | Yes | ID обновляемого объявления | |
| title | No | Новый заголовок | |
| title2 | No | Новый второй заголовок |
TDQS
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.
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.
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.
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.
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.
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.
60 tool updates
v1.6.1- First observed
add_ad_extensions - First observed
add_bid_adjustments - First observed
add_keywords - First observed
add_retargeting_list - First observed
add_vcard - First observed
create_ad_group - First observed
create_campaign - First observed
create_text_ad - First observed
delete_ad_extensions - First observed
delete_ad_groups - First observed
delete_bid_adjustments - First observed
delete_retargeting_lists - First observed
delete_sitelinks - First observed
delete_vcards - First observed
get_account_balance - First observed
get_bid_adjustments - First observed
get_campaign - First observed
get_campaign_negative_keywords - First observed
get_changes - First observed
get_keyword_auction - First observed
get_regions - First observed
get_search_queries - First observed
get_statistics - First observed
get_strategy - First observed
get_time_targeting - First observed
link_negative_keyword_sets - First observed
list_ad_extensions - First observed
list_ad_groups - First observed
list_ads - First observed
list_audience_targets - First observed
list_businesses - First observed
list_campaigns - First observed
list_dynamic_targets - First observed
list_feeds - First observed
list_keywords - First observed
list_negative_keyword_shared_sets - First observed
list_retargeting_lists - First observed
list_sitelinks - First observed
list_time_zones - First observed
list_vcards - First observed
manage_ad_images - First observed
manage_ads - First observed
manage_campaigns - First observed
manage_dynamic_targets - First observed
manage_keywords - First observed
manage_negative_keyword_shared_sets - First observed
moderate_ads - First observed
set_ad_group_negative_keywords - First observed
set_audience_targets - First observed
set_bid_adjustments - First observed
set_campaign_negative_keywords - First observed
set_keyword_bids - First observed
set_priority_goals - First observed
set_sitelinks - First observed
set_strategy - First observed
set_time_targeting - First observed
update_campaign - First observed
update_keywords - First observed
update_retargeting_lists - First observed
update_text_ad
TDQS
Scored across 60 tools
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.
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.
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.
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
Related MCP Connectors
MCP for Yandex Direct: manage ad campaigns & analytics from Claude or ChatGPT
Google Ads MCP server — manage campaigns, keywords, and metrics.
Manage Apple Ads campaigns and reporting in chat.
Build, edit and sync Google, Microsoft, Reddit and Meta ad campaigns from your assistant.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables managing Yandex Direct PPC campaigns, ad groups, ads, and keywords, plus pulling performance statistics via the Yandex Direct API v5.44100 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables 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
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Yandex Direct advertising campaigns, ads, keywords, and reports via natural language using the Yandex Direct API v5.21MIT
- AlicenseAqualityCmaintenanceEnables AI agents to manage Yandex Direct advertising accounts via the API v5, including reports, bids, campaign management, and semantic analysis through natural language requests.44 npmMIT