Skip to main content
Glama
theYahia

yandex-direct-mcp

by theYahia

🗄 Repository archived

Development has moved to theYahia/YaAll — a build where the entire Yandex layer lives in one place: official Yandex MCP servers, MCP for Direct and Metrika, the YaGEO skill, and the Wordstat gate.

The current version of what was here: mcp/yandex-direct-mcp/

Nothing is updated here anymore. Issues and pull requests — in YaAll.

Archived — development moved to theYahia/YaAll, a single repository bundling the whole Yandex stack. The current version of this package now lives at mcp/yandex-direct-mcp/. Please open issues and pull requests there.

@theyahia/yandex-direct-mcp

MCP server for the Yandex.Direct API — manage contextual advertising from any MCP client (Claude, Cursor, etc.): campaigns, ad groups, ads, keywords, bids, negative keywords, statistics, balance. 20 tools.

npm License: MIT

Money is in rubles (budgets, bids on input and output); the server itself converts to API micro-units. Sandbox for safe testing and agency mode (Client-Login) are supported.

Related MCP server: yandex-mcp

Installation

Claude Desktop

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

Claude Code

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

Configuration (environment variables)

Variable

Required

Purpose

YANDEX_DIRECT_TOKEN

yes

Yandex.Direct OAuth token

YANDEX_DIRECT_SANDBOX

no

1 — work in the sandbox (isolated data, no spending). Same token, only the URL differs

YANDEX_DIRECT_LOGIN

no

Client login for agency tokens (Client-Login header). Required if the token is an agency one

How to get a token

The OAuth token is issued for an app registered in Yandex OAuth with access to the Direct API. Details — app registration and getting a token. API access must be requested in the Direct interface.

⚠️ Warning: real spending

The create_campaign, create_text_ad, add_keywords, set_keyword_bids and other tools modify a live advertising account and can spend money. For debugging scenarios, enable the sandbox (YANDEX_DIRECT_SANDBOX=1).

Tools (20)

Campaigns

Tool

Description

list_campaigns

List of campaigns (filter by status/type, pagination)

get_campaign

Detailed campaign info by ID

create_campaign

Create a campaign (budget in rubles, strategy selection)

update_campaign

Update name/budget and/or status (SUSPEND/RESUME/ARCHIVE/UNARCHIVE)

Ad groups

Tool

Description

list_ad_groups

Ad groups of selected campaigns

create_ad_group

Create a group with region targeting

delete_ad_groups

Delete groups by ID

set_ad_group_negative_keywords

Set group negative keywords

Ads

Tool

Description

list_ads

Ads in groups

create_text_ad

Create a text ad (≤56/≤30/≤81)

update_text_ad

Update headline/text/link

manage_ads

suspend/resume/archive/unarchive/moderate/delete

Keywords and bids

Tool

Description

list_keywords

Keyword phrases in groups (bids in rubles)

add_keywords

Add keyword phrases

set_keyword_bids

Set bids (search/network, rubles) on phrases/groups/campaigns

manage_keywords

suspend/resume/delete

set_campaign_negative_keywords

Set campaign negative keywords

Statistics, account, reference data

Tool

Description

get_statistics

Statistics for a period (impressions, clicks, spend, CTR, CPC)

get_account_balance

Account balance (Live API v4)

get_regions

Region code reference (225 = Russia)

Example requests

Покажи все активные рекламные кампании
Создай кампанию "Летняя распродажа" с бюджетом 5000 ₽/день, старт 2026-05-01
Установи ставку 25 ₽ на ключевые фразы 111 и 222
Добавь минус-фразы "бесплатно", "скачать" в кампанию 12345
Какая статистика у кампаний 12345 и 67890 за последнюю неделю?
Найди код региона для Новосибирска
Покажи баланс аккаунта

Development

npm install
npm run build      # tsc → dist/
npm test           # vitest (моки fetch)
npm run dev        # tsx src/index.ts

License

MIT

Available Tools

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_group_idYesID группы объявлений
keywordsYesМассив ключевых фраз

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint=false) and non-enumerated values (openWorldHint=true). The description adds minimal behavioral detail, only that it adds keywords. It doesn't disclose whether existing keywords are affected or if there are limits.

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

Conciseness3/5

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

The description is a single sentence, which is concise but in Russian, potentially limiting usefulness for non-Russian-speaking agents. It is front-loaded but lacks structured details.

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

Completeness3/5

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

The tool is simple with only two parameters and no output schema, so the description is largely adequate. However, it does not explain return behavior (e.g., success response or error cases), leaving some gaps.

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

Parameters3/5

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

Input schema provides 100% coverage with descriptions for both parameters. The description does not add additional meaning beyond what the schema already conveys.

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

Purpose4/5

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

The description clearly states the verb 'add' and the resource 'key phrases to an ad group', effectively distinguishing it from sibling tools like 'create_ad_group' or 'list_keywords'. However, it lacks specificity on whether keywords are appended or replaced, which slightly reduces clarity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'manage_keywords', nor any prerequisites or restrictions. The description offers no context for appropriate usage.

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesID кампании
nameYesНазвание группы объявлений
region_idsYesКоды регионов показа (например [225] = Россия). См. get_regions.

TDQS

B3.4/5.0
Behavior2/5

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

Annotations indicate openWorldHint=true but the description adds minimal behavioral context. It does not disclose potential side effects, permissions required, or whether the operation is reversible. The description only confirms it creates an ad group, which is already inferred.

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

Conciseness5/5

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

The description is a single short sentence front-loaded with the action. No redundant or wasted words.

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

Completeness2/5

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

Given the tool has 3 required parameters, no output schema, and openWorldHint annotations, the description lacks information about return values, error handling, or prerequisites. It is incomplete for a creation tool that may have side effects.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are well-documented. The description adds a cross-reference to get_regions for region_ids, but does not provide new semantic meaning beyond what the schema already offers.

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

Purpose5/5

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

The description clearly states the verb 'create', the resource 'ad group', and the context 'in a campaign with region targeting'. It distinguishes the tool from siblings like create_campaign or add_keywords, and references get_regions for region codes.

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

Usage Guidelines3/5

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

The description provides clear context for when to use the tool (creating ad groups with region targeting) and references get_regions, but does not explicitly exclude alternative scenarios or mention when not to use it.

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

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

Создать новую рекламную кампанию. Бюджет в рублях. ⚠️ Тратит реальные деньги — используйте sandbox для теста.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesНазвание кампании
typeNoТип: TEXT_CAMPAIGN, DYNAMIC_TEXT_CAMPAIGNTEXT_CAMPAIGN
start_dateYesДата начала YYYY-MM-DD
daily_budgetNoДневной бюджет в рублях (напр. 1000 = 1000 ₽)
search_strategyNoСтратегия на поиске: HIGHEST_POSITION, WB_MAXIMUM_CLICKS, AVERAGE_CPC, AVERAGE_CPA, PAY_FOR_CONVERSION, SERVING_OFFHIGHEST_POSITION
network_strategyNoСтратегия в сетях (РСЯ): SERVING_OFF, NETWORK_DEFAULT, MAXIMUM_COVERAGE, WB_MAXIMUM_CLICKSSERVING_OFF

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses a key behavioral trait beyond annotations: that the tool spends real money. Annotations only indicate readOnlyHint=false and openWorldHint=true, but the description explicitly warns about financial impact, which is highly valuable for an AI agent.

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

Conciseness5/5

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

The description is two concise sentences. The first states the purpose, the second adds critical information about budget currency and a warning. Every sentence is valuable and front-loaded.

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

Completeness4/5

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

For a creation tool with 6 parameters fully described in the schema and no output schema, the description is mostly complete. It covers currency and the major risk (real money). However, it does not mention the return value (e.g., created campaign ID), which could be helpful but is not required given the lack of output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds only a brief note about budget in rubles, which is already in the schema description. This adds marginal value beyond the schema.

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

Purpose5/5

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

The title and description clearly state the tool creates a new advertising campaign. It is distinct from sibling tools like update_campaign, list_campaigns, etc., and the verb 'create' is specific and unambiguous.

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

Usage Guidelines4/5

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

The description provides a critical usage guideline: '⚠️ Тратит реальные деньги — используйте sandbox для теста' (Spends real money - use sandbox for testing). This warns about serious consequences and guides safe use. However, it does not explicitly state when not to use this tool or mention alternatives.

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

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

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

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

TDQS

B3.4/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false (mutation) and openWorldHint=true. The description adds no behavioral context beyond 'create' and repeats max lengths already in schema. No side effects, permissions, or error conditions are disclosed.

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

Conciseness5/5

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

The description is a single, efficient sentence front-loading the purpose. All information is relevant and no filler.

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

Completeness2/5

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

For a creation tool with 5 parameters and no output schema, the description is minimal. It fails to explain what the tool returns (e.g., the created ad's ID) or any prerequisites like ad_group_id existence. The schema covers param descriptions, but overall context is lacking.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter described in the schema. The description merely lists the fields with lengths, adding no new semantic value beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the verb 'Создать' (create) and the resource 'текстовое объявление' (text ad), listing the key fields. It distinguishes from siblings like update_text_ad by focusing on creation.

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

Usage Guidelines3/5

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

The description implies use for creating a new text ad but does not explicitly state when to use this tool versus alternatives like add_keywords or create_ad_group. No when-not-to-use guidance is provided.

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_group_idsYesID групп объявлений для удаления

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, but the description adds the explicit warning '⚠️ Необратимо' (irreversible), reinforcing the destructive nature.

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

Conciseness5/5

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

Two short, focused sentences with no unnecessary information. The warning is effectively highlighted.

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

Completeness4/5

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

For a simple destructive tool with one parameter and no output schema, the description covers the essential action and irreversibility. Adequate for an agent to invoke correctly.

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

Parameters3/5

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

Schema coverage is 100% with a description for ad_group_ids. The tool description adds no extra meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the verb 'delete' and the resource 'ad groups', and specifies deletion by IDs. It effectively distinguishes from sibling tools like create_ad_group or list_ad_groups.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as when to use list_ad_groups before deletion or any prerequisites. Only states the action.

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
loginsNoЛогины аккаунтов (для агентств). По умолчанию — аккаунт токена (или YANDEX_DIRECT_LOGIN).

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description adds marginal value by specifying the return fields (Amount, Currency) and API version. It does not disclose permissions, side effects, or behavior beyond what annotations provide, warranting a moderate score.

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

Conciseness5/5

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

The description is a single sentence that conveys the essential purpose without unnecessary words. It is front-loaded and structurally optimal for an agent to parse quickly.

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

Completeness4/5

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

Given the tool's simplicity (one optional parameter, no output schema, read-only annotations), the description adequately covers the core functionality. It lacks details like default behavior when 'logins' is omitted or the format of amount/currency, but these are minor given the context.

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

Parameters3/5

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

The single parameter 'logins' is fully described in the schema (100% coverage), and the description does not add further semantic meaning. Baseline score of 3 is appropriate since the schema carries the burden.

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

Purpose4/5

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

The description clearly states the tool retrieves balance and financial information (Amount, Currency) via Live API v4. It uses a specific verb-resource pair, but does not explicitly differentiate from sibling tools, though the read-only nature distinguishes it from management siblings.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool or when to avoid it. No alternatives are mentioned, and the parameter description for 'logins' is only in the schema. The absence of usage context leaves the agent to infer its application.

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

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

Детальная информация о кампании по ID: бюджет (руб), статус, даты, статистика.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesID рекламной кампании

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true (safe read) and openWorldHint=true (results may vary). The description adds value by enumerating the returned fields (budget in RUB, status, dates, statistics), which goes beyond the annotations. No contradictions.

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

Conciseness5/5

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

The description is a single sentence that concisely conveys the tool's purpose and key output fields. No unnecessary words or fluff.

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

Completeness4/5

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

For a simple read tool with one parameter and rich annotations, the description covers the essential return fields. It does not mention error handling (e.g., invalid ID) but that is often implicit. The lack of output schema is compensated by describing output content.

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

Parameters3/5

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

Schema description coverage is 100% with a clear description for campaign_id. The tool description does not add additional parameter semantics beyond what the schema provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it provides detailed information (budget, status, dates, statistics) for a campaign by ID. It distinguishes from siblings like list_campaigns (which lists all campaigns) and update_campaign (which modifies). The verb 'get' is implicit but the resource and scope are clear.

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

Usage Guidelines3/5

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

The description implies use when needing campaign details by ID, but does not explicitly specify when to use this tool versus alternatives like list_campaigns. No 'when not to' guidance is provided, though the context is straightforward.

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoФильтр по названию региона (подстрока, регистронезависимо). Напр. 'москва'
limitNoМакс число регионов в ответе

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, so the description carries less burden. It adds the ability to filter by name and the example '225 = Россия', but does not disclose other behaviors such as pagination, error handling, or response structure. A score of 3 is appropriate as annotations cover safety and the description adds some context.

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

Conciseness5/5

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

The description is extremely concise: two short sentences. Every phrase adds value—the directory's purpose, filtering capability, and a notable region code. No wasted words, and the structure is front-loaded with the main purpose.

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

Completeness4/5

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

Given the tool's low complexity (2 optional parameters, no output schema), the description explains the core functionality and filtering. It could be improved by explicitly mentioning that the response is a list of regions with codes and names, but the example '225 = Россия' hints at the return format. Overall, it is fairly complete for a simple lookup tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already well-documented. The description mentions filtering by name, which matches the 'search' parameter, but adds no new meaning beyond the schema. Baseline 3 is correct.

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

Purpose4/5

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

The description states it is a directory of region codes (GeoRegions) for targeting, with filtering by name. This clearly identifies the tool's purpose as a lookup/reference. The verb 'get' is implicit but the title 'Справочник' (directory) reinforces the read-only nature. It distinguishes from sibling tools which are mostly mutation/campaign management tools.

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

Usage Guidelines3/5

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

The description implies usage for targeting with region filters, but does not explicitly state when to use this tool vs alternatives. No exclusions or alternative tool recommendations are given. Given the sibling tools are unrelated, the usage context is adequately implied.

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

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

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

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

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. Description adds useful behavioral details: returns TSV from ReportService, which exceeds annotation scope without contradiction.

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

Conciseness5/5

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

Single sentence with key info (purpose, metrics, source, format) front-loaded. No wasted words.

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

Completeness4/5

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

No output schema, but description mentions TSV format, partially compensating. For a straightforward statistics retrieval, it provides sufficient context given annotations.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters. Description adds no further parameter-level meaning beyond what schema provides, meeting baseline.

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

Purpose5/5

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

Description clearly states 'campaign statistics for period' with specific metrics (impressions, clicks, cost, CTR, CPC) and source (ReportService, TSV). Unique among siblings.

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

Usage Guidelines4/5

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

Implicitly for retrieving campaign performance data over a date range. No explicit when-not-to-use, but no sibling alternative exists, making context clear.

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idsYesID кампаний для выборки групп
limitNoСколько объектов вернуть (макс 10000)
offsetNoСмещение выборки для пагинации (= LimitedBy предыдущей страницы)

TDQS

B3.1/5.0
Behavior3/5

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

Annotations (readOnlyHint, openWorldHint) already indicate safety and dynamic results. The description adds that the tool returns names, regions, and statuses, providing a bit more detail beyond annotations. No contradictions.

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

Conciseness4/5

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

Description is a single concise sentence that conveys the core functionality. However, it is in Russian, which may limit understanding for non-Russian agents. It could be more structured with bullet points.

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

Completeness2/5

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

No output schema is provided, and the description only hints at return fields (names, regions, statuses). It does not explain pagination (limit/offset usage), response format, or further details needed for an agent to fully use the tool.

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

Parameters3/5

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

Input schema has 100% description coverage with clear explanations for campaign_ids, limit, and offset. The description does not add any additional parameter semantics beyond what the schema already provides.

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

Purpose4/5

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

Description clearly states that the tool returns ad groups for selected campaigns, including names, regions, and statuses. However, it does not use an explicit verb like 'list' or 'retrieve', and the title provides context. It could be more precise.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like list_ads or list_campaigns. The description implies usage for retrieving ad groups by campaign IDs but does not mention exclusions or when to choose another tool.

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_group_idsYesID групп объявлений
limitNoСколько объектов вернуть (макс 10000)
offsetNoСмещение выборки для пагинации (= LimitedBy предыдущей страницы)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already mark the tool as readOnlyHint=true and openWorldHint=true. The description adds that it returns specific fields (titles, texts, links, statuses), which is useful but does not disclose pagination behavior or ordering. No contradiction with annotations.

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

Conciseness5/5

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

The description is a single sentence that immediately conveys the tool's purpose and the type of data returned. No redundant information.

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

Completeness4/5

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

Given the simplicity of the tool and the presence of annotations (readOnlyHint, openWorldHint), the description is largely sufficient. It lacks details on pagination or status meanings, but for a list operation, the essential information is present.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions. The description does not add any additional meaning to parameters like limit, offset, or ad_group_ids beyond what the schema already provides. Baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool lists ads in groups, specifying the fields returned (titles, texts, links, statuses). It distinguishes from sibling tools like list_ad_groups and list_keywords by focusing on ads and their contents.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., list_ad_groups for groups, get_statistics for metrics). The description implies usage for retrieving ad details but does not specify contexts or exclusions.

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

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

Список рекламных кампаний Яндекс.Директ с фильтрацией по статусу и типу. Бюджеты — в рублях.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoФильтр по статусу: ACCEPTED, DRAFT, MODERATION и т.д.
typesNoТипы кампаний: TEXT_CAMPAIGN, DYNAMIC_TEXT_CAMPAIGN и т.д.
limitNoСколько объектов вернуть (макс 10000)
offsetNoСмещение выборки для пагинации (= LimitedBy предыдущей страницы)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the read-only nature is known. The description adds minimal behavioral context: budgets are in rubles and filtering by status/type is available. No mention of pagination behavior, default limit, or performance characteristics.

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

Conciseness5/5

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

The description is concise with only two sentences. The first sentence states the primary purpose and key features (filtering by status and type), and the second sentence adds a specific detail about budget currency. No wasted words.

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

Completeness3/5

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

Given the tool's simplicity and the presence of annotations (readOnlyHint, openWorldHint), the description adequately covers the core functionality. However, there is no output schema and the description does not explain the return format, pagination behavior beyond the limit/offset parameters, or default ordering. Missing details on what fields are returned per campaign.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description mentions filtering by status and type, which aligns with the parameters, but adds no new semantic details beyond what the schema provides (e.g., no examples of acceptable values or format expectations). Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly specifies the tool's purpose: listing Yandex.Direct advertising campaigns with filtering by status and type. It distinguishes itself from siblings like get_campaign (single campaign) and other list tools by emphasizing the filtering capabilities and the fact that budgets are in rubles.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it, mention prerequisites, or compared siblings like add_keywords, create_campaign, or get_statistics.

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

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

Ключевые фразы в группах объявлений: фразы, ставки (руб), статусы.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_group_idsYesID групп объявлений
limitNoСколько объектов вернуть (макс 10000)
offsetNoСмещение выборки для пагинации (= LimitedBy предыдущей страницы)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds minimal behavioral context beyond the return fields. It does not discuss pagination or other traits.

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

Conciseness4/5

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

The description is a single sentence that efficiently conveys the purpose. No wasted words, but could be structured more clearly.

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

Completeness3/5

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

While the description lists some output fields, it lacks details on the full output structure (e.g., array, object shape). Given no output schema, more completeness would be beneficial.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are already described. The description adds no additional meaning beyond defining the return data.

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

Purpose4/5

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

The description clearly states it lists keywords in ad groups and specifies the data returned (phrases, bids, statuses). However, it does not explicitly differentiate from sibling tools like add_keywords or manage_keywords.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like manage_keywords. The description only implies listing, but no when-to-use or when-not-to-use context.

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

manage_adsУправление объявлениямиA
Destructive

Действие над объявлениями: suspend/resume/archive/unarchive/moderate/delete. ⚠️ delete необратимо.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_idsYesID объявлений
actionYesДействие: suspend/resume/archive/unarchive/moderate/delete

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate destructive (destructiveHint: true). The description adds a critical behavioral detail: '⚠️ delete необратимо' (delete is irreversible). This provides valuable context beyond annotations. No other behavioral traits (e.g., auth needs, side effects) are described, but the warning is sufficient for a score of 4.

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

Conciseness4/5

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

The description is a single sentence plus a warning, very concise. It is front-loaded with the action list. Minor improvement could be using a bullet list for clarity, but overall it is efficient and to the point.

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

Completeness3/5

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

Given the moderate complexity (6 actions, no output schema), the description is adequate but lacks details on the effects of each action (e.g., what 'suspend' vs 'archive' does). It warns about delete but does not explain behavior for other actions. With 2 parameters and annotations, more completeness would be helpful.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions for both 'ad_ids' and 'action'. The description does not add new meaning to these parameters beyond listing the actions again. The baseline is 3 since schema already documents them.

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

Purpose5/5

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

The description clearly states the verb 'manage' and resource 'ads', listing specific actions (suspend, resume, archive, etc.). This distinguishes it from sibling tools like 'delete_ad_groups' (different resource) and creation/edit tools.

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

Usage Guidelines3/5

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

The description lists available actions, implying when to use the tool (when performing actions on ads). However, it does not explicitly specify when not to use it or provide comparisons to alternative tools (e.g., 'delete_ad_groups' for ad groups; no alternative for deleting ads). No exclusions are given.

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

manage_keywordsУправление ключевыми словамиA
Destructive

Действие над ключевыми фразами: suspend/resume/delete. ⚠️ delete необратимо.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyword_idsYesID ключевых фраз
actionYesДействие: suspend/resume/delete

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true. The description adds a clear warning that delete is irreversible, providing helpful behavioral context beyond the annotation.

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

Conciseness5/5

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

Extremely concise: one sentence and a warning emoji. Every element serves a purpose, with key information front-loaded.

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

Completeness4/5

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

For a simple tool with two parameters, no output schema, and clear annotations, the description is largely adequate. It lacks details on side effects of suspend/resume but covers the main destructive action.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The description adds no additional parameter-specific meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool performs actions (suspend/resume/delete) on keywords, which matches the resource (keywords) and differentiates from sibling tools like add_keywords or list_keywords.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., add_keywords for creation, set_keyword_bids for bids). The description only lists the actions without context for selection.

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

set_ad_group_negative_keywordsМинус-фразы группыA
Idempotent

Задать минус-фразы на уровне группы объявлений (заменяет текущий список; пустой массив очищает).

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_group_idYesID группы объявлений
negative_keywordsYesМинус-фразы группы (пустой массив — очистить)

TDQS

A4.4/5.0
Behavior5/5

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

Annotations indicate idempotentHint true and readOnlyHint false. The description adds key behavioral details: it replaces the entire list and clearing with empty array. This exceeds the annotation's minimal info, providing full transparency for a mutation tool.

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

Conciseness5/5

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

A single, well-structured sentence includes the core action and a parenthetical clarifying key behavior. No extra words, high efficiency.

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

Completeness4/5

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

For a write operation with no output schema, the description adequately covers the tool's purpose and behavior. It lacks details on return value or errors, but given the simplicity and annotations, it is sufficient for most use cases.

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

Parameters3/5

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

Schema description coverage is 100% and already explains both parameters (ad_group_id, negative_keywords with clearing behavior). The tool description does not add new meaning beyond the schema; baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states it sets negative keywords at the ad group level, with the behavior of replacing the current list and clearing with an empty array. This distinguishes it from sibling tools like set_campaign_negative_keywords.

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

Usage Guidelines4/5

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

The description implies when to use it (setting ad group negative keywords) and describes the replacement and clearing behavior. However, it does not explicitly mention when not to use or alternatives like set_campaign_negative_keywords, leaving some 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.

set_campaign_negative_keywordsМинус-фразы кампанииA
Idempotent

Задать минус-фразы на уровне кампании (заменяет текущий список; пустой массив очищает).

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesID кампании
negative_keywordsYesМинус-фразы кампании (пустой массив — очистить)

TDQS

A4/5.0
Behavior4/5

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

Annotations declare idempotentHint=true and readOnlyHint=false. The description adds behavioral context: replacement semantics and clearing behavior, which go 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.

Conciseness5/5

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

The description is one concise sentence that front-loads the key information with no wasted words.

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

Completeness4/5

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

Given the simplicity (2 required params, no output schema, no enums, no nested objects) and the presence of annotations, the description provides sufficient context. It could mention success/failure behavior, but the core semantics are clear.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described. The tool description adds the replacement/clearing behavior, but the parameter descriptions already include that context. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action: setting negative keywords at the campaign level, with specific semantics (replaces current list, empty array clears). It distinguishes from sibling set_ad_group_negative_keywords by specifying campaign scope.

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

Usage Guidelines3/5

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

The description implies usage through the tool name and behavioral hint (replaces), but does not explicitly state when to use vs alternatives such as set_ad_group_negative_keywords or add_keywords.

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

set_keyword_bidsУстановить ставкиA
Idempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
keyword_idsNoID ключевых фраз (ставки на уровне фраз)
ad_group_idsNoID групп (ставки на все фразы групп)
campaign_idsNoID кампаний (ставки на все фразы кампаний)
bidNoСтавка на поиске в рублях
context_bidNoСтавка в сетях (РСЯ) в рублях

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already provide idempotent and open world hints. The description adds context about bid levels and currencies, but does not disclose whether bids are overwritten or merged, or mention any side effects 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.

Conciseness5/5

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

The description is a single concise sentence that front-loads the verb and resource with no wasted words.

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

Completeness3/5

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

Adequate for a mutating tool with annotations, but could mention that bids are overwritten and provide more context about the effect of setting bids at different levels. No output schema exists, so return values are not explained.

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully describes each parameter. The description only summarizes the purpose, adding no extra meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the verb (set), resource (bids), and scope (keyword, ad group, campaign levels) with currency and network context, distinguishing it from sibling tools like manage_keywords.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., manage_keywords) or when not to use it. The description only explains what it does, not the usage context.

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

update_campaignОбновить кампаниюA
Idempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesID кампании
nameNoНовое название
daily_budgetNoНовый дневной бюджет в рублях
statusNoДействие со статусом: SUSPEND, RESUME, ARCHIVE, UNARCHIVE

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, idempotentHint=true, openWorldHint=true. The description adds no behavioral context beyond 'update,' such as whether changes are reversible, required permissions, or side effects. It does not contradict annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words. Every part adds value.

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

Completeness4/5

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

Given the tool's simplicity (4 parameters, no output schema, but schema has descriptions), the description covers the essential use case. It lacks details on partial updates or validation but is sufficient for basic usage.

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

Parameters3/5

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

Schema description coverage is 100% and describes each parameter in detail. The description merely restates the parameter names and adds that budget is in rubles and status values, providing no new semantic value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool updates a campaign's name, budget, and status. It uses specific verbs ('обновить') and resource ('кампанию'), and distinguishes from sibling tools like 'create_campaign' or 'delete_ad_groups'.

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

Usage Guidelines3/5

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

The description implies when to use the tool (update campaign fields) but provides no guidance on alternatives, when not to use it, or prerequisites. It lists status enum values but does not explain their implications.

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

update_text_adОбновить объявлениеA
Idempotent

Обновить текстовое объявление: заголовок, текст, ссылка. Изменённое объявление уходит на модерацию.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_idYesID объявления для обновления
titleNoНовый заголовок (до 56 символов)
title2NoНовый второй заголовок (до 30 символов)
textNoНовый текст (до 81 символа)
hrefNoНовая ссылка на сайт

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide idempotentHint=true and openWorldHint=true. The description adds valuable behavioral context: the changed ad goes to moderation. This is not in annotations and helps the agent understand consequences beyond the structured fields.

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

Conciseness5/5

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

Two short sentences with clear, front-loaded purpose. Every word is informative with no fluff.

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

Completeness4/5

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

For a simple update tool with 5 parameters, annotations covering idempotency and open world, and no output schema, the description is mostly complete. It explains the moderation effect, which is crucial context. Minor gap: no mention of what happens to omitted fields (likely unchanged due to idempotentHint).

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

Parameters3/5

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

Schema descriptions cover all 5 parameters with details (e.g., max lengths). The description repeats 'заголовок, текст, ссылка' but omits 'title2' and provides no additional semantic meaning beyond the schema. Since schema coverage is 100%, baseline is 3.

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

Purpose5/5

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

The description clearly states the verb 'обновить' (update) and the resource 'текстовое объявление' (text ad), listing the updatable fields (заголовок, текст, ссылка). It distinguishes from the sibling tool 'create_text_ad' by focusing on modification rather than creation.

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

Usage Guidelines3/5

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

The description implies when to use (update an existing ad vs. create a new one) but does not explicitly state usage context, prerequisites, or when not to use. It lacks guidance on alternatives like delete or manage_ads.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 19 tool updatesv4.0.1
    • Changedadd_keywords1 field changed
      • addedInput schema / properties / keywords / minItems
        Added value: +1
    • Changedcreate_ad_group1 field changed
      • changedInput schema / properties / region_ids / description
        Previous value: -"Коды регионов показа (например [225] = Россия)"New value: +"Коды регионов показа (например [225] = Россия). См. get_regions."
    • Changedcreate_campaign5 fields changed
      • changedInput schema / properties / daily_budget / description
        Previous value: -"Дневной бюджет в у.е. (микро-единицы)"New value: +"Дневной бюджет в рублях (напр. 1000 = 1000 ₽)"
      • addedInput schema / properties / daily_budget / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / network_strategy
        Added value: +{
        +  "default": "SERVING_OFF",
        +  "description": "Стратегия в сетях (РСЯ): SERVING_OFF, NETWORK_DEFAULT, MAXIMUM_COVERAGE, WB_MAXIMUM_CLICKS",
        +  "type": "string"
        +}
      • addedInput schema / properties / search_strategy
        Added value: +{
        +  "default": "HIGHEST_POSITION",
        +  "description": "Стратегия на поиске: HIGHEST_POSITION, WB_MAXIMUM_CLICKS, AVERAGE_CPC, AVERAGE_CPA, PAY_FOR_CONVERSION, SERVING_OFF",
        +  "type": "string"
        +}
      • addedInput schema / properties / start_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • Changedcreate_text_ad4 fields changed
      • addedInput schema / properties / text / maxLength
        Added value: +81
      • changedInput schema / properties / title / description
        Previous value: -"Заголовок (до 35 символов)"New value: +"Заголовок (до 56 символов)"
      • addedInput schema / properties / title / maxLength
        Added value: +56
      • addedInput schema / properties / title2 / maxLength
        Added value: +30
    • Addeddelete_ad_groups
    • Changedget_account_balance2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / logins
        Added value: +{
        +  "description": "Логины аккаунтов (для агентств). По умолчанию — аккаунт токена (или YANDEX_DIRECT_LOGIN).",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
    • Addedget_regions
    • Changedget_statistics6 fields changed
      • addedInput schema / properties / campaign_ids / minItems
        Added value: +1
      • changedInput schema / properties / date_from / description
        Previous value: -"Дата начала в формате YYYY-MM-DD"New value: +"Дата начала YYYY-MM-DD"
      • addedInput schema / properties / date_from / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • changedInput schema / properties / date_to / description
        Previous value: -"Дата окончания в формате YYYY-MM-DD"New value: +"Дата окончания YYYY-MM-DD"
      • addedInput schema / properties / date_to / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • changedInput schema / properties / fields / description
        Previous value: -"Поля отчёта (по умолчанию: Date, CampaignName, Impressions, Clicks, Cost, Ctr, AvgCpc)"New value: +"Поля отчёта (по умолчанию: Date, CampaignName, Impressions, Clicks, Cost, Ctr, AvgCpc). Деньги — в рублях."
    • Changedlist_ad_groups2 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Сколько объектов вернуть (макс 10000)",
        +  "exclusiveMinimum": 0,
        +  "maximum": 10000,
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Смещение выборки для пагинации (= LimitedBy предыдущей страницы)",
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedlist_ads2 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Сколько объектов вернуть (макс 10000)",
        +  "exclusiveMinimum": 0,
        +  "maximum": 10000,
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Смещение выборки для пагинации (= LimitedBy предыдущей страницы)",
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedlist_campaigns4 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Сколько объектов вернуть (макс 10000)",
        +  "exclusiveMinimum": 0,
        +  "maximum": 10000,
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Смещение выборки для пагинации (= LimitedBy предыдущей страницы)",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / status / description
        Previous value: -"Фильтр по статусу: ACCEPTED, DRAFT, MODERATION, etc."New value: +"Фильтр по статусу: ACCEPTED, DRAFT, MODERATION и т.д."
      • changedInput schema / properties / types / description
        Previous value: -"Типы кампаний: TEXT_CAMPAIGN, DYNAMIC_TEXT_CAMPAIGN, etc."New value: +"Типы кампаний: TEXT_CAMPAIGN, DYNAMIC_TEXT_CAMPAIGN и т.д."
    • Changedlist_keywords2 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Сколько объектов вернуть (макс 10000)",
        +  "exclusiveMinimum": 0,
        +  "maximum": 10000,
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Смещение выборки для пагинации (= LimitedBy предыдущей страницы)",
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Addedmanage_ads
    • Addedmanage_keywords
    • Addedset_ad_group_negative_keywords
    • Addedset_campaign_negative_keywords
    • Addedset_keyword_bids
    • Changedupdate_campaign3 fields changed
      • changedInput schema / properties / daily_budget / description
        Previous value: -"Новый дневной бюджет"New value: +"Новый дневной бюджет в рублях"
      • addedInput schema / properties / daily_budget / exclusiveMinimum
        Added value: +0
      • changedInput schema / properties / status / description
        Previous value: -"Действие: SUSPEND, RESUME, ARCHIVE, UNARCHIVE"New value: +"Действие со статусом: SUSPEND, RESUME, ARCHIVE, UNARCHIVE"
    • Addedupdate_text_ad
  2. 12 tool updatesv3.0.2
    • First observedadd_keywords
    • First observedcreate_ad_group
    • First observedcreate_campaign
    • First observedcreate_text_ad
    • First observedget_account_balance
    • First observedget_campaign
    • First observedget_statistics
    • First observedlist_ad_groups
    • First observedlist_ads
    • First observedlist_campaigns
    • First observedlist_keywords
    • First observedupdate_campaign

TDQS

A3.8/5.0

Scored across 20 tools

Disambiguation5/5

Each tool targets a distinct action and level (campaign, ad group, ad, keyword, etc.). There is no overlap in purpose; even similar tools like `add_keywords` and `set_keyword_bids` handle different aspects (adding phrases vs setting bids).

Naming Consistency5/5

All tool names use a consistent verb_noun snake_case pattern (e.g., `create_campaign`, `list_ads`, `set_keyword_bids`). Verbs like create, get, list, update, delete, manage, set, add are used consistently across similar operations.

Tool Count5/5

20 tools is appropriate for a Yandex Direct advertising platform. It covers account management, campaign/ad group/ad operations, keywords, negative keywords, bids, stats, and reference data without being excessive or too sparse.

Completeness3/5

Core workflows are covered, but notable gaps exist: no campaign delete, no update for ad groups, and no individual get tools for ad groups or keywords (only list). Missing management for ad types beyond text ads. These gaps may hinder some use cases.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    MCP server for managing Yandex Direct advertising, Yandex Metrica analytics, Wordstat keyword research, and Yandex Webmaster SEO tools, with self-configuring OAuth; provides 153 tools for complete ad and search workflows from AI assistants.
    100
    6 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Yandex Direct, Metrika, Wordstat, and Webmaster APIs, providing 132 tools to manage advertising campaigns, analytics, keyword research, and reporting through any MCP-compatible client.
    59
    MIT