Skip to main content
Glama
5iNeX

yandex-api-mcp

by 5iNeX

yandex-api-mcp

Единый MCP-сервер для Yandex Webmaster, Direct, Metrika, Wordstat, Audience и Search API. Развёртывание по умолчанию только для чтения. TypeScript core основан на webkoth/yandex-mcp (MIT); Wordstat, Audience, Search API и часть аналитических инструментов сохранены из этого репозитория в Python-адаптере. Клиент видит один MCP endpoint.

Возможности

Сервис

Чтение

Запись в pro-сборке

Webmaster

hosts, verification status, summary, SQI, queries, indexing, URLs, sitemaps, recrawl quota, diagnostics, links, Pro export status, feeds

hosts, verification, sitemaps, recrawl, feeds

Direct

clients/agency, campaigns, adgroups, ads, keywords, bids, modifiers, reports, Units

guarded campaign/adgroup/ad/keyword/bid changes

Metrika

counters, goals, segments, filters, Reporting API, Logs download

guarded goals, CRM, calls, offline conversions, expenses

Wordstat

user, top requests, dynamics, regions, suggestions

—

Audience

segments, pixels, statistics, overlap

—

Search API

SERP via folder ID and API key

—

Публичный образ скрывает инструменты записи и отклоняет их вызовы. Pro-сборка требует confirm:true; для удаления также требуется destructive_confirmation с именем инструмента. BI Option 2 остаётся private plugin и не входит в OSS image.

Related MCP server: kurerok-yandex-webmaster-mcp

Установка Debian/Ubuntu

Нужны Docker Engine, Compose v2 и Python 3. Из этой ветки:

git clone https://github.com/5iNeX/yandex-api-mcp.git
cd yandex-api-mcp
sudo ./install.sh
sudo yp oauth
sudo yp service start
sudo yp doctor

Установщик размещает приложение в /opt/yandex-api-mcp, не удаляя прежний MCP. Если yp уже занята, используется yp-api. Секреты хранятся в /opt/yandex-api-mcp/secrets/; OAuth и реестр проектов — в /opt/yandex-api-mcp/state/. Эти каталоги не входят в Git или Docker image.

yp oauth запрашивает OAuth code и сохраняет токены без вывода значений. Scope: Webmaster — webmaster:hostinfo webmaster:verify; Direct — direct:api; Metrika — metrika:read или metrika:write для загрузок; Audience — audience:read. Wordstat использует доступ Direct API. Search API использует отдельные YANDEX_SEARCH_API_FOLDER_ID и YANDEX_SEARCH_API_API_KEY в secrets/yandex.env. Refresh не может расширить scope: после добавления прав нужна новая авторизация.

Команды: yp setup, yp oauth, yp refresh, yp discover, yp project list|add|remove, yp verify, yp doctor, yp service status|start|restart|stop, yp tunnel status, yp connector info, yp logs. После изменения реестра выполните yp service restart.

Архитектура и проекты

gateway/index.mjs открывает один stdio или локальный SSE MCP. Он запускает core/ (Webmaster, Direct, Metrika) и Python-адаптер src/mcp_yandex_ad/ (Wordstat, Audience, Search API, дополнительные read tools) как дочерние MCP-процессы, объединяет tools/list и направляет tools/call. Общий OAuth state лежит в state/oauth.json; state/projects.json содержит связи проектов с Direct login, счётчиками и сайтами, без токенов.

{"accounts":[{"id":"site-a","name":"Site A","direct_client_login":"agency-client","metrica_counter_ids":[123456],"webmaster_hosts":["https:example.com:443"]}]}

Для discovery используйте yp discover и MCP yandex_projects_list, yandex_webmaster_hosts_list, yandex_direct_clients_get, yandex_metrika_counters_list. Direct/Metrika принимают project; Webmaster — host_id. Активный проект в core глобален для процесса, поэтому при нескольких клиентах задавайте project явно. Access token обновляется автоматически перед истечением или после 401; запись состояния атомарна.

Docker и MCP-клиенты

docker compose up -d --build
curl http://127.0.0.1:8001/healthz
docker compose ps

Compose публикует SSE только на 127.0.0.1:8001; внешний MCP порт не открыт. Для Claude/Codex/Cursor на том же сервере stdio-команда: docker exec -i yandex-api-mcp-yandex-api-mcp-1 node gateway/index.mjs. Для удалённого ChatGPT нужен OpenAI Tunnel; переключение. Старый Tunnel остаётся подключённым к старому MCP до завершения OAuth и проверки нового сервера.

Проверка и неполадки

pytest -q
npm ci && npm --prefix core ci
npm run build && npm test
sudo yp doctor
sudo yp verify

ACCESS_FORBIDDEN Webmaster при успешном hosts_list означает, что токену может не хватать webmaster:verify или прав на конкретный ресурс. Ошибки Direct 4001 для adgroups/ads/keywords требуют SelectionCriteria, например CampaignIds. Search API требует отдельные folder ID и API key. Логи: yp logs. Текущий результат миграции и rollback: MIGRATION_REPORT.md.

English overview: README.en.md. Старые Python installer, Dockerfile и Compose сохранены как install.legacy.sh, Dockerfile.legacy, docker-compose.legacy.yml.

Available Tools

140 tools
accounts.deleteC

Delete a project profile from the accounts registry file.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesProfile id to delete.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and discloses almost nothing: it does not say the deletion is irreversible, whether the registry file must be re-read afterwards (accounts.reload is a sibling), what happens if the profile id is unknown, or what permissions are needed. For a destructive, file-mutating operation this is a significant gap.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the verb and target come first. It is efficient, though the trailing phrase 'from the accounts registry file' could carry more information than it does.

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 parameterless-annotation, output-schema-less destructive tool, the definition is too thin: irreversibility, post-delete file state, and interaction with accounts.reload are all unaddressed. The schema covers input but the description does not compensate for the missing behavioral and recovery context.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter already documents itself as 'Profile id to delete.', so the baseline is 3. The description adds no format, origin, or lookup hints beyond what the schema states.

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?

Names a specific verb (Delete) and resource (a project profile in the accounts registry file), which is enough for an agent to distinguish it from accounts.list, accounts.reload and accounts.upsert. It does not explicitly contrast itself with those siblings, but the destructive verb makes the intent unambiguous.

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

Usage Guidelines2/5

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

No when-to-use guidance: nothing says this is the tool for removing a profile versus editing it via accounts.upsert, and no prerequisite or confirmation conditions are stated. The agent must infer usage 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.

accounts.listA
Read-onlyIdempotent

List configured project profiles from the accounts registry file.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds one useful behavioral fact beyond that – the data comes from a local 'accounts registry file' rather than a remote API – but says nothing about freshness, caching, or whether reload is needed to see new entries.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler; the verb, resource, and source are all packed in without waste. It is appropriately sized for a trivial no-argument listing tool.

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 parameterless read whose output schema documents the return shape and whose annotations cover the safety profile, the definition is essentially complete. The only shortfall is the absence of any relationship to accounts.reload or accounts.upsert, which would matter for agent sequencing.

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

Parameters4/5

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

The tool takes zero parameters, so per the baseline rule this is a 4. The description adds nothing parameter-related, but nothing is needed, and the schema is empty.

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

Purpose4/5

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

States a specific verb ('List') and resource ('configured project profiles'), and names the source ('accounts registry file'), which distinguishes it from write-oriented siblings like accounts.upsert or accounts.delete. It does not explicitly contrast itself with accounts.reload, but the read semantics are unambiguous.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: an agent can infer this is the discovery step before upsert/delete on accounts. There is no explicit when-to-use or when-not-to-use guidance, nor a pointer to siblings such as accounts.reload for refreshing the registry.

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

accounts.reloadA

Reload accounts registry from disk (updates server cache).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose the important behavior that server cache state is mutated from the on-disk source, but says nothing about whether the reload replaces or merges existing entries, whether it is idempotent, whether it fails on malformed files, or what permissions are required.

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

Conciseness5/5

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

A single short sentence with the action front-loaded and the side effect parenthetical at the end. No filler, nothing to trim.

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

Completeness3/5

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

For a simple parameterless reload, the core operation is conveyed, but with no output schema and no annotations the description omits what the call returns (e.g. count of loaded accounts) and how errors surface. These gaps are minor but real for an agent deciding whether to call it.

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

Parameters4/5

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

The tool takes zero parameters (empty object schema), so there is nothing for the description to disambiguate. Baseline for a parameterless tool applies.

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

Purpose4/5

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

States a specific verb (reload) and resource (accounts registry) plus the mechanism (from disk) and side effect (updates server cache). This clearly separates it from siblings accounts.list, accounts.upsert and accounts.delete, though it never names an alternative outright.

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

Usage Guidelines3/5

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

Usage is only implied: reloading 'from disk' suggests the caller should invoke it after the on-disk registry has changed. There is no explicit when-to-use, when-not-to-use, or comparison to accounts.upsert/accounts.list for refreshing state.

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

accounts.upsertC

Create or update a project profile in the accounts registry file.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional display name.
replaceNoWhen true, replace the whole profile; when false, patch existing fields.
account_idYesProfile id (stable, human-friendly).
direct_client_loginNoDirect Client-Login for this project (agency child account login).
metrica_counter_idsNoOptional default Metrica counter ids for this project.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It says 'create or update' but never states what happens on conflict, whether the write touches the on-disk registry file (implying persistence), whether a reload is required for changes to take effect, or what permissions/auth the write needs. These are meaningful gaps 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.

Conciseness4/5

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

One short, front-loaded sentence with zero filler and the verb+resource stated immediately. It is arguably too terse for the operation's complexity, but on the conciseness axis it is essentially optimal.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description omits critical context: whether the change persists to the registry file, whether the in-memory registry must be reloaded (a sibling exists), and what the tool returns. An agent could invoke it, but not confidently.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented, including the patch-vs-replace semantics of 'replace' and the meaning of 'account_id'. The description adds no parameter-level 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.

Purpose4/5

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

States a specific verb pair (create or update) and resource (project profile in the accounts registry file), which is clear and distinguishable from siblings like accounts.delete and accounts.list. It does not explicitly position itself against accounts.reload or the other accounts tools, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to prefer upsert over accounting operations like accounts.reload, nor any note about preconditions such as the registry needing to exist or be reloaded afterward. The only usage signal is the word 'upsert' in the name, which the description merely restates.

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

audience.hf.activation_planB

Human-friendly: preview Direct activation plan for an Audience segment (pro-only apply tool is separate).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNoMust be false for preview tool.
targetsYesActivation targets (adgroup/campaign).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
segment_idYes
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Preview' conveys a non-mutating, read-only operation and the apply flag's 'must be false' reinforces that, but there is no disclosure of auth requirements, rate limits, or what the returned plan contains. Minimal but non-contradictory.

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

Conciseness4/5

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

A single compact sentence with the core purpose front-loaded. The only waste is the 'Human-friendly:' tag, which carries no operational meaning.

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?

Five parameters, no annotations, and no output schema, yet the description never explains what an activation plan looks like, what targets resolve to, or what the preview returns. For a preview tool whose whole value is the returned plan, this leaves an important gap.

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

Parameters3/5

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

Schema coverage is 80%, so the schema already documents most parameters (apply, targets, account_id, direct_client_login). The description adds no syntax or semantic detail beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

States a clear verb+resource: 'preview Direct activation plan for an Audience segment.' It also distinguishes itself from the apply sibling ('pro-only apply tool is separate'), which helps an agent tell it apart. The 'Human-friendly:' prefix is filler but doesn't obscure the purpose.

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 signals this is the preview/non-mutating counterpart to a separate apply tool, implying 'use this to preview, use apply to commit.' However it never names the alternative tool (audience.hf.apply_activation_plan) explicitly nor states the condition for choosing one over the other, leaving the routing partly to inference.

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

audience.hf.apply_activation_planC

Human-friendly: apply activation plan for an Audience segment in Direct (pro-only, apply=true).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyYesMust be true to execute.
dry_runNoOptional preview flag (default: true).
targetsYes
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
segment_idYes
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations, so the description carries the full burden for a mutation tool, yet it says nothing about what the plan actually changes (bids, modifiers, targeting), whether changes are reversible, or that dry_run defaults to true. 'Pro-only' is the only behavioral context provided.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; 'Human-friendly:' framing is mildly wasteful but the operation and gating condition come first.

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

Completeness2/5

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

For an unannotated write operation with six parameters and no output schema, the description omits consequences, permissions beyond 'pro-only', dry-run behavior, and the relationship to the plan-generating sibling. Not enough for an agent to call it safely.

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

Parameters2/5

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

The description only restates apply=true, which the schema already documents verbatim, and says nothing about targets, segment_id, account_id, or direct_client_login. With 67% schema coverage the description adds essentially no param meaning beyond the schema.

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

Purpose4/5

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

States a specific verb+resource (apply an activation plan for an Audience segment in Direct) and names the gating condition (apply=true). It implicitly contrasts with the sibling audience.hf.activation_plan that produces the plan, though it never names it.

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

Usage Guidelines3/5

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

The parenthetical '(pro-only, apply=true)' hints at a prerequisite and the schema's 'Must be true to execute' reinforces it, but the description never says when to use this versus generating a plan first or what happens on failure. Usage is implied rather than stated.

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

audience.hf.catalogC

Human-friendly: audience segments catalog for dashboards.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
include_healthNoDefault: false.
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not disclose read-only status, pagination behavior, authentication requirements, or return format beyond the vague word 'catalog.'

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 single sentence is concise and free of fluff, but 'Human-friendly:' is an awkward prefix and the key resource phrase is not front-loaded as clearly as it could be.

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 5-parameter tool with no annotations and no output schema, the description is far too thin. It omits pagination, the include_health flag, account resolution behavior, and what the catalog actually returns.

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

Parameters2/5

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

The description adds no parameter meaning. With 60% schema description coverage, limit and offset remain undocumented in both schema and description, and no compensation is provided for those gaps.

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

Purpose3/5

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

The description identifies the resource as an audience segments catalog intended for dashboards, but it uses a noun phrase with no clear verb and does not distinguish it from siblings like audience.segments.list or audience.hf.find_segment.

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 only usage hint is 'for dashboards,' which implies a dashboard context but gives no explicit when-to-use, when-not-to-use, or alternative tools to consider.

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

audience.hf.find_segmentC

Human-friendly: find Audience segments by name/type/status.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoDefault: 20.
typesNo
statusesNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
include_rawNoInclude raw response (default: false).
name_containsNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, but it discloses almost nothing beyond the read-oriented verb 'find'. It does not state permissions, pagination, whether results are limited by default, or what happens when include_raw is set, so important behavioral context is missing.

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?

It is a single short sentence that is front-loaded with the action and resource. The 'Human-friendly:' prefix is somewhat expendable, but overall there is little waste.

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 7-parameter tool with no annotations, no output schema, and only 57% schema description coverage, the description is too sparse. It omits usage guidance, parameter semantics for several arguments, and behavioral details an agent needs to call the tool reliably.

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 description names the filter fields name/type/status, which correspond to name_contains, types, and statuses. But schema description coverage is only 57%, and the description does not explain value formats, supported type/status values, or the roles of limit, account_id, include_raw, and direct_client_login.

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

Purpose4/5

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

States a specific verb and resource ('find Audience segments') and names the filter dimensions (name/type/status), so an agent can understand the operation. However, it does not distinguish this tool from sibling tools like audience.segments.list or audience.segments.get, and the 'Human-friendly' prefix adds little specificity.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no prerequisites, and no explicit contrast with alternatives such as audience.segments.list. It only implies usage through the filter terms, leaving the agent to infer when this wrapper is preferable.

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

audience.hf.get_segment_summaryC

Human-friendly: Audience segment summary card for UI/LLM.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
segment_idYes
include_rawNoInclude raw response (default: true).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden, yet it discloses almost nothing: it does not state that this is a read-only operation, whether it requires auth or an account_id, response size, or caching/freshness behavior. The only hint is 'Human-friendly' implying a formatted output, which is thin for a tool with zero annotation coverage.

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?

It is a single short sentence with zero padding, so nothing is wasted, but that brevity reflects under-specification rather than economy. Size is appropriate only in the sense that there is nothing to trim.

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

Completeness1/5

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

For a tool with 4 parameters, no annotations, and no output schema, the description should explain what the summary contains and when to use it. It provides none of that, leaving the agent without enough context to call it correctly or prefer it over siblings.

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 75%, so the schema already explains account_id, include_raw, and direct_client_login; only the required segment_id lacks a description. The description adds no parameter meaning at all, but with high coverage the schema does the heavy lifting, warranting the baseline 3.

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

Purpose2/5

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

The phrase 'Audience segment summary card' essentially restates the tool name get_segment_summary, and 'Human-friendly ... for UI/LLM' is a vague qualifier rather than a specific verb+resource statement. It does not distinguish this tool from close siblings such as audience.segments.get, audience.hf.segment_health, or audience.hf.segment_perf, so an agent cannot tell which one to pick from this text.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives. Given the dense sibling cluster of audience/hf segment tools, the absence of any routing signal leaves the agent to guess.

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

audience.hf.overlap_matrixC

Human-friendly: overlap matrix (sparse) for segment ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_kNoDefault: 50.
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
segment_idsYes
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full behavioral burden. It discloses only that the output is a sparse matrix, without stating whether the operation is read-only, what permissions or account context are needed, how top_k affects results, or what the matrix values represent.

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 definition is a single short sentence and is not verbose, but 'Human-friendly:' is vague filler that does not earn its place. The core information is front-loaded enough to avoid confusion, though the sentence is under-specified rather than efficient.

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?

With no annotations and no output schema, the description should explain the return shape and key behavioral context. It only hints at a sparse overlap matrix, leaving the output format, authentication/account requirements, and comparison semantics undocumented for a 4-parameter analytical tool.

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

Parameters2/5

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

Schema description coverage is 75%, with top_k, account_id, and direct_client_login already documented in the input schema. The description adds only 'for segment ids,' which repeats the required parameter and provides no additional meaning for the remaining parameters or the expected array format.

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

Purpose3/5

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

The phrase 'overlap matrix (sparse) for segment ids' names a resource and input scope, so the general purpose is inferable. However, it lacks a clear verb and does not distinguish this tool from the sibling audience.segments.overlap, leaving ambiguity about what operation is performed.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool, when not to use it, or which sibling alternatives exist. The only context is 'for segment ids,' which identifies an input rather than a usage condition.

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

audience.hf.segment_healthC

Human-friendly: Audience segment health check.

ParametersJSON Schema
NameRequiredDescriptionDefault
min_sizeNoDefault: 1000.
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
segment_idYes
max_age_daysNoDefault: 30.
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it delivers almost nothing: no indication that this is a read-only diagnostic, no statement of what thresholds constitute 'healthy', no mention of how min_size/max_age_days influence the verdict, and no error or rate-limit context. Only the vague 'Human-friendly' hint at output formatting is offered.

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

Conciseness3/5

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

A single short sentence, so it is not bloated, but the 'Human-friendly:' prefix is filler and the sentence is under-specified rather than efficient. Brevity here comes at the cost of usefulness.

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 5-parameter tool with no annotations and no output schema, the description should explain what the health check evaluates and what the agent gets back. It provides neither, leaving the agent unable to predict results or interpret the min_size/max_age_days thresholds.

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 80%, with defaults for min_size and max_age_days and an explanation of account_id/direct_client_login already in the schema, so the baseline of 3 applies. The description adds no parameter meaning and does not compensate for the undocumented required segment_id, which is the one parameter left blank in the schema.

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

Purpose3/5

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

The description names a resource (audience segment) and an action (health check), so the general domain is clear. However, 'health check' is essentially a restatement of the tool name 'segment_health' and never says what is actually being checked (size, recency, overlap, deliverability?), so an agent cannot distinguish it from siblings like audience.hf.get_segment_summary or audience.hf.segment_perf.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the many adjacent audience segment tools (get, summary, stats, overlap, perf). No prerequisites, no exclusions, no named alternative — the agent must guess 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.

audience.hf.segment_perfC

Human-friendly: best-effort segment performance via Direct+Metrica.

ParametersJSON Schema
NameRequiredDescriptionDefault
grainNoday|week|month (default: day).
date_toYesYYYY-MM-DD.
goal_idsNo
date_fromYesYYYY-MM-DD.
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNo
segment_idYes
include_raw_refsNoInclude raw_refs (default: true).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. 'Best-effort' hints that results may be partial or unreliable and 'Human-friendly' implies a formatted rather than raw output, but auth requirements, rate limits, failure modes, and whether the two data sources are merged or fallback are all undisclosed.

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?

It is a single short sentence with no padding, but it is under-specified rather than concise. The 'Human-friendly:' prefix front-loads a marketing qualifier instead of the operation's defining behavior.

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 9-parameter tool with 3 required args, no output schema, and no annotations, a one-line description is far from complete. It leaves the agent unable to distinguish this tool from the many sibling audience.hf.* reporting tools or to use its parameters correctly.

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

Parameters2/5

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

Schema coverage is a moderate 67%, and the description adds no parameter meaning at all. It gives no hint about grain, goal_ids, include_raw_refs, account_id/counter_id resolution, or the direct_client_login override, so the agent cannot compensate for the undocumented fields.

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

Purpose3/5

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

The description names a resource ('segment performance') and the underlying data sources ('Direct+Metrica'), which is more than a tautology. However, the qualifiers 'Human-friendly' and 'best-effort' are vague, and it does not distinguish this tool from siblings like audience.hf.get_segment_summary or audience.hf.segment_health.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of competing tools (segment_health, get_segment_summary, overlap_matrix). The agent is left to infer whether this is a summary, a time series, or a per-goal breakdown.

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

audience.lookalikes.getC

Audience: get lookalike by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
fieldsNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state that this is a read-only operation, what happens on an invalid/missing id, whether it requires specific scopes, or what the response contains.

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

Conciseness4/5

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

A single front-loaded sentence with zero waste. It is appropriately short, though this brevity comes at the cost of substance rather than being a virtue of information density.

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 2-parameter retrieval tool with no annotations, no output schema, and 0% parameter coverage, the definition leaves the agent without the parameter semantics or behavioral context needed to call it confidently.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain both parameters. It implies the 'id' lookup key but adds no format/type detail, and the 'fields' parameter (a projection/filter list) is completely unaddressed in both schema and description.

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

Purpose4/5

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

States a specific verb (get) and resource (lookalike) plus the retrieval key ('by id'), which distinguishes it from the sibling audience.lookalikes.list. It is clear what the tool does, though it never explicitly contrasts itself with the list sibling.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of the lookalikes.list alternative for enumerating lookalikes. The agent must infer usage 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.

audience.lookalikes.listC

Audience: list lookalikes (best effort).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
fieldsNo
offsetNo

TDQS

C2.2/5.0
Behavior2/5

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

With no annotations the description carries the full behavioral burden. The parenthetical "(best effort)" is a genuinely useful caveat implying results may be incomplete, but nothing is said about pagination behavior, authentication needs, or result ordering. One hint does not cover a mutation-free but opaque list call.

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?

It is a single, front-loaded clause with no padding, which is structurally fine. The brevity, however, tips into under-specification rather than disciplined conciseness.

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

Completeness2/5

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

For a 3-parameter list tool with no annotations and no output schema, the description should at minimum explain pagination and what a lookalike record contains. Neither is present, leaving the agent under-informed before invocation.

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

Parameters1/5

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

Schema description coverage is 0% and the description mentions none of the three parameters. limit, offset, and fields are entirely undocumented in both places, so the agent cannot know that pagination and field projection are even supported. The description fails to compensate for the coverage gap.

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

Purpose3/5

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

"list lookalikes" gives a clear verb+resource, and the "Audience:" prefix anchors it to the audience API family. However, it does nothing to separate it from the sibling audience.lookalikes.get, nor does it clarify what a lookalike entity is in this context.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives such as audience.lookalikes.get for a single entity. The agent is left to infer that 'list' means enumeration of many lookalikes.

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

audience.pixels.getC

Audience: get pixel by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
pixel_idYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden and delivers almost nothing: no statement that it is read-only, no authentication or permission requirements, no error behavior for a missing/foreign pixel_id. Only the word "get" weakly implies a non-mutating read.

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

Conciseness4/5

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

A single tight sentence with the resource and lookup key front-loaded and zero filler. It is efficient, though efficiency here partly reflects under-specification rather than deliberate economy.

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 two-parameter getter with no annotations and no output schema, the description should at least identify what the returned pixel representation contains and how "fields" narrows it. Instead it gives one clause, leaving the agent to guess at the response shape and permission model.

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

Parameters2/5

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

Schema description coverage is 0%, so both parameters are undocumented anywhere. "By id" minimally maps to pixel_id, but the optional "fields" array (a field-selection projection) is never explained, leaving half the parameters opaque.

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?

"Get pixel by id" states a specific verb (get) and resource (pixel) with the lookup key made explicit, so the operation is unambiguous. It does not differentiate itself from the sibling audience.pixels.list, nor explain what a "pixel" is in this product context.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no routing to the obvious alternative audience.pixels.list when the id is unknown. The agent must infer the single-item vs list distinction purely from the name.

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

audience.pixels.listD

Audience: list pixels.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
fieldsNo
offsetNo

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It says nothing about read-only nature, permissions, pagination, rate limits, or return format, leaving the agent with no behavioral context beyond the verb 'list'.

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

Conciseness2/5

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

The single sentence is too short and under-specified rather than appropriately concise. It is front-loaded with nothing useful and does not earn its place as a tool description.

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

Completeness1/5

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

Given three undocumented parameters, no output schema, and no annotations, the description is completely inadequate for an agent to invoke the tool correctly. No usage, parameter, or behavioral information is supplied.

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

Parameters1/5

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

The input schema has 3 parameters (limit, fields, offset) with 0% description coverage, and the description does not mention any of them. It fails entirely to compensate for the missing parameter documentation.

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

Purpose2/5

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

The description "Audience: list pixels" essentially restates the tool name audience.pixels.list without adding specificity. It does not distinguish the tool from sibling audience.pixels.get or clarify what a pixel is or what scope of pixels is returned, making it tautological.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, prerequisites, or context. The agent must infer that it is a basic list operation 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.

audience.raw_callC

Audience: raw API call (escape hatch, pro-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath under /v1/management (e.g., /segments).
methodYesGET|POST|PUT|DELETE.
paramsNo
payloadNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It discloses the pro-only tier requirement, which is useful, but says nothing about the fact that arbitrary methods (POST/PUT/DELETE) can mutate or destroy data, how errors are surfaced, or any rate limits. For a generic write-capable passthrough this is a serious gap.

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

Conciseness4/5

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

A single front-loaded clause with zero waste, and the qualifier is placed immediately after the core purpose. It is arguably too terse for a 4-parameter passthrough, but conciseness itself is not the problem.

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 generic raw-API escape hatch with nested params/payload, no output schema, and no annotations, the description is far too thin. An agent cannot tell what the base URL assumption is beyond the schema hint, what the response looks like, or which subjects are valid.

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

Parameters2/5

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

Schema coverage is only 50%: path and method are described in-schema, while params and payload (both nested objects) are undocumented anywhere. The description adds no parameter meaning at all, so it fails to compensate for the coverage gap on the two most ambiguous inputs.

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

Purpose4/5

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

The description names the resource (Audience) and the operation (raw API call), and the parenthetical 'escape hatch' clarifies the role. It is clear enough to distinguish from audience.segments.* siblings, though it never explicitly contrasts with direct.raw_call or metrica.raw_call which follow the same pattern.

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?

'Escape hatch' implies you use this only when no dedicated typed tool exists, and 'pro-only' signals a tier gate. However, no alternatives are named and no conditions/exclusions are spelled out, so the agent must infer when this is preferred over audience.segments.list and friends.

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

audience.segments.createC

Audience: create segment (pro-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. Beyond the 'pro-only' access note, it says nothing about permissions, side effects, idempotency, or what a successful create returns.

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?

It is a single short phrase with no wasted words, but the brevity reflects under-specification rather than efficient editing. Nothing is front-loaded beyond the bare verb+resource.

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

Completeness1/5

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

For a write tool with a nested undocumented payload, no annotations, and no output schema, the description is drastically incomplete. An agent cannot call this correctly from the given information.

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

Parameters1/5

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

The single required parameter is a nested object with 0% schema description coverage, and the description adds no information about its structure or required fields. An agent must construct this payload completely blind.

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

Purpose4/5

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

States a specific verb+resource ('create segment') within the Audience namespace, which lets an agent distinguish it from siblings like segments.list/get/update/delete. The 'Audience:' prefix is boilerplate but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

The only guidance is the '(pro-only)' gating constraint. There is no indication of when to create a segment versus using audience.upload.start or segment-related hf tools, nor any prerequisites for the payload.

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

audience.segments.deleteC

Audience: delete segment (pro-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
segment_idYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. '(pro-only)' discloses a plan/permission constraint, which is genuine added value. But for a destructive mutation it says nothing about irreversibility, cascading effects on campaigns or lookalikes built on the segment, or success/failure semantics.

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?

One short sentence that is front-loaded and waste-free, but the 'Audience:' namespace prefix is redundant given the tool name, and the extreme brevity reflects under-specification rather than economical writing.

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

Completeness2/5

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

A destructive, no-annotation, no-output-schema tool with an undocumented required parameter needs considerably more description than this. An agent has enough to attempt the call but not enough to know the consequences or when it should avoid it.

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

Parameters2/5

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

One required parameter (segment_id) with 0% schema description coverage, and the description adds no meaning about its format, where to obtain it, or behavior on invalid IDs. The description does nothing to compensate for the documentation gap.

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

Purpose3/5

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

States a specific verb (delete) and resource (segment), and the 'Audience:' prefix identifies the namespace, so an agent can tell what it does. However it does nothing to distinguish it from siblings like audience.segments.update or audience.segments.create beyond the obvious verb, and no scope or effect is described.

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 only usage signal is '(pro-only)', which is a useful access prerequisite but not a when-to-use criterion. There is no guidance on when deletion is appropriate versus updating or listing, and no warning about irreversibility.

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

audience.segments.getC

Audience: get segment by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
segment_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'get' implies a read, but nothing is said about permissions, errors when the id is missing, or return shape. This is thin for a tool with zero annotation coverage.

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

Conciseness4/5

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

A single front-loaded sentence with no waste. It is concise, though its brevity is also the source of its gaps rather than an intentional trade-off.

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?

With no annotations, no output schema, and two undocumented parameters, the definition leaves the agent guessing about the 'fields' argument and the response. It does the bare minimum for a two-parameter lookup tool.

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

Parameters2/5

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

Schema description coverage is 0% and neither parameter is documented in the schema. The description hints that segment_id is the lookup key, but the 'fields' parameter (likely a projection selector) is completely unexplained in both schema and description.

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

Purpose4/5

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

The description names a specific verb and resource ('get segment by id'), making clear this is a single-segment lookup. It implicitly distinguishes itself from list/overlap/stats siblings by saying 'by id', though it never names them explicitly.

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

Usage Guidelines2/5

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

No indication of when to use this versus audience.segments.list, audience.hf.find_segment, or audience.hf.get_segment_summary. The agent must infer the retrieval scenario 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.

audience.segments.listD

Audience: list segments.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
typesNo
fieldsNo
offsetNo
statusesNo

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: not whether this is a safe read, not pagination behavior, not rate limits, not result shape. For a tool with no annotation coverage this is a complete gap.

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

Conciseness2/5

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

It is short, but the brevity is under-specification rather than conciseness: the single sentence carries no usable content. Front-loading a scope and at least one filtering note would cost little and would actually earn its place.

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

Completeness1/5

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

With five undocumented parameters, no annotations, and no output schema, the description leaves an agent without enough information to invoke the tool correctly or interpret its results. This is inadequate for the tool's actual complexity.

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

Parameters1/5

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

Schema description coverage is 0% across five parameters (limit, types, fields, offset, statuses), and the description adds no semantics for any of them. The agent gets no hint about valid values, filtering behavior, or the meaning of limit/offset beyond their names.

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

Purpose2/5

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

The description restates the tool name with the namespace spelled out: 'Audience: list segments.' It confirms a list operation over segments, but adds nothing the name does not already convey and makes no attempt to distinguish this from siblings like audience.segments.get, audience.segments.stats, or audience.segments.overlap.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all. With closely related siblings such as audience.segments.get and audience.segments.overlap available, the description gives no condition, scope, or prerequisite that would tell an agent when listing is the right operation.

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

audience.segments.overlapC

Audience: overlap between segments (best effort).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNomatrix|top_pairs (default: top_pairs).
limitNoDefault: 50.
segment_idsYes

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. '(best effort)' usefully signals approximate/possibly incomplete results, but nothing is said about permission requirements, compute cost, rate limits, whether segment_ids must already exist, or what the response looks like.

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?

Very short and not padded, so nothing is wasted, but it is a single fragment rather than a front-loaded sentence with the essential scoping information. Being terse here reflects under-specification rather than disciplined conciseness.

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

Completeness2/5

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

For a 3-parameter analytical tool with no annotations and no output schema, the description is far too thin. It omits the return shape (matrix vs top_pairs output differs by mode), any interpretation guidance for the overlap values, and how large segment_ids lists are handled.

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 67% with the mode enum values and limit default already documented in the schema, and segment_ids is self-explanatory as an array of IDs. The description adds no meaning beyond the schema, so the baseline 3 applies; it neither compensates nor subtracts.

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

Purpose3/5

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

Names the resource (segments) and the operation family (overlap), so an agent can tell it computes pairwise intersection between audience segments. However it is phrased as a fragment ('Audience: overlap between segments') rather than a clear verb+object, and it does nothing to distinguish itself from the sibling audience.hf.overlap_matrix or audience.segments.stats.

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 statement of when to use this versus audience.hf.overlap_matrix, audience.segments.stats, or audience.segments.list. The parenthetical '(best effort)' hints the result may be approximate but gives no condition that would steer an agent toward or away from this tool.

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

audience.segments.statsC

Audience: segment stats (size/status) (best effort).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
segment_idYes

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses only that results are 'best effort' (an unreliability caveat, which is real value), but says nothing about permissions, latency, or return shape for a stats endpoint.

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

Conciseness2/5

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

A single fragment of a sentence — this is under-specification rather than conciseness. There is no waste, but also almost no load-bearing content.

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?

With no annotations, no output schema, and 0% parameter coverage, the description would need to do far more work. A mutation-free read tool in a crowded audience.* family is left almost entirely unspecified.

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

Parameters2/5

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

Schema description coverage is 0% for two parameters. The description never mentions segment_id (required) and only loosely hints at field names via 'size/status', leaving the 'fields' array undocumented in both description and schema.

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

Purpose3/5

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

Names the resource (audience segment) and the kind of data returned (size/status), which narrows things somewhat. But 'stats' is not a specific operation and it fails to distinguish itself from close siblings like audience.segments.get, audience.hf.get_segment_summary, or audience.hf.segment_health.

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 call this versus audience.segments.get or audience.hf.segment_health. The '(best effort)' caveat hints the data may be approximate but doesn't tell the agent when that trade-off is acceptable.

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

audience.segments.updateC

Audience: update segment (pro-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYes
segment_idYes

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It flags the pro-only restriction, which is genuinely useful, but says nothing about whether updates are partial or full-replace, what the payload structure is, whether changes are reversible, or required permissions.

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

Conciseness3/5

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

A single short, front-loaded sentence with no waste, so it is concise. But it is under-specified rather than efficiently informative; brevity here reflects missing content, not tight editing.

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

Completeness2/5

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

For a mutation tool with zero annotations, no output schema, and an undocumented nested payload object, the description is far from complete. Only the pro-only note partially compensates for the missing structured support.

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

Parameters1/5

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

Schema description coverage is 0% and one of the two parameters is a free-form nested object ('payload'). The description adds no meaning for either segment_id or payload, leaving the agent with no idea what fields to populate.

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

Purpose3/5

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

The description pairs the verb 'update' with the resource 'segment', which minimally distinguishes it from create/delete/get siblings. However, it mostly restates the tool name and gives no indication of what about the segment is updatable, leaving the scope vague.

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 only usage-related signal is the '(pro-only)' qualifier, which is a gating condition rather than guidance. There is no statement of when to prefer update over create/delete, no prerequisites, and no mention of alternatives.

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

audience.upload.errorsC

Audience: upload job errors (pro-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
upload_idYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It only discloses the pro-only gating constraint; it says nothing about read-only nature, return shape, or whether errors are paginated/truncated for large uploads.

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

Conciseness4/5

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

A single, front-loaded sentence with no waste. Appropriate size for the minimal information conveyed, though that brevity reflects under-specification rather than efficiency.

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 tool with no annotations, no output schema, and an undocumented required parameter, the description is too thin. It omits return contents, auth/tier details beyond 'pro', and error-format expectations.

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

Parameters2/5

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

Schema coverage is 0% and the single upload_id parameter is undocumented. The description adds no meaning beyond the parameter name—no format, source (from upload.start?), or validity constraints.

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?

Names the specific resource (errors for an audience upload job) and clearly distinguishes itself from siblings like audience.upload.start and audience.upload.status by the 'errors' suffix. The action verb (get/list) is implied rather than stated, but the purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to call this versus audience.upload.status or audience.raw_call. 'pro-only' hints at a prerequisite tier but there is 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.

audience.upload.startC

Audience: start upload job (pro-only, may include PII).

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYes
segment_idYes

TDQS

C2.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does add two genuinely useful behavioral facts — pro-only access and possible PII content — which is more than most terse descriptions offer. But it omits whether the operation is async, whether it is idempotent or destructive, what it returns (a job id?), and 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.

Conciseness3/5

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

Single sentence with no filler and the key constraint (pro-only/PII) front-loaded, which is good. But for a tool with a nested payload object and zero schema documentation, one sentence is under-sized rather than concise.

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, no annotations, 0% parameter coverage, and a nested payload object — yet the description says nothing about the upload lifecycle or how to follow up. It is not complete enough for an agent to invoke this correctly without guessing at the payload shape.

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

Parameters2/5

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

Schema description coverage is 0% with two required parameters, one of which is a nested object. The description names neither segment_id nor payload and gives no format, structure, or size expectations for the payload. The only faint signal is 'may include PII', which hints at payload content but documents nothing.

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 gives a specific verb+resource ('start upload job' under 'Audience'), which is enough to distinguish it from siblings like audience.upload.status and audience.upload.errors. However it never explains that the job targets a segment via segment_id, so the specificity is thin.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites beyond the parenthetical pro-only note, and no mention of the obviously related siblings (audience.upload.status, audience.upload.errors) that an agent would need after starting a job. The agent must infer the entire workflow.

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

audience.upload.statusC

Audience: upload job status (pro-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
upload_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations, so the description carries the full burden and does almost nothing: it notes a pro-only requirement but says nothing about polling behavior, terminal vs in-progress states, expiration of job status, or auth needs. A status endpoint's whole value is knowing what states it reports.

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?

Five words, fully front-loaded, no filler. It is efficient, though the brevity borders on under-specification rather than true conciseness.

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

Completeness2/5

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

For a simple one-parameter tool this is thin: no output schema exists, so return values (status codes/fields) are undocumented, and the origin of upload_id is unstated. An agent can guess but cannot call this confidently from the description alone.

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

Parameters2/5

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

One required parameter with 0% schema coverage, so the description must compensate and does not – it never explains that upload_id is the identifier returned by audience.upload.start or what format it takes. Only the parameter name itself conveys meaning.

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

Purpose4/5

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

States a specific resource (upload job) and function (status) that an agent can distinguish from close siblings audience.upload.start and audience.upload.errors. The 'Audience:' prefix is namespace noise, but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to call this versus polling elsewhere or versus audience.upload.errors, and no indication that upload_id comes from audience.upload.start. Only the '(pro-only)' tag hints at a precondition.

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

audience.user_infoB

Audience: user info (validate access).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose that this tool validates access, implying a safe read operation with no side effects. It stops short of describing the return payload, permissions required, or any rate limits, so behavioral coverage is only partial.

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

Conciseness4/5

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

A single short phrase that is front-loaded with the resource and its purpose, with no wasted text. It is arguably terse to the point of under-specification, which caps it just below the top score.

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

Completeness3/5

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

For a zero-parameter, likely read-only tool this is close to adequate, but with no output schema the description should say what 'user info' actually contains so an agent knows what the validation returns. That gap keeps it at minimum-viable.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline of 4 applies. There is nothing for the description to clarify beyond what the empty schema already communicates.

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

Purpose3/5

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

The description names a specific resource (audience user info) and hints at a purpose (validate access), but uses no verb and does not say exactly what is retrieved, making it vague. It also fails to distinguish itself from the analogous sibling wordstat.user_info.

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 parenthetical '(validate access)' implies the tool is used to check credentials or permissions, which is a real usage signal. However, there is no explicit when/when-not guidance and no comparison to the many sibling tools.

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

dashboard.generate_option1C
Idempotent

Generate a simple HTML+JSON dashboard from Direct+Metrica data (Option 1).

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toYesYYYY-MM-DD.
goal_idsNoOptional Metrica goal IDs. When set, dashboard will include leads based on goal{ID}reaches (best effort).
date_fromYesYYYY-MM-DD.
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNoMetrica counter id (optional if account profile has exactly one).
output_dirNoWhen set, write HTML+JSON files to this directory.
account_idsNoOptional explicit list of account profile ids to include in a multi-account dashboard.
return_dataNoReturn the full data payload in response (default: false if output_dir is set, otherwise true).
all_accountsNoWhen true, generate one dashboard containing data for all configured account profiles (account switcher in UI).
include_htmlNoInclude HTML content in response (default: true if output_dir is not set).
dashboard_slugNoOptional suffix for output file names.
include_audienceNoInclude Audience segments blocks (default: false).
include_wordstatNoInclude Wordstat suggestions block (default: false).
wordstat_devicesNoOptional Wordstat devices filter.
wordstat_regionsNoOptional Wordstat region ids.
wordstat_languageNoNegative lexicon language ru|en (default: ru).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).
include_raw_reportsNoInclude raw Direct/Metrica payloads in output data (default: true).
wordstat_num_phrasesNoWordstat numPhrases (default: 50, max: 2000).
wordstat_max_campaignsNoMax campaigns to analyze with Wordstat (default: 5).
wordstat_max_negatives_per_campaignNoMax negative tokens per campaign (default: 25).
wordstat_max_candidates_per_campaignNoMax Wordstat candidates per campaign (default: 20).
wordstat_max_seed_phrases_per_campaignNoMax seed phrases per campaign (default: 3).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations only declare readOnlyHint=false and idempotentHint=true; the description adds nothing about the main behavioral traits an agent needs: that it writes files to disk when output_dir is set, that it makes outbound Direct/Metrica/Wordstat calls, or the cost/quota implications of the many optional Wordstat blocks.

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

Conciseness4/5

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

A single short sentence with no filler, appropriately front-loaded with the action and artifact. It is efficient but arguably too terse given the tool's complexity.

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 23-parameter tool that produces files and aggregates two data sources plus optional Wordstat/Audience blocks, one sentence is insufficient. An output schema exists so return values need not be explained, but the description should at minimum distinguish this from the pro dashboard sibling and note the file-writing behavior.

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

Parameters3/5

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

Schema description coverage is 100%, so all 23 parameters (including defaults for output_dir, return_data, include_html, wordstat_* limits) are already documented in the schema. The description contributes no additional parameter semantics beyond naming the data sources, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('Generate'), the artifact ('simple HTML+JSON dashboard') and the data sources ('Direct+Metrica data'), so the agent knows what it produces. However, '(Option 1)' merely restates the tool name and gives no clue how this differs from the sibling dashboard.generate_pro_html.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all. The parenthetical '(Option 1)' implies an alternative exists, but the description never names dashboard.generate_pro_html or states the condition under which the simple variant is preferred over the pro one.

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

dashboard.generate_pro_htmlC

Pro-only: generate an enriched HTML+JSON dashboard with search terms, keyword diagnostics, campaign watchlist, bids, and tracking gap findings.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toYesYYYY-MM-DD.
goal_idsNoOptional Metrica goal IDs. When set, dashboard will include leads based on goal{ID}reaches (best effort).
date_fromYesYYYY-MM-DD.
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNoMetrica counter id (optional if account profile has exactly one).
output_dirNoWhen set, write HTML+JSON files to this directory.
account_idsNoOptional explicit list of account profile ids to include in a multi-account dashboard.
return_dataNoReturn the full data payload in response (default: false if output_dir is set, otherwise true).
all_accountsNoWhen true, generate one dashboard containing data for all configured account profiles (account switcher in UI).
include_htmlNoInclude HTML content in response (default: true if output_dir is not set).
max_findingsNoMax findings to include in the PRO insights panel (default: 24).
max_keywordsNoMax keyword report rows to parse for PRO insights (default: 100).
max_campaignsNoMax campaigns to include in the PRO watchlist (default: 12).
dashboard_slugNoOptional suffix for output file names.
include_audienceNoInclude Audience segments blocks (default: false).
include_wordstatNoInclude Wordstat suggestions block (default: false).
wordstat_devicesNoOptional Wordstat devices filter.
wordstat_regionsNoOptional Wordstat region ids.
wordstat_languageNoNegative lexicon language ru|en (default: ru).
max_search_phrasesNoMax search phrase report rows to parse for PRO insights (default: 200).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).
include_raw_reportsNoInclude raw Direct/Metrica payloads in output data (default: false).
wordstat_num_phrasesNoWordstat numPhrases (default: 50, max: 2000).
wordstat_max_campaignsNoMax campaigns to analyze with Wordstat (default: 5).
wordstat_max_negatives_per_campaignNoMax negative tokens per campaign (default: 25).
wordstat_max_candidates_per_campaignNoMax Wordstat candidates per campaign (default: 20).
wordstat_max_seed_phrases_per_campaignNoMax seed phrases per campaign (default: 3).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It implies a read/generate operation and mentions 'Pro-only', but says nothing about side effects (file writes when output_dir is set), auth/plan requirements behind the Pro gate, or default output location — all of which matter for a 27-parameter generator.

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

Conciseness4/5

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

A single dense sentence with the gating constraint ('Pro-only') front-loaded and the content list after it. No filler, though it packs a lot into one line without structure for a 27-param tool.

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 complex 27-parameter generator with no annotations and no output schema, a one-sentence description is thin: it leaves file-writing behavior, response shape (HTML vs JSON vs both), and the distinction from dashboard.generate_option1 unexplained.

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 27 parameters (defaults, formats, dependencies). The description adds only the content categories, not syntax or default behavior, so 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.

Purpose4/5

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

States a specific verb (generate) and a well-scoped resource (enriched HTML+JSON dashboard) and enumerates its contents: search terms, keyword diagnostics, campaign watchlist, bids, tracking gaps. The 'Pro-only' qualifier hints at a tier difference, but it never names or contrasts with the sibling dashboard.generate_option1, so the agent must infer which dashboard to pick.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance and no exclusion rules. The presence of dashboard.generate_option1 as a sibling makes the missing routing guidance costly — nothing tells the agent when the Pro variant is the right choice over the base variant.

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

direct.create_adgroupsC

Create ad groups in Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesAd group objects to create.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: it does not state that this is a write/mutation operation with side effects, whether calls are batch/bulk, what happens on partial failure, or what permissions or account context are required. For a creation tool with nested payloads this is a substantial gap.

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

Conciseness4/5

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

The single sentence is front-loaded, free of filler, and communicates the core action immediately. It is efficient but so short that it does no additional work.

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 a mutation tool with an array of nested objects, 4 parameters, no annotations, and no output schema, the description should explain item structure expectations, batching behavior, and error/response handling. None of that is present, leaving it under-specified for the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (items, params, account_id, direct_client_login) is already documented in the schema. The description adds no syntax, item-shape, or defaulting information beyond that baseline, so a 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 states a specific verb and resource ('Create ad groups') in a named system (Yandex Direct), so the operation is unambiguous. However, it offers no differentiation from close siblings such as direct.hf.create_adgroup_simple or the bulk/vs-single distinctions an agent must choose between.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus direct.hf.create_adgroup_simple, nor any note about prerequisites (campaign must exist), batching expectations, or how it relates to direct.update_adgroups. The agent is left to infer usage 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.

direct.create_adsC

Create ads in Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesAd objects to create.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, yet it only restates the name. It does not describe permissions, side effects, rate limits, authentication, or any mutation-specific behavior.

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

Conciseness5/5

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

The description is a single short sentence with zero wasted words. It is front-loaded with the core action and resource, though its extreme brevity is a separate issue for other dimensions.

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

Completeness1/5

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

For a mutation tool with four parameters (including nested objects), no annotations, and no output schema, the description is completely inadequate. It provides no behavioral, usage, or parameter context needed for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds no meaning beyond what the schema provides, making the baseline score of 3 appropriate.

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

Purpose4/5

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

The description states a specific verb ('Create') and resource ('ads') in the context of Yandex Direct, making the core action clear. However, it does not differentiate from siblings such as direct.hf.create_text_ads_bulk or direct.create_adgroups, which also create ads or related entities.

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. Numerous sibling tools exist for creating ads (e.g., direct.hf.create_text_ads_bulk) or ad groups, but the description offers no context, prerequisites, or exclusions.

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

direct.create_campaignsC

Create campaigns in Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesCampaign objects to create.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and discloses very little. It does not say the call is a mutation with side effects, whether creation is atomic or batch-fail-partial, what permissions/Client-Login are needed, or how errors surface for a multi-item array.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler. It is efficient, though the brevity borders on under-specification rather than serving conciseness.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and a nested object array of campaign payloads, the definition is far too thin. An agent lacks anything about batch semantics, failure behavior, or credential prerequisites needed to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents items, params, account_id, and direct_client_login. The description adds no syntax, format, or constraint detail beyond the schema, which is the expected baseline when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb (create) and resource (campaigns) scoped to Yandex Direct, so the agent knows exactly what operation it performs. It does not differentiate itself from siblings like direct.update_campaigns or direct.create_adgroups, relying on the name to do that work.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites (credentials, account context), and no routing to alternatives such as direct.hf.clone_campaign or direct.hf.create_adgroup_simple despite a dense sibling set. The agent must infer the entire selection context.

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

direct.create_keywordsC

Create keywords in Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesKeyword objects to create.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, and it discloses almost nothing beyond the implied mutation. It does not say what happens on duplicate keywords, whether this needs Client-Login/account scoping, what errors or partial failures look like, or whether the call is idempotent.

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?

One short, front-loaded sentence with no filler, which is structurally clean. However, the extreme brevity is under-specification rather than effective conciseness for a mutation tool with a nested object parameter.

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

Completeness2/5

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

For a write tool with no annotations, no output schema, and a nested 'items' array whose inner object shape is left entirely open, the description is far too thin. It leaves insertion context, required parent entities, and success/failure behavior unexplained.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented in the schema (items, params override, account_id, direct_client_login). The description adds no meaning beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Create keywords') scoped to Yandex Direct, so the core operation is unambiguous. It does not differentiate itself from near-identical siblings such as direct.update_keywords, direct.list_keywords, or direct.hf.find_keywords, so an agent must infer the distinction from the names alone.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisite (e.g. an existing ad group or campaign must exist first), and no mention of alternative keywords like update_keywords or the bulk/hf equivalents. The agent is left to guess the correct entry point.

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

direct.get_changesC

Get changes since a given timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNoRaw Direct params override (advanced).
timestampYesTimestamp string as required by Direct Changes.checkCampaigns.
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
field_namesNoFields for changes response (optional).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden and falls short. It does not disclose whether this is a read-only polling operation, whether changes are paginated, what the window limit is, or what the response contains, all of which matter for a change-feed tool.

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

Conciseness4/5

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

A single short sentence that is front-loaded with the verb and resource, with no wasted words. It is efficient, though the extreme brevity is a symptom of under-specification rather than disciplined concision.

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 five-parameter tool with a nested override object, no annotations, and no output schema, the description is too thin. It does not explain the return shape or the change semantics an agent needs to chain calls correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so each of the five parameters is already documented, including the advanced 'params' override and the Direct Client-Login override. The description only paraphrases the timestamp parameter and adds no meaning beyond the schema, making the baseline 3 appropriate.

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

Purpose3/5

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

The description states a verb ('Get') and a resource ('changes') with a temporal scope ('since a given timestamp'), so the basic purpose is inferable. But it never says what entity the changes belong to (campaigns, ads, bids?) and offers no differentiation from siblings like direct.hf.plan_changes or direct.list_campaigns, leaving the intent vague.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as plan_changes or list_campaigns. The agent is left to guess the scenario in which polling for changes is appropriate versus a full listing.

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

direct.hf.apply_planB

Human-friendly: apply a previously planned Direct change plan (pro-only, apply=true).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyYes
dry_runNo
plan_idYesOpaque plan id returned by direct.hf.plan_changes.
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

B3.1/5.0
Behavior2/5

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

No annotations, so the description carries the full behavioral burden. It discloses the pro-only gate and the apply=true requirement, which is useful. But for a mutation tool that commits planned changes it says nothing about reversibility, side effects, permissions, or what actually changes, and 'Human-friendly' adds no behavioral information.

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

Conciseness4/5

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

A single compact sentence with the operation front-loaded after a short label. It is efficient and wastes no words, though the leading 'Human-friendly:' is mild filler rather than substantive content.

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 no-annotation mutation tool with no output schema and 60% param coverage, the description is too thin. It should state the prerequisite (must plan first), the effect of committing a plan, and whether it is reversible. What exists is accurate but incomplete for the tool's complexity.

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 60% - plan_id, account_id, and direct_client_login are documented in the schema, while apply and dry_run are not. The description adds meaning by tying apply to 'apply=true,' partially compensating for the undocumented apply param, but dry_run is left unexplained. Baseline 3 is appropriate.

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

Purpose4/5

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

States a clear verb+resource: 'apply a previously planned Direct change plan.' It distinguishes itself as the apply step of the planning workflow (vs. direct.hf.plan_changes) and names the operation precisely. It lacks explicit contrast with the other 'apply'-style siblings like audience.hf.apply_activation_plan or bid_sweep_run, but the purpose is unambiguous.

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

Usage Guidelines3/5

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

The phrase 'previously planned' implies you must call direct.hf.plan_changes first, and it flags a pro-only constraint. However it gives no explicit when-to-use vs when-not, no prerequisite statement, and doesn't distinguish the direct.bid_sweep_run path or audience apply tools. Usage is left to inference.

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

direct.hf.apply_utm_to_adsC

Human-friendly: apply UTM template to ads in a campaign (utm_mode=auto).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
overwriteNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
utm_templateNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and largely ignores it. It never mentions that the schema exposes apply, dry_run, and overwrite flags, so an agent cannot tell whether a call mutates live ads, previews, or whether the run defaults to dry-run.

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

Conciseness3/5

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

A single short sentence, front-loaded with the verb and resource, which is structurally efficient but under-specified rather than concise. The trailing '(utm_mode=auto)' fragment refers to a non-existent parameter and clutters rather than clarifies.

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

Completeness2/5

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

For an 8-parameter mutation tool with no annotations and no output schema, the description omits the safety-relevant semantics of apply, dry_run, and overwrite, and never states what is modified or returned. Too thin for the complexity it wraps.

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

Parameters2/5

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

Schema coverage is only 25% (two of eight params documented), so the description should compensate but does not. Worse, it introduces 'utm_mode=auto', which is not an input parameter at all, adding confusion rather than semantics for utm_template, campaign_id, apply, dry_run, or overwrite.

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

Purpose4/5

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

States a specific verb and resource: apply a UTM template to ads within a campaign. An agent can tell what it does, but it does not distinguish itself from siblings like direct.hf.set_campaign_utm_template or direct.hf.set_adgroup_tracking_params that operate on adjacent objects.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or prerequisite guidance. 'Human-friendly' hints it is a wrapper over a raw Direct operation but gives no condition under which an agent should prefer it over set_campaign_utm_template or set_campaign_tracking_params.

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

direct.hf.archive_adsC

Human-friendly: archive ads.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
ad_idsNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.2/5.0
Behavior1/5

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

No annotations are provided, so the description bears the full disclosure burden for a mutation tool, and it says nothing about reversibility, whether archiving stops delivery immediately, permission requirements, or rate limits. The presence of apply and dry_run parameters makes the omission of whether a call is a preview or a real write especially damaging.

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

Conciseness3/5

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

A single short sentence with the action front-loaded, so it is not bloated. However, the 'Human-friendly:' prefix is dead weight and the overall brevity reflects under-specification rather than efficient communication.

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

Completeness1/5

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

For a 7-parameter destructive-state mutation with no annotations, no output schema, and sparse schema coverage, this description leaves critical details (dry-run behavior, required identifiers, scope of the archive) entirely unaddressed. It is substantially inadequate for the tool's complexity.

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

Parameters1/5

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

Schema description coverage is only 29, so most of the 7 parameters (apply, dry_run, ad_ids, campaign_id, campaign_name) are undocumented in both schema and description. The description adds zero parameter meaning and does not compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb and resource ('archive ads'), which is distinguishable from sibling operations like pause_ads, resume_ads, and unarchive_ads. It does not explicitly name those siblings, keeping it a step below the top score, and the 'Human-friendly:' prefix carries no meaning.

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

Usage Guidelines2/5

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

There is no indication of when to choose archive_ads over pause_ads, resume_ads, or unarchive_ads, nor any prerequisites such as required permissions or the relationship between the apply and dry_run flags. The agent is left to infer everything about invocation context.

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

direct.hf.archive_campaignsC

Human-friendly: archive campaigns (by id or name).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idsNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for a mutation tool. It never states whether archiving is reversible, what permissions are needed, or what effect it has on campaign data. Critically, it is silent on the apply/dry_run parameters, which are the primary safety mechanism for a destructive operation.

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

Conciseness4/5

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

One short front-loaded line with no wasted words. It is efficient, though arguably under-specified rather than genuinely concise given the tool's complexity.

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

Completeness2/5

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

A 6-parameter mutation tool with no annotations and no output schema needs more than a single line. The absence of any explanation of dry_run/apply semantics or reversibility leaves an agent unable to invoke this safely.

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

Parameters2/5

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

Schema coverage is only 33% (6 parameters, 2 documented). The description usefully clarifies that campaigns can be targeted by id or name, mapping to campaign_ids/campaign_name, but apply, dry_run, and the relationship between them are undocumented in both schema and description.

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

Purpose4/5

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

States a specific verb (archive) and resource (campaigns), and notes the id-or-name selector. It is distinguishable from sibling archive_ads and unarchive_campaigns, though the 'Human-friendly' prefix is filler that adds nothing.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to guidance. It does not mention how this relates to the sibling unarchive_campaigns or whether archiving is reversible, and nothing tells the agent when a dry run is appropriate.

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

direct.hf.attach_callouts_to_adsC

Human-friendly: attach callouts (adextension ids) to ads.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
ad_idsNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
callout_idsNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden and mostly doesn't. It never explains the meaning of the apply and dry_run flags, whether changes are reversible, what happens to callouts already attached, or what auth the account_id/direct_client_login imply. 'Human-friendly' is the only behavioral hint and it is unexplained.

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?

It is a single short sentence with no filler, which is efficient, but for a six-parameter mutation tool with dry-run semantics it is under-specified rather than genuinely concise. Front-loading is fine; substance is missing.

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?

With six parameters, no annotations, no output schema, and undocumented apply/dry_run behavior, the description does not give an agent enough to invoke this mutation safely or predictably. It should at minimum explain the dry-run/apply contract and the required callout set context.

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

Parameters2/5

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

Schema coverage is only 33% (just account_id and direct_client_login are documented). The description ties 'callout (adextension) ids' to callout_ids and 'ads' to ad_ids, but leaves the safety-critical apply and dry_run flags completely unexplained in both schema and description, which is a substantial gap.

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 gives a specific verb ('attach') and resource ('callouts (adextension ids) to ads'), so an agent knows exactly what operation it performs. It does not, however, name or contrast itself with the close siblings direct.hf.attach_sitelinks_to_ads and direct.hf.attach_vcard_to_ads, so the sibling differentiation is left to the tool name.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus create_callouts or the other attach_* tools, no statement of prerequisites (e.g. that callout sets must already exist), and no mention of how apply/dry_run interact. The name loosely implies the use case, but nothing is stated.

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

direct.hf.attach_vcard_to_adsC

Human-friendly: attach vcard id to ads (if supported).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
ad_idsNo
dry_runNo
vcard_idNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It is a mutation tool, yet nothing is disclosed about required permissions/ownership of the vcard, idempotency, what happens to already-attached vcards, or what occurs when the '(if supported)' condition fails.

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

Conciseness3/5

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

A single short sentence, so it is not bloated, but the 'Human-friendly:' filler and the hedging '(if supported)' consume the little space available without adding information the agent can act on.

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

Completeness2/5

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

A write-style tool with no annotations, no output schema, 0 required parameters, and only a third of its parameters documented. The description does not compensate for these gaps and leaves the agent unable to reason about safety or the dry_run/apply workflow.

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

Parameters2/5

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

Schema description coverage is only 33% (account_id and direct_client_login). The description names vcard_id and ads implicitly but says nothing about the apply and dry_run flags or the ad_ids array, leaving the two parameters that control whether the write actually happens completely unexplained.

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

Purpose4/5

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

States a specific verb (attach) and resource (vcard id) and target (ads), which cleanly distinguishes it from the sibling attach_sitelinks_to_ads and attach_callouts_to_ads. The odd 'Human-friendly:' prefix adds no meaning, but the core operation is unambiguous.

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

Usage Guidelines2/5

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

The only conditional cue is the parenthetical '(if supported)', which hints at a capability gate but never tells the agent when to choose this tool over attach_sitelinks_to_ads/attach_callouts_to_ads. No prerequisites, no mention of which ads qualify, no exclusion guidance.

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

direct.hf.bid_sweep_analyzeB

Human-friendly: analyze a bid sweep plan using Direct keyword performance report (read-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idYes
windowsYes
max_rowsNoParse at most N report rows (default: 50000).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).
include_per_keywordNoInclude per-keyword breakdown (default: false).

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the key trait — read-only — and the underlying data source, which is useful. However, it says nothing about output format, cost/rate limits, or how the report is scoped, which are relevant for an analysis step.

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?

Single compact sentence with the verb and data source front-loaded. The 'Human-friendly:' prefix adds little and slightly dilutes the lead, but overall it is efficient.

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

Completeness3/5

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

For a 6-parameter tool with two complex required params, no annotations, and no output schema, the description is thin. It is not required to explain return values, but it omits any guidance on the plan_id/windows inputs or the analysis workflow, leaving the definition only minimally viable.

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 67%, so baseline is 3. The four documented params (max_rows, account_id, direct_client_login, include_per_keyword) are explained in the schema, and the description adds nothing for the undocumented plan_id and windows array, leaving their structure and intent to inference.

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

Purpose4/5

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

States a specific verb (analyze), a specific resource (bid sweep plan), and the data source (Direct keyword performance report). This distinguishes it from siblings like bid_sweep_plan and bid_sweep_run, though it never explicitly names what it does relative to them.

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

Usage Guidelines2/5

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

No when-to-use guidance and no routing to alternatives. With close siblings bid_sweep_plan and bid_sweep_run in the same namespace, the description gives no signal about which stage of the sweep workflow this tool serves.

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

direct.hf.bid_sweep_planC

Human-friendly: build a bid sweep experiment plan (pro-only; execution is sandbox-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNo
max_stepsNoSafety cap (default: 6, max: 20).
account_idNo
adgroup_idNo
campaign_idNo
keyword_idsNo
max_keywordsNoSafety cap (default: 20, max: 200).
bid_steps_rubYesBid sweep steps in rubles (ordered).
campaign_nameNo
restore_bid_rubNoOptional final restore bid in rubles.
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).
include_autotargetingNoInclude ---autotargeting pseudo-keywords (default: false).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided, so the description carries the full burden. It discloses pro-only and sandbox-only execution, which is useful. However, it doesn't state what the plan contains, whether it mutates state, whether it requires specific permissions beyond pro, or what the output looks like. For a tool involved in experiment planning (potentially sensitive), this is insufficient.

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, front-loaded sentence with zero waste. Every word earns its place.

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?

The description is minimal for a tool with 12 parameters, no annotations, no output schema, and incomplete parameter documentation. It leaves the agent with significant gaps about usage context, parameter semantics, and return expectations. Not adequate for correct invocation.

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

Parameters2/5

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

Schema description coverage is 50% (12 params, only 5 have descriptions). The description adds no parameter information. With low coverage, the description should compensate by explaining key parameters like bid_steps_rub, account_id, campaign_id, etc. It does not, leaving half the parameters undocumented.

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

Purpose3/5

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

States the action (build a bid sweep experiment plan) and scope (pro-only, sandbox execution), which is more specific than the name alone. However, it's terse and doesn't distinguish from siblings bid_sweep_run or bid_sweep_analyze. An agent can infer the difference (plan = generate, run = execute), but the description doesn't explicitly differentiate.

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 explicit when-to-use guidance, no mention of prerequisites, no alternatives. The description notes it's pro-only and sandbox-only execution, which hints at context, but doesn't say when to choose this over bid_sweep_run or whether it's a prerequisite. No exclusions or alternatives named.

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

direct.hf.bid_sweep_runA

Human-friendly: apply one bid sweep step (pro-only, apply=true, sandbox-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyYes
dry_runNo
plan_idYesOpaque plan id returned by direct.hf.bid_sweep_plan.
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
step_indexYes0-based step index to apply.
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that the tool is pro-only and sandbox-only and requires apply=true, which covers authorization and safety scope. However, it doesn't explain what gets modified, whether changes are reversible, or rate/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.

Conciseness4/5

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

The description is a single, front-loaded sentence with dense constraint information. The only questionable element is the 'Human-friendly:' prefix, which is vague and slightly reduces efficiency.

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

Completeness3/5

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

For a mutation tool with no annotations, no output schema, and 6 parameters, the description is quite terse. It does disclose critical safety constraints (sandbox-only, pro-only), but it omits side effects, prerequisites beyond the schema's plan_id link, and error handling.

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 67%, so the schema documents most parameters. The description adds meaning for the apply parameter by requiring 'apply=true', but it does not mention dry_run, and provides no additional semantics beyond 'one step' for step_index.

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

Purpose4/5

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

The description states a specific verb ('apply') and resource ('one bid sweep step'), so the core action is clear. However, it does not explicitly differentiate itself from siblings like direct.hf.bid_sweep_plan or direct.hf.apply_plan, and the 'Human-friendly' prefix is vague.

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

Usage Guidelines4/5

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

It gives explicit conditions for use: 'pro-only, apply=true, sandbox-only'. This tells the agent when the tool is applicable and when it is not, but it does not name alternatives or explicitly say to use it after bid_sweep_plan.

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

direct.hf.clear_bid_modifiersC

Human-friendly: delete bid modifiers (by campaign/type).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
typesNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It states deletion but does not disclose destructive permanence, required permissions, dry_run/apply semantics, or reversibility.

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 front-loaded sentence with little fluff, but 'Human-friendly:' is vague and the extreme brevity leaves key behavior unspecified for a six-parameter destructive operation.

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 no annotations, no output schema, six parameters, and 33% schema coverage, the description is incomplete for a destructive mutation tool. It omits critical guardrail details such as dry_run/apply behavior, authentication needs, and expected effects.

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

Parameters2/5

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

Schema description coverage is only 33%, with account_id and direct_client_login documented. The description maps 'campaign/type' but leaves apply, dry_run, and campaign_id semantics unstated, insufficient compensation for the low coverage.

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

Purpose4/5

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

States a specific verb (delete) and resource (bid modifiers) with scoping by campaign/type. It clearly distinguishes itself from sibling set/list bid-modifier tools, though it does not name an alternative sibling.

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?

Provides no when-to-use guidance, prerequisites, or alternatives. The phrase 'by campaign/type' hints at scope but gives no conditions for choosing this tool over set_bid_modifier_* or list_bidmodifiers.

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

direct.hf.clone_campaignC

Human-friendly: clone campaign structure into a new draft campaign (best effort).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
new_nameNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full disclosure burden. It does add two useful traits - the result is a 'draft' (not a live campaign) and the operation is '(best effort)' (partial results possible) - but it never explains the apply/dry_run preview-versus-commit semantics, what happens to assets/keywords that fail, or whether an existing campaign is modified.

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

Conciseness4/5

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

A single short sentence that front-loads the action and outcome, with no wasted clauses. The 'Human-friendly:' prefix is mildly decorative but does signal this is a high-level wrapper over direct.raw_call, which is real information.

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 7-parameter mutation tool with no annotations and no output schema, this is under-specified: the draft-state and best-effort caveats are the only behavior communicated, and the clone scope (what exactly gets copied - adgroups, ads, keywords, bids?) is left undefined.

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

Parameters1/5

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

Seven parameters with only 29% schema description coverage, and the description contributes zero parameter-level information. The undocumented apply, dry_run, new_name, campaign_id and campaign_name fields - the ones an agent most needs to understand for a clone operation - are explained nowhere in either the description or the schema.

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

Purpose4/5

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

The description gives a specific verb (clone) and resource (campaign structure) and states the output is a new draft campaign, which distinguishes it from direct.create_campaigns and the many other direct.* mutation tools by name and intent. It stops short of explicitly contrasting itself with those siblings, so it is clear but not fully differentiated.

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

Usage Guidelines2/5

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

There is no guidance about when to clone versus building a campaign from scratch, nor any mention of prerequisites or the apply/dry_run workflow that the schema exposes. The only hint is the parenthetical '(best effort)', which tells the agent nothing about when to choose this tool.

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

direct.hf.create_adgroup_simpleC

Human-friendly: create a simple ad group under a campaign.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
region_idsNo
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden for what is clearly a write operation. It only implies "create"; it says nothing about the dry_run/apply flags, reversibility, required auth (Direct Client-Login), or what occurs on partial input, leaving the mutation's side effects undisclosed.

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?

It is a single front-loaded sentence with no filler, and "Human-friendly" is the only differentiation cue so it earns its place. The trade-off is that conciseness here shades into under-specification rather than tight completeness.

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

Completeness2/5

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

For an 8-parameter write tool with no annotations and no output schema, the description is far too thin. It conveys basic purpose but omits required inputs, the safe dry_run/apply pattern, and any return or failure behavior an agent would need to call it correctly.

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

Parameters2/5

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

Schema description coverage is only 25% across 8 parameters (name, apply, dry_run, region_ids, campaign_id, campaign_name are undocumented), and the description adds no field-level meaning. The phrase "under a campaign" faintly implies campaign_id/campaign_name linkage despite both being marked optional, but this is too implicit to compensate for the coverage gap.

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 gives a clear verb and resource ("create ... ad group") plus scope ("under a campaign"). However, "simple" and "Human-friendly" are vague qualifiers and do not explicitly distinguish this tool from the raw sibling direct.create_adgroups or from direct.hf.find_adgroups, so the agent must infer the difference from the tool name rather than the description.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no statement of when to prefer this over direct.create_adgroups, and no named alternatives or preconditions. The description never mentions the apply/dry_run workflow or what happens without a campaign identifier, leaving selection and sequencing entirely to inference.

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

direct.hf.create_calloutsC

Human-friendly: create callouts (AdExtensions CALLOUT).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
textsNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, yet it discloses nothing about the mutation being performed. It never states whether this hits the live account, what apply/dry_run actually control, or whether permissions are required — a significant 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.

Conciseness3/5

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

It is a single short sentence with no waste, which is good structure, but it is under-specified rather than genuinely concise — the brevity comes at the cost of substance.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and partial parameter documentation, the description does far too little. It omits the apply/dry_run execution model, the meaning of texts, and any return/confirmation behavior.

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

Parameters2/5

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

Five parameters with only 40% schema coverage, and the description covers none of them. The two undocumented execution-control params (apply, dry_run) and texts carry no explanation anywhere, so the description fails to compensate for the coverage gap.

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

Purpose3/5

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

The description gives a specific verb+resource (create callouts) and names the underlying entity (AdExtensions CALLOUT), which distinguishes it from attach_callouts_to_ads. However, 'Human-friendly' is filler and it does not clarify the relationship to create_sitelinks_set or attach_callouts_to_ads beyond the raw API type.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all: nothing explains when to create a callout set versus attaching existing callouts to ads, nor what apply/dry_run imply for execution. The agent is left to infer the workflow from the parameter names alone.

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

direct.hf.create_text_ads_bulkC

Human-friendly: create multiple TextAds in an ad group.

ParametersJSON Schema
NameRequiredDescriptionDefault
adsNo
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
adgroup_idNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden and falls short. It does not explain that this is a mutation, what apply/dry_run actually control (preview vs commit), whether it requires Direct Client-Login permissions, or what happens on partial failure across a batch. The presence of apply and dry_run flags in the schema suggests meaningful behavior the description never addresses.

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?

It is a single front-loaded sentence with no wasted words, which is good. However, at this level of brevity it becomes under-specification rather than conciseness for a six-parameter batch mutation, so it cannot score higher.

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

Completeness2/5

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

For a six-parameter bulk-write tool with no annotations, no output schema, and 33% schema coverage, the description is far too thin. It does not tell the agent how to build the ads payload, how dry_run/apply interact, or what a successful batch response looks like.

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

Parameters2/5

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

Schema description coverage is only 33%, and the description compensates for none of it. It hints at an ad group and multiple ads, loosely mapping to adgroup_id and the ads array, but says nothing about the shape of the ads objects, apply/dry_run semantics, or account_id vs direct_client_login. The undocumented parameters remain fully opaque.

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

Purpose4/5

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

States a concrete verb and resource: create multiple TextAds, scoped to an ad group. That distinguishes it from sibling create_ads and update_ads_text_bulk by the bulk-create intent, though it never names those siblings explicitly. The 'Human-friendly' prefix is filler that adds no distinguishing information.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of the alternatives (direct.create_ads, direct.hf.update_ads_text_bulk). 'Human-friendly' vaguely implies a higher-level wrapper over a raw API call, but the agent gets no condition for choosing this tool.

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

direct.hf.ensure_assets_for_campaignC

Human-friendly: ensure sitelinks+callouts exist and attach to ads in campaign.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
calloutsNo
overwriteNo
sitelinksNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a mutation ('ensure', 'attach') but does not disclose permissions, idempotency, overwrite semantics, dry-run/apply behavior, or whether missing assets are created. This leaves critical safety and side-effect context undocumented.

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 front-loaded sentence with little waste, though the 'Human-friendly:' prefix adds no operational value. For a 9-parameter mutation tool, it is concise to the point of under-specification.

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 9 parameters, no required fields, no annotations, no output schema, and only 22% schema description coverage, the description is not complete enough for reliable invocation. It omits the meaning of key flags and does not explain how the composite ensure/attach behavior interacts with existing assets.

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

Parameters2/5

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

Schema description coverage is only 22%, so the description must compensate, but it adds almost no parameter meaning. It names sitelinks, callouts, and campaign, yet critical controls like apply, dry_run, overwrite, campaign_id vs campaign_name, and account_id are not explained beyond what little the schema 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?

The description states a specific composite action: ensure sitelinks and callouts exist and attach them to ads in a campaign. It is clear enough to distinguish from single-purpose siblings like attach_sitelinks_to_ads or attach_callouts_to_ads, though it does not explicitly route the agent among them.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this composite tool versus the separate attach/create siblings. The implied use case is 'when you want both sitelinks and callouts ensured and attached', but the description does not state prerequisites, alternatives, or exclusions.

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

direct.hf.find_adgroupsC
Read-onlyIdempotent

Human-friendly: find ad groups by campaign and name.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
name_containsNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds essentially nothing behavioral beyond that, saying only 'Human-friendly' with no mention of pagination, limit behavior, or how the campaign/name filters combine.

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

Conciseness4/5

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

A single short, front-loaded sentence with no filler or restated name. It is efficient, though arguably too terse given the six parameters and the crowded sibling set.

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?

An output schema exists, so return values need not be explained. For a read-only find tool the description is minimally complete, but it omits routing guidance against the raw list tools and leaves four of six parameters unexplained.

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

Parameters3/5

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

With schema description coverage at 33%, the description must compensate, and it partially does by naming the campaign and name filters, which maps to campaign_id/campaign_name and name_contains. It leaves limit and the id-vs-name distinction undocumented in both places, so the help is partial.

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

Purpose4/5

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

States a specific verb (find) and resource (ad groups) plus the filter dimensions (campaign and name), so the agent knows what it returns. It does not explicitly distinguish itself from the sibling direct.list_adgroups or direct.report_adgroups; the 'Human-friendly' prefix only hints at the differentiation.

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

Usage Guidelines2/5

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

No when-to-use, when-not, or alternative-routing guidance is given. The description implies it is the friendly lookup variant, but with direct.list_adgroups and direct.hf.find_campaigns/find_ads/find_keywords in the sibling set, the agent gets no explicit rule for choosing among them.

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

direct.hf.find_adsB
Read-onlyIdempotent

Human-friendly: find ads by campaign/adgroup and title/href filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusesNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
adgroup_idNo
campaign_idNo
adgroup_nameNo
campaign_nameNo
href_containsNo
title_containsNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

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 idempotentHint, so the safety profile is covered. The description adds only the 'human-friendly' framing and filter capability, with no mention of pagination, limit defaults, or result-count behavior. Adequate but not rich given the lower 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.

Conciseness4/5

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

A single front-loaded sentence with no wasted words. It is efficient, though the brevity contributes to the parameter gaps.

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?

An output schema exists so return values need no explanation, and annotations cover the safety profile. However, for a 10-parameter tool with 20% schema coverage, the description omits too many filter and override parameters to be fully actionable.

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

Parameters2/5

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

Only 20% of the 10 parameters carry schema descriptions, so the description must compensate, yet it only gestures at campaign/adgroup and title/href filters. It never clarifies limit, statuses, name-vs-id precedence, or the direct_client_login override, leaving most parameters undocumented in either place.

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

Purpose4/5

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

States a specific verb and resource ('find ads') with the filter dimensions it operates on (campaign/adgroup, title/href). It is distinguishable in spirit from siblings like find_campaigns and find_adgroups, though it never names them explicitly to route the agent.

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

Usage Guidelines3/5

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

The description implies when to use it (to locate ads by campaign/adgroup or title/href) but gives no explicit when-not guidance, no prerequisite context, and no reference to alternatives such as direct.list_ads.

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

direct.hf.find_campaignsC
Read-onlyIdempotent

Human-friendly: find campaigns by name/status/type.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
typesNo
statesNo
statusesNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
name_containsNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered externally. The description adds no behavioral context beyond that, such as access requirements, result limits, or how the 'human-friendly' behavior differs from raw list tools.

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 definition is a single front-loaded sentence with no wasted clauses. The phrase 'Human-friendly' is somewhat vague filler, but the overall structure is efficient.

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 7-parameter read tool with low schema description coverage and many sibling list/find tools, the description is too thin. It does not explain filtering behavior, account/project context, or how this wrapper differs from direct.list_campaigns.

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

Parameters2/5

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

Schema description coverage is only 29%, so the description should compensate but does not. It mentions name/status/type filters, loosely mapping to name_contains, statuses, and types, but leaves account_id, direct_client_login, limit, and states without added meaning.

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

Purpose4/5

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

The description states a clear verb and resource: find campaigns, filtered by name/status/type. It is understandable without the schema, but it does not distinguish this tool from sibling direct.list_campaigns or the other direct.hf.find_* tools.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as direct.list_campaigns or direct.hf.find_adgroups. It neither states prerequisites nor excludes inappropriate use cases.

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

direct.hf.find_keywordsC
Read-onlyIdempotent

Human-friendly: find keywords by campaign/adgroup and substring.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
containsNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
adgroup_idNo
campaign_idNo
adgroup_nameNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds only the faint hint that human-readable names/substrings are accepted (vs raw ID-based listing), but doesn't say whether names are resolved server-side, whether matching is case-sensitive, or how results are capped.

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

Conciseness4/5

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

A single tight sentence with the filter axes front-loaded. The 'Human-friendly:' tag is slightly wasteful but not enough to hurt materially.

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?

Output schema exists so return values need no explanation, and annotations cover the read-only profile. Still, for an 8-parameter find tool with 25% schema coverage, the description leaves limit/pagination and name-vs-id precedence unaddressed.

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

Parameters3/5

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

Schema coverage is 25% with 8 optional params, so the description has to carry weight. It does gesture at the campaign/adgroup pair and the 'contains' substring, which covers the main filter families, but says nothing about limit, or how id vs name variants interact.

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

Purpose4/5

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

States a concrete verb ('find') and resource ('keywords') plus the filter axes (campaign/adgroup and substring), which distinguishes it from direct.list_keywords and report_keywords. The 'Human-friendly' prefix is soft framing rather than substance, but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to-use. The description implies a name/substring lookup, but it never says to prefer this over direct.list_keywords or direct.hf.report_keywords, nor what happens with no filters supplied. The agent must infer the routing decision.

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

direct.hf.get_bids_summaryB
Read-onlyIdempotent

Human-friendly: summarize bids in a campaign (min/avg/max).

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds that the result is an aggregated min/avg/max view rather than raw records, but says nothing about scope, filtering, or how a campaign is resolved when only account_id is given.

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

Conciseness4/5

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

A single short sentence with the key output detail front-loaded and no wasted words. It is terse to the point of omitting necessary scope information, but the sentence itself is efficient.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and annotations cover the read-only nature. However, the definition leaves campaign identification (id vs name) and the relationship to sibling bid tools unexplained, which is a real gap for a 4-parameter tool.

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

Parameters2/5

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

Schema coverage is only 50%: campaign_id and campaign_name are undocumented in both schema and description, and the description never clarifies how these two identifiers relate (e.g. whether one is required or which takes precedence). The description therefore fails to compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb and resource (summarize bids in a campaign) plus the aggregation output (min/avg/max), which distinguishes it from direct.list_bids by framing it as an aggregated, human-friendly summary. It does not explicitly name the sibling it differs from, but the resource and output shape 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 Guidelines2/5

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

There is no when-to-use guidance at all — nothing says when to prefer this over direct.list_bids, direct.hf.bid_sweep_analyze, or direct.hf.get_campaign_summary. Usage is only implied by the phrase 'summarize bids'.

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

direct.hf.get_campaign_assetsC

Human-friendly: show sitelinks/callouts/vcards attached in campaign.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'Show' implies a read, but the description never confirms read-only behavior, states permission requirements, or describes return shape, pagination, or what 'attached' covers (campaign-level vs ad-level). For a query tool with zero annotation coverage this is a significant gap.

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

Conciseness3/5

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

A single short sentence is efficient, but the 'Human-friendly:' prefix is throwaway and the brevity comes at the cost of missing scoping detail. Appropriately sized but under-loaded.

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 4-parameter tool with no annotations and no output schema, the description is too sparse. It omits the campaign-identifier requirement (both campaign_id and campaign_name are optional), permission context, and return content, none of which any structured field supplies.

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

Parameters2/5

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

At 50% schema coverage, the description must compensate, but it adds nothing about parameters. It never explains that campaign_id and campaign_name are undocumented alternative identifiers, that 0 params are required, or what happens when account_id is omitted. It leaves half the parameters unexplained in both places.

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

Purpose4/5

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

States a clear verb (show) and specific resources (sitelinks/callouts/vcards) scoped to a campaign, distinguishing it from write-side siblings like attach_sitelinks_to_ads and ensure_assets_for_campaign. The 'Human-friendly:' prefix is filler but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

No when-to-use guidance at all. It does not say how it differs from direct.list_sitelinks, direct.list_vcards, or direct.list_adextensions, nor whether it is a prerequisite step before attach_* or ensure_assets_for_campaign calls. The agent is left to infer everything.

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

direct.hf.get_campaign_summaryC
Read-onlyIdempotent

Human-friendly: summarize campaigns with counts (adgroups/ads/keywords).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds that the output is summarized counts rather than full records, which is useful context, but says nothing about filtering behavior, limits, or how campaign/account scoping affects results.

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

Conciseness4/5

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

A single compact sentence that front-loads the action and the returned content. The 'Human-friendly:' prefix is mildly redundant filler, but there is no wasted text beyond that.

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?

With five parameters (none required), an output schema present, and only 40% parameter coverage, the description does not explain how to scope the summary or what the limit does. It is too thin for a tool whose behavior depends on optional selectors.

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

Parameters2/5

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

Schema coverage is 40%: only account_id and direct_client_login carry descriptions, while limit, campaign_id, and campaign_name are undocumented. The description offers no parameter-level information to compensate, so the agent must guess at the semantics of limit and the campaign selectors.

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

Purpose4/5

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

States a specific verb ('summarize') and resource ('campaigns') and clarifies the content of the summary (counts of adgroups/ads/keywords). It is distinguishable from sibling tools like get_campaign_assets or get_bids_summary, though it does not explicitly name those alternatives.

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 versus adjacent tools such as direct.list_campaigns or direct.hf.find_campaigns. There is no mention of prerequisites, scoping conditions, or exclusions, leaving routing to inference.

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

direct.hf.moderate_adsC

Human-friendly: send ads for moderation (by ids or campaign).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
ad_idsNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. 'Send ads for moderation' minimally indicates a write-like action, but it does not explain what moderation means, whether ads are resubmitted or altered, how apply/dry_run behave, or any auth requirements. This leaves most behavioral burden unmet.

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, front-loaded sentence with no rambling. However, the opening 'Human-friendly:' is filler that does not earn its place, and the whole description is arguably too terse for the tool's complexity. Structure is efficient but slightly noisy.

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 7-parameter, likely mutating tool with no annotations and no output schema, the description is far too thin. It does not cover the apply/dry_run flags, account resolution, auth needs, or what the moderation result entails. An agent cannot confidently invoke it without opening the schema and guessing.

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

Parameters2/5

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

Schema description coverage is only 29%, so the description must compensate for undocumented parameters. 'By ids or campaign' clarifies that ad_ids and campaign_id/campaign_name are alternative targeting modes, but apply, dry_run, account_id, and direct_client_login receive no meaningful explanation in either place. Partial compensation is not enough.

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

Purpose4/5

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

The description states a clear verb ('send') and resource ('ads') with the goal ('for moderation'), so the core action is identifiable. It does not explicitly differentiate from siblings, but no sibling tool performs ad moderation, which helps indirectly. 'Human-friendly' is vague filler that adds no 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?

The phrase 'by ids or campaign' hints at two input modes but does not say when to use this tool versus alternatives like direct.raw_call or other direct.hf operations. There are no exclusions, prerequisites, or contextual recommendations. Usage is only implied by the action itself.

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

direct.hf.pause_adsD

Human-friendly: suspend ads.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
ad_idsNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

D1.8/5.0
Behavior1/5

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

No annotations are supplied, so the description carries the full behavioral burden, and it discloses nothing. It does not explain that pausing is reversible, that dry_run/apply likely gate whether changes are committed, or what permissions are needed.

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

Conciseness2/5

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

Four words with no waste to trim, but this is under-specification rather than conciseness. The single clause is front-loaded only in the sense that there is nothing else.

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

Completeness1/5

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

A 7-parameter mutation wrapper with no annotations, no output schema, and only two partially documented parameters is not adequately described. Nothing tells the agent how to select ads or whether the call is a dry run by default.

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

Parameters1/5

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

Schema description coverage is only 29% across 7 parameters, and the description compensates for none of it. Critical parameters (dry_run, apply, ad_ids vs campaign_id/campaign_name targeting) are left entirely unexplained.

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

Purpose3/5

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

"Suspend ads" gives a specific verb and resource, so the basic action is inferable. However, the "Human-friendly:" prefix is filler, and nothing distinguishes this from siblings like direct.hf.resume_ads, direct.hf.archive_ads, or direct.hf.pause_campaigns.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, no mention of alternatives such as archive_ads or moderate_ads. The only hint is the "hf" wrapper naming convention, which the agent must infer from siblings rather than from this description.

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

direct.hf.pause_campaignsC

Human-friendly: suspend campaigns (by id or name).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idsNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden for a state-mutating operation. It never says the suspension is reversible, what permissions/account context are needed, or — most importantly — that the 'apply' and 'dry_run' flags govern whether anything actually changes.

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?

It is a single short sentence and front-loads the action, so it is not bloated. However, the filler 'Human-friendly:' prefix consumes space while the safety flags go unmentioned, making it terse rather than efficient.

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

Completeness2/5

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

A mutation tool with no annotations, no output schema, and an undocumented apply/dry_run pair is significantly under-specified. An agent cannot safely determine whether a call executes or merely previews.

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

Parameters2/5

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

Schema coverage is only 33%; only account_id and direct_client_login are documented. The description covers the id/name selectors but is silent on apply, dry_run, and campaign_ids format, leaving the safety-critical flags undocumented in both places.

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

Purpose4/5

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

States a specific verb and resource ('suspend campaigns') plus the two selection mechanisms ('by id or name'), which cleanly separates it from siblings like direct.hf.resume_campaigns and direct.hf.archive_campaigns. The 'Human-friendly:' prefix adds no information, and no sibling is named explicitly.

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

Usage Guidelines2/5

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

No indication of when to pause versus archive or moderate, no prerequisites, and no mention of the closely related direct.hf.resume_campaigns or direct.hf.archive_campaigns. The agent must infer usage 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.

direct.hf.plan_changesC

Human-friendly: build an opaque change plan for Direct (preview-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
operationsYes
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.4/5.0
Behavior2/5

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

No annotations, so the description carries the full behavioral burden. 'Preview-only' does tell the agent no mutation occurs, which is useful, but the description never explains what the 'opaque' plan contains, how long it stays valid, or how it is consumed downstream.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; it is efficient. It errs on the side of being too thin rather than too long.

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 and no annotations for a planning tool whose result is explicitly 'opaque' and meant to be applied later. An agent cannot tell what it will receive or how to proceed, leaving a major gap.

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

Parameters2/5

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

With only 67% schema description coverage and a nested operations array whose 'op' enum values are the crux, the description adds nothing about parameters. It leaves the agent to infer that operations drives the plan entirely from the schema.

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

Purpose3/5

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

States a verb (build) and resource (change plan for Direct), but the qualifiers 'Human-friendly' and 'opaque' add confusion rather than precision. It does not distinguish this from close siblings like direct.hf.bid_sweep_plan or explain its relationship to direct.hf.apply_plan.

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?

'(preview-only)' implies a dry-run intent, but there is no explicit when-to-use guidance, no mention that the plan is meant to feed direct.hf.apply_plan, and no exclusions versus other planning tools such as bid_sweep_plan.

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

direct.hf.pressure_reportC
Read-onlyIdempotent

Human-friendly: market pressure report by semantic clusters (best effort, read-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
grainNoday|week|month (default: day).
date_toYesYYYY-MM-DD.
devicesNoOptional Direct devices filter (best effort).
regionsNoOptional Direct regions filter (best effort).
clustersNoOptional semantic clusters input. When omitted, returns one __all__ cluster.
max_rowsNoParse at most N report rows (default: 50000).
date_fromYesYYYY-MM-DD.
placementNosearch|rsya|all (default: all).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
adgroup_idsNoOptional ad group filter.
campaign_idsNoOptional campaign filter.
include_breakdownNoTry to include placement/device/region breakdown when supported.
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description's 'read-only' merely repeats that. The useful addition is 'best effort', which signals results may be incomplete or approximate, a behavioral trait not covered by annotations, but nothing is said about auth/account resolution, rate limits, or cost.

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 front-loaded sentence with no filler, and the scoping caveat ('best effort') is stated compactly. The 'Human-friendly:' prefix is borderline fluff but does signal the output style, so the sentence is efficient overall.

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 13-parameter report tool with semantic-cluster inputs, the description never explains what 'market pressure' measures, how clusters shape the report, or what the output schema contains conceptually. Even with an output schema covering return fields, the agent lacks the conceptual grounding needed to use this tool correctly alongside its many report siblings.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (date_from, date_to, clusters, account_id, etc.) is already documented in the schema. The description adds no syntax, format, or default details beyond what the schema provides, 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.

Purpose3/5

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

The description states it produces a 'market pressure report by semantic clusters', which names a resource and clustering dimension, but 'market pressure' is undefined jargon and the verb is only implied. It does not differentiate itself from sibling report tools like direct.hf.report_performance or direct.hf.report_search_phrases, so an agent cannot confidently tell when this report is the right one.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no when-not-to-use guidance, and no named alternative among the many direct.hf report siblings. The only routing hint is the 'semantic clusters' phrase, which is left for the agent to infer.

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

direct.hf.report_adgroupsC
Read-onlyIdempotent

Human-friendly: Direct adgroups report preset.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.4/5.0
Behavior2/5

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

Annotations declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered, but the description adds essentially nothing beyond 'preset'. It does not disclose what the preset aggregates (metrics, dimensions, default date range), whether it pages, or what makes it 'human-friendly' versus the raw report tools.

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?

It is a single short sentence, so it is not bloated. However, the one sentence is largely non-informative, so brevity comes at the cost of usefulness rather than through efficient front-loading of real content.

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?

An output schema exists, so return values need not be described here. But for a report preset with 40% parameter coverage and a crowded family of sibling report tools, the description is too thin: it never says what the report is for or how it differs from the other report_* presets.

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

Parameters2/5

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

Schema coverage is only 40%: account_id and direct_client_login are documented, but date_from, date_to, and campaign_id are not. The description does not compensate by explaining date-range semantics, filtering behavior, or what defaults apply when parameters are omitted.

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

Purpose3/5

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

The description names a verb-less but identifiable resource: a 'Direct adgroups report preset'. It is vague about what the report actually returns and does nothing to distinguish it from close siblings like direct.hf.report_performance, report_ads, or report_keywords. 'Human-friendly' is filler that adds no discriminating information.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of any alternative report preset. An agent cannot tell from this text when to pick the adgroups report over report_performance or report_ads.

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

direct.hf.report_adsC
Read-onlyIdempotent

Human-friendly: Direct ads report preset.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds nothing beyond that: no indication of what the preset covers, what dimensions or date-range constraints apply, or pagination behavior. For a report tool with several near-identical siblings, this is a missed opportunity.

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

Conciseness2/5

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

The single phrase is brief but under-specified rather than concise; there is not enough content to be front-loaded or wasted. Brevity here reflects missing information, not efficiency.

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?

An output schema exists so return values need not be explained, but with 5 parameters at 40% coverage, no usage guidance, and an undefined 'preset', the definition is not complete enough for an agent to invoke it confidently against its many report siblings.

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

Parameters1/5

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

Only 40% schema description coverage across 5 parameters, and the description contributes no parameter meaning at all. date_from/date_to/campaign_id are undocumented in both places, so the description fails to compensate for the coverage gap.

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

Purpose3/5

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

It names the resource (Direct ads) and the operation class (report preset), which is more than a tautology. However, 'preset' is never defined, and siblings like direct.hf.report_performance, direct.hf.report_adgroups and direct.hf.report_keywords are not differentiated, so an agent cannot tell which report to pick.

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

Usage Guidelines2/5

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

There is no when-to-use, no when-not-to-use, and no mention of the other report siblings. The agent must infer selection purely from the tool name.

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

direct.hf.report_keywordsC
Read-onlyIdempotent

Human-friendly: Direct keyword report preset.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.2/5.0
Behavior2/5

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

Annotations declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds only 'Human-friendly' and 'preset', which are vague and do not disclose what the preset includes, default date ranges, or any behavioral quirks. It falls short of adding useful 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.

Conciseness3/5

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

The description is a single short phrase, so it is concise and front-loaded. However, it is under-specified rather than purposefully concise, and the phrase 'Human-friendly' is filler that does not earn its place.

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 5 parameters, low schema description coverage, and many sibling report tools, the description is incomplete. Although an output schema exists (so return values need not be explained) and annotations cover safety, the lack of parameter meaning and usage guidance leaves the agent without enough to invoke the tool correctly.

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

Parameters1/5

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

The input schema has 5 parameters with only 40% description coverage, and the tool description mentions none of them. Critical parameters like date_from, date_to, and campaign_id have no documentation in either the schema or the description. The description fails to compensate for the low schema coverage.

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

Purpose3/5

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

The description states it is a keyword report preset, which identifies the resource (keywords) and the preset nature. However, it lacks a specific verb and mostly restates the tool name, leaving the exact action vague. It does distinguish it from direct.report by the 'preset' qualifier, but only marginally.

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 direct.report or direct.hf.report_ads. There is no mention of prerequisites, appropriate contexts, or exclusions. The phrase 'Human-friendly' does not clarify usage.

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

direct.hf.report_performanceC
Read-onlyIdempotent

Human-friendly: Direct performance report preset (day/week/month).

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
granularityNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. Beyond that the description adds almost nothing: it doesn't disclose what the preset aggregates, required auth/account resolution, rate limits, or default date behavior. Calling it 'human-friendly' conveys no actionable behavioral trait.

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?

It is a single short sentence, which is efficient, but 'Human-friendly:' is filler and the size reflects under-specification rather than disciplined economy. The one informative clause (preset day/week/month) is front-loaded in the parenthetical.

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 7-parameter reporting tool with low schema coverage, the description is far too thin; it never explains what the report returns or how the preset differs from the sibling report tools. Although an output schema exists (so return-value description is not strictly required), the selection and input guidance needed to invoke this correctly across 7 params is missing.

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

Parameters2/5

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

Schema description coverage is only 29% (only account_id and direct_client_login are documented in the schema), so the description is expected to compensate but does not. It mentions granularity implicitly via 'day/week/month' but says nothing about date_to/date_from formats, campaign_id/campaign_name filtering, or how account_id defaults resolve. Six of seven parameters carry no explanatory support.

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

Purpose3/5

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

The description states a verb+resource (performance report) scoped as a Direct preset with day/week/month granularity, so the basic purpose is inferable. However, it never distinguishes itself from the many sibling report tools (direct.hf.report_keywords, report_ads, report_adgroups, report_search_phrases, pressure_report, direct.report), leaving the agent to guess which report to pick. The 'Human-friendly:' prefix adds framing but no differentiating substance.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance and no named alternative among the numerous report siblings. The '(day/week/month)' hint implies a preset bucket but does not say when this preset should be chosen over raw direct.report or the other report_* variants. Usage must be entirely inferred.

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

direct.hf.report_search_phrasesC
Read-onlyIdempotent

Human-friendly: Direct search phrases report preset (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations declare readOnlyHint=true and idempotentHint=true, so safety is covered structurally, but the description adds nothing beyond them: no statement about report latency, date-range defaults, pagination, or row limits. For a report-generation tool the description should at least characterize the output volume.

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

Conciseness2/5

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

The single sentence is short, but brevity here reflects under-specification rather than economy: the 'Human-friendly:' prefix and '(optional)' add no information and occupy the front-loaded position that should carry the tool's purpose.

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?

Although an output schema exists (so return values need not be described), the definition still leaves five parameters at 40% coverage unexplained and gives no notion of what the preset report contains. For a reporting tool in a crowded sibling set this is inadequate.

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

Parameters2/5

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

Schema description coverage is only 40%, and the description mentions no parameter at all, so it fails to compensate for undocumented fields such as date_from/date_to and campaign_id. The two documented parameters (account_id, direct_client_login) get no extra context from the prose.

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

Purpose2/5

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

The phrase 'Direct search phrases report preset' names a resource but supplies no verb and no scope, effectively restating the tool name with a vague 'Human-friendly' wrapper. An agent cannot tell from this text what the tool returns or how it differs from siblings like direct.hf.report_performance or direct.hf.report_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?

There is no when-to-use guidance, no mention of prerequisites, and no reference to an alternative report tool. The lone qualifier '(optional)' is left unexplained and does not clarify selection criteria.

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

direct.hf.resume_adsC

Human-friendly: resume ads.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
ad_idsNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and delivers almost nothing. It implies a state-mutating operation but says nothing about permissions, the role of 'apply' vs 'dry_run', rate limits, or what happens to ads that were never paused.

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

Conciseness2/5

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

It is short, but the brevity reflects under-specification rather than conciseness. The 'Human-friendly:' prefix consumes the front-loaded position with noise instead of the actual action or scope.

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

Completeness1/5

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

For a 7-parameter mutation tool with no annotations and no output schema, the definition is far too thin. The un-annotated dry-run/apply workflow and the ad-targeting parameters are entirely undocumented, leaving an agent unable to call it safely.

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

Parameters1/5

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

Schema description coverage is only 29% across 7 parameters, and the description adds zero parameter meaning. Critical controls like 'apply', 'dry_run', and 'ad_ids' are left entirely unexplained in both the schema and the description.

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

Purpose3/5

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

The phrase 'resume ads' names a recognizable verb+resource, so the basic action is inferable. However, the 'Human-friendly:' prefix is filler and the description does nothing to distinguish this from near-identical siblings such as direct.hf.pause_ads, direct.hf.unarchive_ads, or direct.hf.archive_ads.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the many sibling ad-state tools. An agent gets no signal about prerequisites (e.g. whether ads must be paused/archived first) or what conditions select this over archive/unarchive variants.

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

direct.hf.resume_campaignsC

Human-friendly: resume campaigns (by id or name).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idsNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden of behavioral disclosure. It doesn't state that resuming mutates live campaign state, whether it requires confirmation, what permissions are needed, or how dry_run/apply interact. 'Human-friendly' hints at a safe wrapper but discloses nothing concrete.

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?

Single short sentence, front-loaded with the action. It's efficient, though its brevity is partly the source of the tool's under-specification rather than pure economy.

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

Completeness2/5

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

A mutation tool with 6 parameters, no annotations, no output schema, and 33% schema coverage should do far more. The dry_run/apply pattern and account/client-login scoping context are never explained, leaving the agent without enough to invoke it safely.

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

Parameters2/5

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

Schema coverage is only 33%, so the description must compensate. 'By id or name' usefully clarifies the campaign_ids vs campaign_name duality, but the potentially critical apply and dry_run parameters are left completely undocumented in both schema and description.

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

Purpose4/5

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

States a specific verb (resume) and resource (campaigns), clearly distinguishing this from sibling mutations like pause_campaigns, archive_campaigns, and resume_ads. It doesn't explicitly contrast with those siblings or state preconditions (e.g. must be paused), so it stops short of a 5.

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

Usage 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 pause/archive/unarchive siblings, and no explanation of the dry_run/apply workflow implied by the schema. The agent must infer intended usage 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.

direct.hf.set_adgroup_autotargetingC

Human-friendly: enable/disable autotargeting (best effort, depends on campaign type).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
enabledNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
adgroup_idNo
campaign_idNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it does disclose a real behavioral trait — that the operation is best-effort and campaign-type dependent, so it can silently no-op. But it says nothing about required permissions, whether the change is reversible, the side effects of disabling autotargeting on existing keywords, or the dry_run/apply mechanics.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the caveat is placed inline rather than buried. It is efficient, though it trades away detail that this 7-parameter mutation tool needs.

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

Completeness2/5

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

This is a mutation tool with no annotations, no output schema, and 71% of parameters undocumented, yet the description covers only the headline action. The apply/dry_run preview-vs-commit behavior and the target identifiers essential for correct invocation are entirely unaddressed.

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

Parameters2/5

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

Schema description coverage is only 29% (2 of 7 params), and the description adds no parameter meaning at all. Five parameters — apply, dry_run, enabled, adgroup_id, campaign_id — are undocumented in both schema and description, so an agent must guess at the boolean control semantics.

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

Purpose4/5

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

States a specific verb (enable/disable) and resource (autotargeting) scoped to an adgroup, which distinguishes it from the sibling direct.hf.set_autotargeting_bid. It does not, however, mention which identifiers select the target adgroup, leaving part of the 'what' implicit.

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

Usage Guidelines2/5

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

No guidance on when to use this versus set_autotargeting_bid or update_adgroups, no prerequisites, and no mention of the dry_run/apply workflow. The phrase 'best effort, depends on campaign type' hints that it may not apply universally but never says what to do instead.

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

direct.hf.set_adgroup_negative_keywordsC

Human-friendly: set ad group negative keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
itemsNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
adgroup_idNo
campaign_idNo
adgroup_nameNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full disclosure burden and provides essentially none. It does not say whether existing negative keywords are replaced or appended, what apply/dry_run actually do, or what permissions are required for this mutation.

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?

One short sentence with no redundancy, but the 'Human-friendly:' prefix is filler that consumes the only available space, and the brevity is under-specification rather than effective concision.

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

Completeness1/5

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

A 9-parameter mutation tool with no annotations, no output schema, and low schema coverage needs far more than a tautological sentence. An agent cannot safely invoke this without understanding apply/dry_run and the ad group identifier fields.

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

Parameters1/5

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

Nine parameters at 22% schema coverage, and the description mentions none of them. Critically, the apply and dry_run booleans — which determine whether the call is a preview or a real mutation — are left completely unexplained in both the schema and the description.

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

Purpose4/5

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

States a specific verb and resource ('set ad group negative keywords'), so the mutation target is unambiguous. However, it does not distinguish itself from the near-identical sibling direct.hf.set_campaign_negative_keywords or mention scope relative to find_keywords/suggest_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 Guidelines2/5

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

No when-to-use guidance, no prerequisites (e.g., that the ad group must already exist), and no mention of the dry_run/apply workflow this family clearly uses. The agent must infer everything 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.

direct.hf.set_adgroup_tracking_paramsC

Human-friendly: set TrackingParams for an ad group.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
adgroup_idNo
tracking_paramsNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a mutation via 'set' but does not explain permissions, whether changes affect existing ads, how apply/dry_run behave, or what the operation returns.

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 short sentence and is front-loaded, which is good. However, the phrase 'Human-friendly:' adds no useful meaning for an agent, and the extreme brevity leaves necessary operational context missing.

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

Completeness2/5

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

For a six-parameter mutation tool with no annotations and no output schema, the description is far too sparse. It does not cover the apply/dry_run workflow or identifier semantics, which an agent would need before invoking it safely.

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

Parameters2/5

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

Schema description coverage is only 33%, leaving apply, dry_run, adgroup_id, and tracking_params without schema descriptions. The description vaguely references tracking params but does not explain the format, required identifiers, or the important apply/dry_run controls.

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

Purpose4/5

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

The description states a specific verb ('set') and resource ('TrackingParams for an ad group'), so the core operation is clear. It distinguishes this tool from the campaign-level sibling direct.hf.set_campaign_tracking_params by scope, though it does not explicitly name alternatives.

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 direct.hf.set_campaign_tracking_params, direct.hf.apply_utm_to_ads, or other tracking-related siblings. It also does not mention prerequisites, dry-run workflows, or when not to use it.

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

direct.hf.set_autotargeting_bidC

Human-friendly: set bid for ---autotargeting pseudo-keywords (rubles).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
bid_rubNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses only the currency (rubles); it says nothing about whether this mutates state, what apply/dry_run do, or whether authentication via Direct Client-Login is required, all of which matter for an unattended agent.

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

Conciseness3/5

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

A single short sentence with the action front-loaded, so there is no padding. The brevity is under-specification rather than elegance, and the '---autotargeting' notation is confusing without explanation.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and only partial schema coverage, the description should explain the apply/dry_run safety pattern, the bid semantics, and how campaigns are identified. Instead it provides only a one-line label, leaving the agent without enough to call it safely.

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

Parameters2/5

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

Schema coverage is only 29% (7 params, 2 described), and the description does not compensate: apply, bid_rub, dry_run, campaign_id, and campaign_name are undocumented in both places. The '(rubles)' hint loosely relates to bid_rub but never names or explains the parameter, its interaction with dry_run/apply, or how campaign targeting is resolved.

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

Purpose3/5

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

The description names a verb (set bid) and a resource (autotargeting pseudo-keywords) plus a currency unit, which is more specific than a tautology. However, the '---autotargeting pseudo-keywords' phrasing is cryptic and it offers no differentiation from the many sibling bid tools such as direct.hf.set_keyword_bid or direct.hf.set_keyword_bids_bulk.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus set_keyword_bid, set_keyword_bids_bulk, or the bid-modifier siblings, nor any mention of prerequisites. The word 'Human-friendly' hints at a convenience wrapper but does not translate into an actionable selection criterion.

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

direct.hf.set_bid_modifier_demographicsC

Human-friendly: set demographics bid modifier (age+gender).

ParametersJSON Schema
NameRequiredDescriptionDefault
ageNo
applyNo
genderNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
value_percentNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Human-friendly' and 'set' imply a mutation wrapper, but it omits auth requirements, dry_run/apply semantics, reversibility, and what happens to existing modifiers.

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 single sentence is front-loaded and waste-free, but it is too sparse for a 9-parameter mutation tool. The 'Human-friendly:' prefix adds little value while the rest under-specifies rather than conveys necessary structure.

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

Completeness1/5

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

For a 9-parameter mutation tool with no annotations, no output schema, 22% schema coverage, and operational parameters like apply, dry_run, and value_percent, one sentence is grossly incomplete. An agent cannot call it correctly without guessing.

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

Parameters2/5

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

Schema coverage is only 22% (2 of 9 parameters documented). The description mentions age and gender but gives no meaning for value_percent, apply, dry_run, campaign_id, campaign_name, or how account_id resolves defaults, so it does not compensate for low schema coverage.

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 gives a specific verb ('set'), resource ('bid modifier'), and demographic scope ('age+gender'), which distinguishes it from sibling bid-modifier tools for mobile, desktop, and geo. However, it does not state whether the modifier applies at campaign or adgroup level, keeping it from a 5.

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

Usage Guidelines2/5

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

No when-to-use, when-not, or alternatives are provided. It does not explain its relationship to siblings like direct.hf.set_bid_modifier_mobile, direct.hf.set_bid_modifier_desktop, or direct.hf.clear_bid_modifiers.

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

direct.hf.set_bid_modifier_desktopC

Human-friendly: set desktop bid modifier (percent).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
value_percentNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it says almost nothing. For a mutation tool with apply and dry_run flags, it does not explain whether changes are live immediately, what dry_run does, or what permissions/scope are required. 'Human-friendly' is an unexplained label rather than disclosed behavior.

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

Conciseness3/5

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

A single short, front-loaded sentence with no padding — nothing is wasted, but it is thin rather than efficient. It is adequately sized for the purpose it attempts but is under-specified given seven parameters and a write operation.

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?

Seven parameters with zero required and no annotations, no output schema, and no return-value explanation. The description never covers the apply/dry_run workflow or how a campaign is targeted, so an agent cannot confidently construct a call from this definition alone.

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

Parameters2/5

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

Schema coverage is only 29% (account_id and direct_client_login are documented). The description's 'percent' does clarify the unit for value_percent, which is genuinely useful since an agent could otherwise pass 1.5 or 150. But apply, dry_run, campaign_id, and campaign_name remain undocumented in both the schema and the description.

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

Purpose4/5

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

States a specific verb (set), resource (bid modifier), a platform scope (desktop) and the unit (percent), which cleanly distinguishes it from the sibling set_bid_modifier_mobile. It does not, however, name those siblings explicitly or clarify how it relates to set_bid_modifier_demographics/geo, so an agent must infer the distinction. Clear but not sibling-differentiating.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no named alternative. The word 'desktop' implicitly routes away from the mobile/demographics/geo variants, but the agent is left to work out that these are mutually exclusive targeting dimensions on its own. No exclusions or conditions are stated.

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

direct.hf.set_bid_modifier_geoC

Human-friendly: set geo bid modifier (best effort).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
region_idNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
value_percentNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden. 'Best effort' hints that application may be partial or non-atomic, which is genuinely useful, but there is nothing about whether this requires apply=true, what dry_run does, permissions, or what state is mutated.

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 single sentence is front-loaded and wastes no words, but it is under-specified rather than truly concise, and the 'Human-friendly:' label is pure filler for a 7-parameter mutation tool.

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 7-parameter write tool with zero annotations, 29% schema coverage, no required-parameter indication, and no output schema, this description is far too thin; an agent has almost no basis for calling it safely or correctly.

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

Parameters2/5

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

Schema coverage is only 29% across 7 parameters, so the description should compensate, yet it explains none of them. 'geo' loosely implies region_id and 'bid modifier' implies value_percent, but apply, dry_run, campaign_id, and the client-login override are left entirely to bare types.

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

Purpose4/5

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

The description names a specific verb+resource ('set geo bid modifier') and the word 'geo' implicitly separates it from the sibling tools set_bid_modifier_mobile/desktop/demographics. The 'Human-friendly' prefix is filler that adds nothing to identifying the action.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no named alternative. An agent must infer from the term 'geo' alone that this covers regional bid adjustments rather than device or demographic ones, which is never stated.

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

direct.hf.set_bid_modifier_mobileC

Human-friendly: set mobile bid modifier (percent).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
value_percentNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It implies a write/mutation operation and specifies the percent unit, but says nothing about permissions, side effects, reversibility, apply/dry_run semantics, or required targeting parameters.

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

Conciseness2/5

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

The single sentence is short, but it is under-specified rather than concise. The 'Human-friendly:' prefix is filler that does not earn its place, and the sentence omits essential structure about scope and required inputs.

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

Completeness1/5

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

For a 7-parameter mutation tool with no annotations, no output schema, and low schema coverage, the description is critically incomplete. An agent cannot determine required inputs, the effect of apply/dry_run, or how mobile bid modifiers are targeted from this description alone.

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

Parameters2/5

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

Schema description coverage is low at 29%, so the description should compensate for undocumented parameters. It only clarifies that value_percent is a percent for mobile bid modification; it does not explain apply, dry_run, campaign_id, or campaign_name, leaving most parameters ambiguous.

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

Purpose4/5

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

The description names a specific verb and resource (set mobile bid modifier) and identifies the unit (percent), which distinguishes it from sibling tools such as set_bid_modifier_desktop and set_bid_modifier_demographics. However, the preamble 'Human-friendly' adds no discriminative meaning, and the scope (campaign/adgroup level) is not stated.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives like set_bid_modifier_desktop, set_bid_modifier_geo, or clear_bid_modifiers. No prerequisites, exclusions, or context for invocation are provided.

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

direct.hf.set_campaign_budgetC

Human-friendly: set campaign daily budget (rubles) if supported, else returns patch hint.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
daily_budget_rubNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses only that unsupported cases return a patch hint; it says nothing about permissions, whether the mutation is immediate or gated by apply/dry_run, or what the return value actually looks like.

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

Conciseness4/5

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

A single front-loaded sentence with no filler beyond the somewhat vague 'Human-friendly:' prefix. It is compact, though arguably too terse for an eight-parameter mutation tool.

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

Completeness2/5

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

For an eight-parameter mutation tool with no annotations and no output schema, the description is severely incomplete. It omits the meaning of mode/apply/dry_run, account resolution, and campaign targeting rules, so an agent lacks what it needs to invoke it safely and correctly.

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

Parameters2/5

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

Schema description coverage is only 25% and six parameters (mode, apply, dry_run, campaign_id, campaign_name, daily_budget_rub) lack schema-level explanation. The description restates the budget parameter's currency but adds no meaning for mode, apply, or dry_run, leaving the agent to guess how to call this tool correctly.

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

Purpose4/5

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

States a specific verb and resource (set campaign daily budget) with currency unit, and implies a fallback behavior. It does not explicitly differentiate itself from generic siblings like direct.update_campaigns, but the budget focus is clear enough.

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?

Gives no when-to-use or when-not-to-use guidance relative to alternatives such as direct.update_campaigns or direct.raw_call. The 'if supported, else returns patch hint' clause describes fallback behavior, not usage context.

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

direct.hf.set_campaign_geoC

Human-friendly: set geo (RegionIds) for all ad groups in a campaign.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
region_idsNo
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and it is thin. It does disclose the bulk scope (all ad groups), but says nothing about whether region_ids replaces or merges with existing targeting, what apply/dry_run mean, whether the change is reversible, or what permissions are needed.

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 single sentence is front-loaded and contains no filler, which is good. However, one sentence is undersized for a 7-parameter mutation tool with two control booleans, so the brevity comes at the cost of necessary specification.

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 annotations, no output schema, low schema coverage and seven parameters, including the critical apply/dry_run pair, are all left unexplained. An agent cannot safely invoke this tool without guessing at the dry-run semantics and the replacement behavior of region_ids.

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

Parameters2/5

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

Schema coverage is 29% and only account_id and direct_client_login are documented, leaving region_ids, campaign_id, campaign_name, apply and dry_run bare. The description only hints that RegionIds maps to region_ids and does not explain the campaign_id vs campaign_name choice or the apply/dry_run booleans.

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

Purpose4/5

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

States a specific verb (set), resource (geo/RegionIds) and scope (all ad groups in a campaign), which lets an agent distinguish it from the sibling update_adgroup_geo that operates on a single ad group. The sibling is not named explicitly, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this bulk tool versus update_adgroup_geo, no prerequisites, and no explanation of the apply/dry_run workflow that governs whether the change is actually written. Usage is only implied by the scope phrase.

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

direct.hf.set_campaign_negative_keywordsC

Human-friendly: set campaign negative keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
itemsNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden for a mutation tool. Critically, 'set' is ambiguous about whether the existing negative keyword list is replaced or appended to, and nothing explains the apply vs dry_run behavior or required auth (e.g., direct_client_login).

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 sentence is short and front-loaded, but the 'Human-friendly:' prefix is filler that earns no place, and the extreme brevity is under-specification rather than efficient conciseness.

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

Completeness1/5

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

For a 7-parameter mutation tool with no annotations and no output schema, this one-line description is wholly inadequate. An agent lacks the information needed to safely set negative keywords, especially the replace-vs-append semantics and the apply/dry_run contract.

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

Parameters1/5

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

Seven parameters exist with only 29% schema description coverage, and the description mentions none of them. It gives no meaning for items, apply, dry_run, campaign_id vs campaign_name, or the two documented override params, so it fails to compensate for the coverage gap.

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 gives a clear verb+resource combination (set negative keywords for a campaign), so an agent knows the operation. However, it does not distinguish this from the close sibling direct.hf.set_adgroup_negative_keywords, which sets the same kind of entity at a different scope.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus the adgroup-level variant, nor any mention of prerequisites or the apply/dry_run workflow. The agent is left to infer everything 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.

direct.hf.set_campaign_scheduleC

Human-friendly: set campaign schedule/time targeting (best effort).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
time_targetingNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it only adds the vague '(best effort)' note. It does not explain the apply/dry_run semantics, what 'best effort' means operationally, permission needs, or what changes are made to existing schedule settings.

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

Conciseness3/5

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

A single front-loaded sentence with no filler, which is structurally clean. However it is under-specified rather than appropriately concise for a 7-parameter tool, so it does not earn a higher score.

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

Completeness1/5

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

With 7 parameters, 29% schema coverage, a nested time_targeting object, no annotations, and no output schema, the description is far too thin. An agent lacks the apply/dry_run behavior and targeting shape needed to call it correctly.

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

Parameters1/5

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

Schema coverage is a low 29% (only account_id and direct_client_login are documented), so the description must compensate, but it says nothing about apply, dry_run, campaign_id vs campaign_name, or the time_targeting object. It adds zero meaning beyond the schema.

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

Purpose4/5

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

States a specific verb (set) and resource (campaign schedule/time targeting), so an agent can tell what it does. It does not distinguish itself from the many sibling set_campaign_* tools (budget, geo, tracking_params, etc.), so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites, and no routing to alternatives. The lone qualifier '(best effort)' hints at reliability but doesn't tell the agent when this tool is the right choice over the other campaign-setting siblings.

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

direct.hf.set_campaign_strategy_presetC

Human-friendly: apply a strategy preset to a campaign.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
presetNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden and fails: it does not state that this is a write/mutation, what happens to existing campaign settings, whether the change is reversible, or which permissions/accounts are needed. Critically, it never surfaces the purpose of the `apply` and `dry_run` flags, which are the most behaviorally significant fields in the schema.

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

Conciseness3/5

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

The single sentence is front-loaded and wastes no words, but its brevity here reflects under-specification rather than efficiency — no actionable detail is packed in.

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

Completeness2/5

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

A 7-parameter mutation tool with no annotations, no output schema, low schema coverage, and an undefined 'preset' concept requires far more than one sentence. An agent cannot determine what a preset does, what the apply/dry_run flags trigger, or what a successful call changes.

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

Parameters2/5

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

Schema coverage is only 29% (7 params, 2 described), so the description must compensate and does not. It says nothing about `apply`, `dry_run`, `preset` values, or campaign targeting, and adds no meaning beyond the two schema-documented account fields.

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

Purpose3/5

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

States a verb ('apply') and a resource ('strategy preset to a campaign'), so the agent knows this mutates campaign strategy. However, 'preset' is never defined (what presets exist, what settings they set), and the description does not distinguish it from the many sibling set_campaign_* tools that also configure campaigns.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of when to prefer this over direct.hf.set_campaign_budget, set_campaign_geo, or the other set_campaign_* siblings. The only hint is the 'Human-friendly' prefix, which is a naming convention rather than usage guidance.

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

direct.hf.set_campaign_tracking_paramsC

Human-friendly: set TrackingParams for a campaign (best effort).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
tracking_paramsNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. '(best effort)' does disclose that the operation is not guaranteed to fully succeed, which is real value. But it says nothing about the behaviorally critical apply/dry_run parameters, what gets overwritten, permission requirements, or response shape for a 7-parameter 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.

Conciseness4/5

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

A single short sentence with no wasted words, and the operation is front-loaded. Given the 7-parameter surface and zero annotation support, however, it is arguably under-specified rather than concisely complete.

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

Completeness2/5

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

For a mutation tool with 7 parameters, no required-parameter guidance, no annotations, and no output schema, a one-line description is inadequate. An agent cannot determine the roles of apply/dry_run or which identifier (campaign_id vs campaign_name) to supply.

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

Parameters2/5

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

Schema description coverage is only 29% (2 of 7 params: account_id and direct_client_login). The description mentions 'TrackingParams' loosely mapping to tracking_params, but apply, dry_run, campaign_id, and campaign_name are undocumented in both schema and description. Far too thin to compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb (set) and resource (TrackingParams for a campaign), so an agent knows what the tool does. However, it does not differentiate itself from the sibling direct.hf.set_adgroup_tracking_params, and the 'Human-friendly' prefix adds no discriminating value.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites, and no routing to alternatives. The '(best effort)' parenthetical hints at expected behavior but provides no selection criteria between this tool, the adgroup variant, or direct.hf.set_campaign_utm_template.

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

direct.hf.set_campaign_utm_templateC

Human-friendly: apply UTM template to a campaign (utm_mode=auto).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
overwriteNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
utm_templateNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says 'apply,' implying mutation, but does not disclose permissions required, whether existing UTM parameters are overwritten, what dry_run or apply=false actually do, or what a successful 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.

Conciseness3/5

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

The single sentence is front-loaded and short, but the 'Human-friendly:' prefix is vague filler that does not earn its place and leaves the core action under-specified.

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

Completeness2/5

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

For an 8-parameter mutation tool with no annotations and no output schema, the description is far too sparse. It does not explain required inputs, preconditions, side effects, or how to safely use the apply/dry_run/overwrite flags.

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

Parameters1/5

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

There are 8 parameters with only 25% schema description coverage (account_id and direct_client_login). The description adds no meaning for apply, dry_run, overwrite, campaign_id, utm_template, or campaign_name, and 'utm_mode=auto' is not even a parameter in the schema.

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

Purpose4/5

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

States a specific verb and resource ('apply UTM template to a campaign'), making the core action clear. However, it does not differentiate itself from sibling tools such as direct.hf.set_campaign_tracking_params or direct.hf.apply_utm_to_ads, so an agent cannot tell which UTM-related tool to select from the name and description alone.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives or exclusions. 'Human-friendly' and 'utm_mode=auto' do not explain the scenario where this tool is preferred over the many sibling tools that also set tracking or UTM data.

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

direct.hf.set_keyword_bidC

Human-friendly: set a bid for a single keyword (rubles).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
bid_rubNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
keyword_idNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and largely drops it. It notes the currency (rubles) but never explains that 'apply' toggles real mutation, what 'dry_run' previews, whether bids are clamped to campaign strategy limits, or what permissions/client-login context are required for a live change.

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

Conciseness4/5

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

A single short sentence that is front-loaded with the action and scope. It wastes no words, though its brevity is partly under-specification rather than efficiency.

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

Completeness2/5

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

For a mutation tool with zero annotations, no output schema, and four of six parameters undocumented, the description is too thin. An agent cannot tell from this text whether it must pass apply=true to effect the change or how errors/failed keyword_ids are surfaced.

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

Parameters2/5

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

Schema coverage is 33%: only account_id and direct_client_login are documented in the schema. The description clarifies the currency of bid_rub, but keyword_id, apply, and dry_run — including the crucial preview/commit semantics — are explained in neither the schema nor the description.

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

Purpose4/5

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

States a specific verb (set) and resource (bid for a keyword) with the unit (rubles), so the operation is unambiguous. The word 'single' implicitly distinguishes it from direct.hf.set_keyword_bids_bulk, though that sibling is never named. The 'Human-friendly:' prefix adds no informational value.

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 versus direct.hf.set_keyword_bids_bulk, direct.hf.set_autotargeting_bid, or direct.hf.bid_sweep_run. The apply/dry_run flags make the risk profile of a call non-obvious, yet the description says nothing about when to preview versus commit.

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

direct.hf.set_keyword_bids_bulkC

Human-friendly: set a uniform bid (rubles) for all keywords in a campaign/adgroup.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
bid_rubNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
adgroup_idNo
campaign_idNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It omits that this overwrites existing bids for every keyword in scope, says nothing about the apply/dry_run flags (a safety-relevant pair for a mutation tool), and doesn't mention required permissions or how failures on individual keywords are handled.

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

Conciseness4/5

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

A single tight sentence with the scope constraint front-loaded after the verb; no wasted words. It is under-specified rather than verbose, which is a different problem.

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 bulk mutation tool with no annotations, no output schema, and mostly undocumented parameters, the description is not sufficient. The absence of any dry_run/apply explanation is the most consequential gap for an agent deciding how to invoke it safely.

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

Parameters2/5

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

Schema coverage is only 29% across 7 parameters, so the description must compensate and largely doesn't. It clarifies that bid_rub is in rubles and that campaign/adgroup scope is selected, but gives no meaning to apply, dry_run, direct_client_login beyond the schema, or the mutual exclusivity of campaign_id and adgroup_id.

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

Purpose4/5

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

States a specific verb+resource (set keyword bids) with scope (all keywords in a campaign/adgroup) and currency (rubles). Implicitly distinguishes from the singular sibling direct.hf.set_keyword_bid via 'bulk', but never names or contrasts that sibling explicitly.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisite for campaign_id vs adgroup_id, and no routing toward the singular set_keyword_bid or bid_sweep tools. The only hint is 'for all keywords in a campaign/adgroup', which implies bulk scope but not when that scope is preferred.

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

direct.hf.unarchive_adsC

Human-friendly: unarchive ads.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
ad_idsNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: no indication that this is a state-changing mutation, no explanation of how apply vs dry_run interact (a safety-relevant behavior for an unarchive), no permission or auth requirements, and no note on partial failure when a list of ad_ids is passed. The only hint is "Human-friendly," implying a higher-level wrapper.

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?

It is a single short sentence and therefore not bloated, but "Human-friendly:" is filler that does not earn its place, and the extreme brevity is under-specification rather than true conciseness given the tool's complexity.

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

Completeness1/5

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

For a seven-parameter mutation tool with zero annotations, no output schema, and 29% schema coverage, a four-word description is wholly inadequate. An agent cannot determine required inputs, safe invocation order, or the effect of the operation from this definition.

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

Parameters2/5

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

Schema description coverage is only 29% (just account_id and direct_client_login), so the description must compensate for the other five parameters and does not. In particular apply, dry_run, and the choice between ad_ids vs campaign_id/campaign_name are entirely undocumented, leaving the agent to guess the targeting and preview semantics.

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

Purpose3/5

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

"Unarchive ads" is a specific verb+resource and is unambiguous on its own, but it essentially restates the tool name (direct.hf.unarchive_ads) and the "Human-friendly:" prefix adds only a vague hint that this is a simplified wrapper rather than a raw call. Nothing distinguishes it from siblings like direct.hf.archive_ads, direct.hf.unarchive_campaigns, or direct.hf.moderate_ads.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus the inverse (direct.hf.archive_ads), the campaign-level variant (direct.hf.unarchive_campaigns), or direct.raw_call. No prerequisites, no mention of whether campaign/ad ids or names are required. The agent must infer everything.

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

direct.hf.unarchive_campaignsC

Human-friendly: unarchive campaigns (by id or name).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
campaign_idsNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about what unarchiving changes, whether it is reversible, or what permissions are needed. Critically, the destructive/execution semantics of the 'apply' and 'dry_run' flags are left completely unaddressed in both the schema and the description.

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

Conciseness4/5

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

A single short sentence, correctly front-loaded with the verb and resource. It is efficient, though it wastes a few words on the uninformative 'Human-friendly' prefix instead of using the space for the apply/dry_run semantics.

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

Completeness2/5

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

This is a 6-parameter mutation tool with no annotations, no output schema, and only partial schema coverage, so the description should do considerably more. It omits any indication that apply commits changes and dry_run previews them, which is the single most important fact an agent needs before calling it.

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 33%, so the burden is partly on the description. The '(by id or name)' phrase usefully maps to campaign_ids vs campaign_name and is the reason this is not lower. However, the two most consequential parameters, apply and dry_run, remain undocumented anywhere, leaving a real gap.

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?

Clear verb+resource: 'unarchive campaigns'. It is readily distinguishable from sibling mutations like direct.hf.archive_campaigns, direct.hf.unarchive_ads and direct.hf.resume_campaigns, and the '(by id or name)' clause hints at accepted identification forms. It stops short of 5 because the 'Human-friendly' qualifier is noise rather than differentiation.

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 statement of when to unarchive versus archive, pause, or resume campaigns, and no prerequisites or conditions are given. The agent must infer entirely from the tool name which of the several lifecycle siblings to call.

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

direct.hf.update_adgroup_geoC

Human-friendly: set RegionIds for an ad group.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
adgroup_idNo
region_idsNo
campaign_idNo
adgroup_nameNo
campaign_nameNo
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It implies a mutation ('set') but does not say whether existing geo targeting is replaced, what apply/dry_run do, or what permissions are required - a significant gap for a write tool with zero structured behavioral coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler is structurally fine, but at this length against a 9-parameter mutation tool it reads as under-specification rather than genuine conciseness. The 'Human-friendly:' prefix consumes space without adding meaning.

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 9-param, no-annotation, no-output-schema mutation tool, the description omits dry_run/apply semantics, replacement behavior, id resolution, and required identifiers. An agent cannot safely invoke this without opening the schema and guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 22% across 9 params, and the description adds essentially nothing beyond echoing 'RegionIds' (the region_ids param). The meaning of apply, dry_run, campaign_id/name, adgroup_id/name, and their relationships is left entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('set RegionIds for an ad group'), and the 'for an ad group' scope implies the contrast with the sibling set_campaign_geo. However, it never names that sibling or explains what 'RegionIds' targeting means operationally, so differentiation is only implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of the obvious alternative (set_campaign_geo) or of how to discover adgroup ids (find_adgroups). The agent must infer all trigger conditions 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.

direct.hf.update_ads_text_bulkC

Human-friendly: update multiple TextAds fields (title/text/href).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
patchNo
ad_idsNo
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about the apply/dry_run safety semantics, whether the update is partial or replacing, reversibility, or permission requirements. For a mutation tool that exposes dry_run/apply flags, this is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the trigger information front-loaded and no filler. Its brevity works in its favor structurally, though it is arguably too terse to be sufficient.

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 6-parameter bulk mutation tool with no annotations, no output schema, nested objects, and only 33% schema coverage, the description omits the dry-run/apply workflow and input shape. An agent could call it but could not predict the effect or the safe path.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, and the description's mention of title/text/href maps loosely to the undocumented 'patch' object but adds no format, key names, or value constraints. The critical 'apply'/'dry_run' toggles and 'ad_ids' array are left entirely unexplained in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (update), resource (multiple TextAds), and the affected fields (title/text/href), making the bulk nature clear against the singular sibling direct.update_ads. However, it never names that sibling or any other alternative, so differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no when-not-to-use, no prerequisite (e.g. account/profile selection) and no mention of the alternative direct.update_ads or direct.hf.create_text_ads_bulk. 'Human-friendly' is a label, not usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.list_adextensionsC

List ad extensions.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPagination: {"limit": int, "offset": int}.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
field_namesNoAd extension field names (default: Id).
selection_criteriaNoDirect API SelectionCriteria object (optional).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure, and it delivers essentially none. It does not state that the operation is read-only, what a returned extension looks like, how pagination behaves, or that account_id/direct_client_login are needed for auth resolution.

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?

It is a single front-loaded sentence with zero padding, which is structurally fine. However, it is under-specified rather than genuinely concise – there is no second sentence of value to trim, so brevity here reflects missing information, not discipline.

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?

With six parameters, nested objects, no output schema, and no annotations, the definition should explain the read-only nature, pagination semantics, and account/profile resolution. A one-line description leaves an agent without enough context to call this correctly in a large multi-tool environment.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter, including pagination, field_names, selection_criteria, and the raw params override. The description adds nothing beyond the schema, which is the expected baseline 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.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb+resource ("List ad extensions"), so an agent knows the basic action. But it does nothing to distinguish this tool from the many other list siblings such as direct.list_sitelinks, direct.list_vcards, or direct.list_bids, so the purpose is only minimally viable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, no prerequisites, and no routing to alternatives. An agent must infer usage entirely from the resource name, which is exactly the gap that causes wrong-tool selection among the crowded direct.list_* family.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.list_adgroupsC

List ad groups from Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPagination: {"limit": int, "offset": int}.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
field_namesNoAd group field names (default: Id, Name).
selection_criteriaNoDirect API SelectionCriteria object (optional).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. 'List' implies a read-only, non-destructive operation, but there is no mention of pagination behavior, default result size, permissions/auth requirements, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler or redundancy. It is efficient, though the brevity borders on under-specification rather than genuine conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with six parameters, nested objects, and no annotations or output schema, the definition is far too thin. It never explains filtering via selection_criteria, field_names defaults, or the pagination model, leaving critical calling context absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (page, params, account_id, field_names, selection_criteria, direct_client_login) is already documented in the schema. The description adds no additional meaning, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('ad groups') plus the API surface ('Yandex Direct'), so the core action is unambiguous. However, it does nothing to distinguish this from near-identical siblings such as direct.list_campaigns, direct.list_ads, or direct.hf.find_adgroups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over direct.hf.find_adgroups or the other direct.list_* tools, and no mention of prerequisites like account_id or direct_client_login. The agent is left to infer usage 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.

direct.list_adsC

List ads from Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPagination: {"limit": int, "offset": int}.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
field_namesNoAd field names (default: Id, AdGroupId).
selection_criteriaNoDirect API SelectionCriteria object (optional).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'List' implies a read operation, but the description does not disclose authentication requirements, pagination defaults, rate limits, or how the raw params override behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no wasted words. It is appropriately concise, though its brevity contributes to the broader lack of behavioral context.

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 absence of annotations and no output schema, the description should do more to explain safety, pagination behavior, and return shape. It leaves the agent to infer everything beyond the tool's name and the parameter 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 all six parameters are already documented in the schema. The description adds no parameter-level meaning beyond what the schema provides, which is the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (ads from Yandex Direct), so the basic operation is clear. However, it does not distinguish this from sibling tools like direct.hf.find_ads or direct.list_campaigns, leaving ambiguity about when this raw list tool is preferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as direct.hf.find_ads or direct.list_adgroups. It provides no context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.list_bidmodifiersC

List bid modifiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPagination: {"limit": int, "offset": int}.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
field_namesNoBid modifier field names (default: CampaignId).
selection_criteriaNoDirect API SelectionCriteria object (optional).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden, yet it discloses nothing beyond the bare purpose. 'List' weakly implies a read-only, non-destructive operation, but there is no information about account/Client-Login requirements, pagination behavior, rate limits, or return shape.

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 single sentence is front-loaded and contains no waste, but its brevity reflects under-specification rather than effective concision. A four-word description for a six-parameter tool with nested objects leaves essential context unstated.

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?

The tool takes six parameters including nested objects (page, selection_criteria, params), has no annotations, no output schema, and no required fields, so the description is the only source of behavioral context — and it provides none. An agent cannot tell from this text how to scope the listing or what Direct account context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (account_id, field_names, direct_client_login, selection_criteria, page, params) is already documented in the schema, setting the baseline at 3. The description adds no syntax, defaults, or meaning beyond what the schema supplies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('List bid modifiers'), so the operation is unambiguous. However, it offers no differentiation from closely related siblings such as direct.list_bids, direct.list_bidmodifiers-style tools, or direct.hf.clear_bid_modifiers, leaving the agent to infer scope from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives, despite many sibling list/set tools existing in the direct.* family. The agent must guess when this tool is preferable to direct.list_bids or the direct.hf.set_bid_modifier_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.list_bidsC

List bids.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPagination: {"limit": int, "offset": int}.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
field_namesNoBid field names (default: CampaignId, KeywordId).
selection_criteriaNoDirect API SelectionCriteria object (optional).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. "List" implies a read operation, but the description does not disclose pagination, default fields, authentication needs, or return behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

At two words, it is concise but severely under-specified for a tool with six optional parameters and no annotations. The brevity comes at the cost of appropriate sizing rather than being a strength.

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?

With no output schema and no annotations, the description should explain at least return behavior or usage context. The schema covers parameters, but the description leaves the tool's output, defaults, and sibling distinction completely unspecified.

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 six parameters, including nested pagination and advanced override fields. The description adds no parameter meaning beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description "List bids." merely restates the tool name and resource. It does not specify what kind of bids, the scope, or how it differs from siblings such as direct.hf.get_bids_summary or direct.list_bidmodifiers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when to use this tool versus alternatives like direct.hf.get_bids_summary or direct.list_bidmodifiers. No prerequisites, contexts, or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.list_campaignsC

List campaigns from Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPagination: {"limit": int, "offset": int}.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
field_namesNoCampaign field names (default: Id, Name).
selection_criteriaNoDirect API SelectionCriteria object (optional).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).
text_campaign_field_namesNoTextCampaignFieldNames (optional).
smart_campaign_field_namesNoSmartCampaignFieldNames (optional).
cpm_banner_campaign_field_namesNoCpmBannerCampaignFieldNames (optional).
mobile_app_campaign_field_namesNoMobileAppCampaignFieldNames (optional).
dynamic_text_campaign_field_namesNoDynamicTextCampaignFieldNames (optional).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it says nothing beyond the bare action. It omits whether the call is read-only, how pagination defaults behave, whether results are truncated, and what auth/Client-Login context is required for agency multi-project calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with zero padding and the action front-loaded. It is efficiently written, though the efficiency comes from omission rather than precision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with nested objects, no annotations, and no output schema, this is far too thin. Nothing explains the default field set, pagination semantics, or the relationship between account_id and direct_client_login, all of which an agent must get right before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 11 parameters, so the schema already documents pagination, field_names defaults, SelectionCriteria, and the campaign-type field-name overrides. The description adds nothing on top, which is the baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('List campaigns') against a named system, which is enough to identify the operation. It does not, however, distinguish itself from adjacent siblings such as direct.hf.find_campaigns or direct.list_adgroups, leaving the boundary between 'list' and 'find' to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus direct.hf.find_campaigns, direct.raw_call, or the other list_* tools, and no mention of prerequisites such as needing a resolved account_id or Direct Client-Login. The agent gets no routing guidance at all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.list_clientsC

List Direct clients (agency use).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPagination: {"limit": int, "offset": int}.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
field_namesNoClient field names (default: ClientId, Login).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it only says "List." It does not confirm read-only behavior, describe pagination behavior or defaults, or explain the agency/Client-Login auth context that governs this call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with the key noun front-loaded and no filler. It is efficient, though it is arguably under-specified rather than deliberately minimal.

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?

With no annotations and no output schema, the description should explain the return shape and the agency/account scoping behavior, but it does not. For a tool with nested parameters and a Client-Login override, this leaves important context to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters including the pagination object, account_id, field_names, and the Direct Client-Login override. The description adds nothing beyond the field names, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List Direct clients"), and the "(agency use)" qualifier hints at the scope. However, it does not distinguish itself from nearby-sounding siblings such as accounts.list or direct.list_campaigns, so an agent must infer the relationship from the parenthetical alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is "(agency use)," which faintly implies the tool belongs to an agency/multi-project workflow but names no alternatives and states no when-not condition. An agent cannot tell from this whether to prefer accounts.list or direct.raw_call for client lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.list_dictionariesC

Get Direct dictionaries.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
dictionary_namesYesDictionary names to fetch (required by API).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full behavioral burden. "Get" implies a read-only retrieval, but the description does not disclose authentication needs, rate limits, pagination, or what happens for invalid dictionary names. It is minimally better than no behavioral signal at all.

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 front-loaded sentence with no wasted words. However, it is so terse that it fails to carry necessary context for a tool with four parameters and a nested override object, making it under-specified rather than ideally concise.

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?

There is no output schema and no annotations, yet the description only says "Get Direct dictionaries." It does not explain what dictionaries are, what the call returns, or how the account/login overrides affect results. The schema covers parameter details, but contextual completeness for an agent selecting and invoking the tool remains poor.

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 input schema already documents all four parameters including dictionary_names, account_id, direct_client_login, and params. The description adds no additional parameter meaning 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.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb and resource ("Get Direct dictionaries"), so the operation is identifiable. However, it gives no scope or detail about what a "Direct dictionary" is and does not distinguish this tool from the many other direct.list_* siblings. The purpose is minimally clear but vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The only implied usage comes from the tool name and required parameter, so the agent receives no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.list_keywordsC

List keywords from Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPagination: {"limit": int, "offset": int}.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
field_namesNoKeyword field names (default: Id, Keyword).
selection_criteriaNoDirect API SelectionCriteria object (optional).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing beyond the name. It doesn't disclose read-only semantics explicitly, pagination behavior, result ordering, or whether selection_criteria is required to avoid a full dump. This is a significant gap for a 6-param listing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single terse sentence with the verb and resource front-loaded, and no wasted wording. It is efficient but arguably too thin to be maximally useful.

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 tool with 6 parameters including pagination, advanced overrides, agency multi-project login, and a raw SelectionCriteria object, plus no annotations and no output schema, the description is inadequate. An agent needs to know default field behavior, pagination semantics, and expected return shape far better than this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (page, params, account_id, field_names, selection_criteria, direct_client_login) is already documented in the schema. The description adds no additional parameter meaning, which is the expected baseline of 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb (List) and resource (keywords) scoped to Yandex Direct, so an agent can identify it as a read operation over keyword entities. However, it offers no differentiation from closely related siblings such as direct.hf.find_keywords or direct.create_keywords/update_keywords, so the agent must rely on name alone to disambiguate.

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 versus direct.hf.find_keywords, direct.report, or the create/update keyword tools. There are no prerequisites or exclusions stated, so the agent has no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.list_vcardsC

List vCards.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNovCard Ids (required unless using params override).
pageNoPagination: {"limit": int, "offset": int}.
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
field_namesNoVCard field names (default: Id).
selection_criteriaNoDirect API SelectionCriteria object (optional).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, yet it only implies a read operation via 'List'. It does not disclose authentication requirements, whether account_id is necessary, pagination behavior, filtering defaults, or any other operational trait. This is well below what a 7-parameter tool needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

At two words, the description is under-specified rather than concise. It is front-loaded but does not contain enough information to be useful for an agent facing a complex, nested schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given seven parameters including nested objects, an 'advanced' raw params override, and no output schema, the description is completely inadequate. It omits required-parameter context, return format, filtering, and account resolution details that an agent needs to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all seven parameters in detail. The description adds no parameter information at all, making the baseline of 3 appropriate when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List' + 'vCards'. It is clear what the tool does, but it offers no differentiation from sibling list tools such as direct.list_sitelinks or direct.list_adextensions. It is not vague, but it leaves sibling routing entirely to the agent's inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The agent must infer usage entirely from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.raw_callB

Raw Direct API call (escape hatch).

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNoDirect API method, e.g. get, add, update.
paramsNoDirect API params payload.
resourceYesDirect resource name, e.g. campaigns, ads.
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it discloses almost nothing. The 'method' parameter means this tool can add/update (mutate), yet there is no warning about destructive effects, required permissions, rate limits, or error behavior on raw payloads. 'Escape hatch' hints at caution but is not a substitute for disclosure.

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?

Single front-loaded phrase with no waste, but here brevity reflects under-specification rather than tight editing. A tool that proxies arbitrary API methods needs more than seven 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?

For a high-complexity escape hatch with a nested params object, 1 required param, no output schema, and no annotations, the description omits how method/params map to the API, what happens on failure, and any safety guidance. It is markedly incomplete for the risk surface it exposes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters, including the account_id -> Client-Login resolution and the direct_client_login override. The description adds nothing beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ('Raw Direct API call') and the parenthetical 'escape hatch' signals it is the generic fallback. An agent can distinguish it from the typed siblings (direct.list_campaigns, direct.create_ads, etc.) without opening the schema, though it never says which API surface or version it fronts.

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?

'Escape hatch' implies use only when no dedicated tool covers the operation, which is useful, but it is never made explicit and no alternatives are named. There is no statement of when NOT to use it or why a typed sibling should be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.reportD

Run a Direct report (raw output).

ParametersJSON Schema
NameRequiredDescriptionDefault
goalsNo
formatNo
paramsNoRaw Direct report params override (advanced).
date_toNo
order_byNoOrderBy array for reports.
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
field_namesYesReport fields (required by Direct API).
include_vatNo
report_nameNo
report_typeYes
date_range_typeNo
include_discountNo
attribution_modelsNo
selection_criteriaNoDirect report SelectionCriteria (optional).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral burden, but it only notes 'raw output'. It does not disclose authentication requirements (Direct Client-Login implied by account_id/direct_client_login params), rate limits, whether a report is generated server-side, how long it takes, or what happens on invalid params. This is a major gap for a 16-param report tool.

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, so there is no structural issue, but with such complex parameters and no output schema, that brevity is under-specification rather than conciseness. Every sentence earns its place only in the sense that there is just one.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 16 parameters, nested objects (params, selection_criteria, order_by), no annotations, and no output schema, the description is completely inadequate. It does not tell an agent how to construct a call, what a valid report_type looks like, or what the raw output contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 38% (6 of 16 params described). The description contributes zero parameter detail. Critical required params field_names and report_type, plus format, date_range_type, report_name, include_vat, include_discount, goals, attribution_models, date_from/date_to, and order_by, are undocumented in both schema and description. The description does not compensate for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Run a Direct report (raw output)' restates the tool name with a minimal qualifier. It states a verb (Run) and a resource (Direct report) but does not differentiate from siblings like direct.hf.report_performance or metrica.report, and the parenthetical is ambiguous. It is close to a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 the numerous report-oriented siblings (direct.hf.report_performance, direct.hf.report_keywords, metrica.report, direct.raw_call, etc.) or on prerequisites like authentication. An agent has no basis to select this over direct.raw_call or direct.hf.report_adgroups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.update_adgroupsC

Update ad groups in Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesAd group objects to update (must include Id).
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: not whether the update is partial or full-replace, what happens to unspecified fields, whether it is destructive, what batch limits apply, or what auth/account context is needed. Only the word 'Update' signals a mutation at all.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence is front-loaded and waste-free, but at this level it reads as under-specification rather than conciseness given a 4-parameter mutation tool with nested objects and no annotations. It is terse but not informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and nested object parameters, the description is insufficient: it omits update semantics, required fields beyond Id, account/agency scoping behavior, and any failure or partial-success behavior. The gaps are structural, not cosmetic.

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% (each of the 4 parameters has its own description, including the nested 'items' array requiring Id and the account_id/direct_client_login fields), so the schema does the heavy lifting. The description adds no parameter meaning beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb (Update) and resource (ad groups) plus the platform (Yandex Direct), but that content is almost entirely a restatement of the tool name 'direct.update_adgroups'. It gives no indication of what fields can be updated or how it differs from siblings such as direct.hf.update_adgroup_geo, direct.hf.set_adgroup_negative_keywords, or direct.create_adgroups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no named alternatives, despite a crowded sibling set that includes granular ad-group mutation tools. An agent must infer from the name alone that this is the generic bulk-update path versus the specialized hf.* variants.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.update_adsC

Update ads in Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesAd objects to update (must include Id).
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: not whether updates are partial or full-object replacement, not whether they are reversible, not what permissions or account context are needed, and not what the response contains. For a mutation tool operating on a nested items array, this is a severe gap.

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 single sentence is front-loaded and wastes no words, but its brevity stems from under-specification rather than efficiency. It is appropriately sized only in the sense that there is nothing superfluous.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with a nested object array, no annotations, and no output schema, the description is far too thin. An agent lacks guidance on idempotency, partial-update semantics, multi-account routing, and expected results, all of which it must infer from the schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies: the schema already explains items (must include Id), params override, account_id, and direct_client_login. The description adds no additional parameter meaning beyond what the schema documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Update ads in Yandex Direct" names a specific verb and resource, so the basic action is clear. However, it does nothing to distinguish this low-level Direct API tool from sibling high-level helpers like direct.hf.update_ads_text_bulk or direct.hf.moderate_ads, leaving the agent to guess which update path applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, what prerequisites exist (account_id / client login requirements), or which sibling to prefer for ad edits. Usage is only implied by the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.update_campaignsC

Update campaigns in Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesCampaign objects to update (must include Id).
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only says 'Update campaigns' and omits permissions, side effects, partial-update semantics, required fields beyond the schema, and whether updates are reversible.

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 single sentence is front-loaded and free of waste, but for a mutation tool with nested objects and multiple auth parameters, it is arguably under-specified. It is borderline appropriately sized.

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?

The description is inadequate for a 4-parameter mutation tool with no annotations and no output schema. It fails to explain what campaign fields can be updated, whether partial updates are allowed, or what the response looks like, even though the schema covers parameter details.

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 documented (items requires Id, params override, account_id, direct_client_login). The description adds no parameter meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Update') and resource ('campaigns in Yandex Direct'), making the core operation clear. However, it does not differentiate from sibling high-level update tools such as direct.hf.set_campaign_budget or direct.update_adgroups; it simply names the resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is provided; the description merely restates the tool's name. It offers no alternatives or conditions for selecting this tool over direct.create_campaigns or direct.hf.* campaign setters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

direct.update_keywordsC

Update keywords in Yandex Direct.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesKeyword objects to update (must include Id).
paramsNoRaw Direct params override (advanced).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It states that the tool updates keywords but says nothing about permissions, partial update semantics, idempotency, effects on bids or status, or what happens to omitted fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. However, it is so terse for a nested-object mutation tool that the structure borders on under-specification rather than optimal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the mutation operation, nested items array, advanced override parameter, absence of annotations, and no output schema, the description is not complete enough. It leaves usage context, behavioral traits, and update semantics for the agent to infer from the schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the input schema. The description adds no additional parameter meaning beyond what is provided there, which matches the baseline of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Update keywords in Yandex Direct.' It distinguishes the operation from create/list siblings by naming update, but it does not specify scope, bulk vs. single behavior, or how it differs from tools like direct.hf.set_keyword_bid.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as direct.create_keywords, direct.list_keywords, or direct.hf.set_keyword_bid. No prerequisites or exclusions are mentioned, leaving the agent to infer usage entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

join.hf.direct_vs_metrica_by_utmB
Read-onlyIdempotent

Human-friendly: join Direct daily performance with Metrica daily visits using a stable UTMCampaign value.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNoYYYY-MM-DD.
date_fromNoYYYY-MM-DD.
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNoMetrica counter id.
campaign_idNoDirect campaign id.
utm_campaignNoExplicit ym:s:UTMCampaign value to match in Metrica.
campaign_nameNoOptional campaign name (used to infer utm_campaign).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds nothing about how the two data sources are aligned, what happens when no UTM match exists, or default resolution — though the output schema absorbs some of that burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that states the operation and the join key. The 'Human-friendly:' label is wasted space but the rest earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and schema coverage is complete. However, for a cross-platform join with 8 optional parameters and zero required ones, the description says nothing about how defaults resolve or which parameter combinations are needed to produce a meaningful join.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 8 parameters, so the schema fully documents date ranges, account_id resolution, counter/campaign ids, and the utm_campaign override. The description adds no parameter-level meaning beyond invoking the UTMCampaign concept already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (join) and both resources (Direct daily performance, Metrica daily visits) plus the join key (UTMCampaign). It implicitly distinguishes itself from the sibling join.hf.direct_vs_metrica_by_yclid, though it never names the alternative. The 'Human-friendly:' prefix is filler rather than clarification.

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 phrase 'using a stable UTMCampaign value' hints at the condition for choosing this tool over the yclid variant, but neither the yclid sibling nor any explicit when/when-not guidance is stated. An agent must infer that 'stable' means preferred over yclid matching.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

join.hf.direct_vs_metrica_by_yclidC

Human-friendly: join Metrica visits (Logs API yclid) with Direct click identifiers (best effort).

ParametersJSON Schema
NameRequiredDescriptionDefault
cleanupNoCall logs clean after download (default: true).
date_toNoYYYY-MM-DD.
max_rowsNoMax log rows to download/parse (default: 20000).
date_fromNoYYYY-MM-DD.
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNoMetrica counter id.
request_idNoOptional existing Logs API request id to resume.
logs_fieldsNoCSV fields list (default: ym:s:dateTime,ym:s:startURL,ym:s:lastDirectClickBanner).
logs_sourceNoLogs API source (default: visits).
yclid_fieldNoField name for yclid in logs (default: ym:s:yclid).
banner_fieldNoField name for Direct banner/ad id in logs (default: ym:s:lastDirectClickBanner).
logs_delimiterNoOverride delimiter for downloaded logs (default: autodetect).
direct_max_rowsNoMax Direct report rows to parse (default: 200000).
start_url_fieldNoField name for start URL in logs (default: ym:s:startURL).
max_wait_secondsNoMax time to wait for Logs export readiness (default: 60).
direct_field_namesNoDirect report field names (default: [Date, CampaignId, ClickId]).
direct_report_typeNoDirect report type (default: CUSTOM_REPORT).
direct_client_loginNoOverride Direct Client-Login for this call (agency multi-project support).
direct_click_id_fieldNoColumn name to use as click id in Direct report (default: ClickId).
poll_interval_secondsNoPolling interval for Logs export status (default: 2).
direct_campaign_id_fieldNoColumn name to use as campaign id in Direct report (default: CampaignId).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral burden. It discloses only one trait, 'best effort' (results may be partial/unmatched), while saying nothing about auth prerequisites, side effects, download/cleanup behavior, or result shape for a 21-parameter operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the key verb and scope first. It is efficient, though 'Human-friendly:' reads as filler rather than information.

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 no-annotation, no-output-schema, 21-parameter join across two systems, the description is far too thin. It does not explain what the joined output contains, matching semantics, or how failures/unmatched rows are represented, leaving the agent to infer almost everything.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 21 parameters are documented in the schema itself and the baseline is 3. The description adds no parameter-specific meaning such as the relationship between account_id, counter_id, or the yclid/banner field overrides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (join) and both resources it bridges (Metrica visits via Logs API yclid and Direct click identifiers). An agent can understand the operation, but the description never distinguishes it from the sibling join.hf.direct_vs_metrica_by_utm, so the yclid-vs-utm choice is left to the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no mention of the by_utm sibling, which is the obvious alternative for the same join. 'Human-friendly' and 'best effort' hint at intent but do not tell the agent which join key to prefer or when each applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.counter_infoC

Get details of a Metrica counter.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNoRaw Metrica management params override (optional).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idYesMetrica counter ID (required).

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read-only lookup, but nothing is said about authentication requirements, whether account_id changes resolution behavior, or what the response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no waste, but it is terse to the point of under-specification for a three-parameter tool with a nested object, rather than genuinely efficient communication.

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?

With no output schema and no annotations, the description should explain what 'details' includes and the role of account_id versus counter_id. It leaves the agent guessing about the return payload for an information-retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so counter_id, account_id, and the raw params override are all documented in the schema itself. The description adds no parameter meaning beyond that, which matches the baseline for a fully documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb and resource ('Get details of a Metrica counter'), which is enough to know it returns counter metadata, but 'details' is vague and the description does nothing to separate it from siblings like metrica.list_counters or metrica.hf.counter_summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus metrica.list_counters (discovery) or metrica.hf.counter_summary (analytics summary). The agent must infer the distinction entirely from the names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.goals.createC

Metrica: create goal (pro-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYes
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it only adds the 'pro-only' subscription constraint. It says nothing about required permissions, side effects, whether the goal is immediately active, or any rate limits on 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded phrase with zero filler, but it is arguably too terse for a tool with an undocumented required nested object, edging toward under-specification rather than true conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A mutation tool with no annotations, no output schema, and a required nested payload that is undocumented in both the schema and description. An agent cannot determine what payload fields to supply or what the call returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 33%: account_id is documented but the required nested 'payload' object and counter_id have no descriptions anywhere. The description adds no parameter meaning at all, leaving the most important required argument completely opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (create) and resource (goal) within the Metrica namespace, which is enough to distinguish it from metrica.goals.list/get/update/delete. However, it does not differentiate from the overlapping metrica.hf.create_goal sibling, and gives no sense of what a 'goal' contains.

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 '(pro-only)' tag is a useful prerequisite note, but there is no when-to-use guidance, no mention of alternatives, and no indication of when this should be preferred over metrica.hf.create_goal or raw_call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.goals.deleteC

Metrica: delete goal (pro-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
goal_idYes
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden for a destructive mutation. It discloses only the pro-only constraint and says nothing about irreversibility, whether dependent goals/stats are affected, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short, front-loaded sentence with no waste — but it is terse to the point of under-specification rather than efficiently complete.

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 destructive 3-parameter tool with no annotations, no output schema, and low schema coverage, a one-clause description is far too thin to let an agent invoke it safely and correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (account_id documented; counter_id and goal_id bare). The description adds no parameter meaning whatsoever, so it fails to compensate for the undocumented inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('delete goal') plus a constraint ('pro-only'), which is clearer than a bare name. It does not, however, distinguish itself from sibling deletion tools such as metrica.hf.delete_goal or metrica.goals.update/list.

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?

'pro-only' is the only usage hint, indicating a tariff prerequisite. There is no statement of when to use this versus metrica.hf.delete_goal or how it differs from the rest of the metrica.goals.* family.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.goals.getC

Metrica: get goal by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNo
goal_idYes
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden, yet it discloses nothing beyond the word "get", which weakly implies a read. There is no statement about required permissions, whether account_id must resolve to a client-login, error behavior for a missing goal_id, or the shape of the response.

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?

It is a single short sentence with no padding and the operation is front-loaded, which is good. But the brevity reflects under-specification rather than economy, so it does not fully earn a high score on structure.

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 tool with four parameters (including a nested object), no annotations, no output schema, and only thin schema documentation, the description is far too thin to prepare an agent for a correct call. Everything an agent needs about parameter meaning and behavior is missing from all available fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%: account_id is documented in the schema, but counter_id, goal_id, and the undescribed nested "params" object are not. The description's "by id" loosely gestures at goal_id but adds no format, syntax, or semantics for any parameter, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The phrase "get goal by id" names a specific verb (get) and resource (goal) and states the identifying key, so the basic operation is clear. However, it does nothing to distinguish this from the sibling metrica.goals.list or metrica.goals.get variants in the broader Metrica/Direct family beyond the resource name already embedded in the tool name itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no when-to-use guidance, no prerequisites, and no pointer to alternatives such as metrica.goals.list for enumeration or metrica.goals.update/delete for mutations. The agent must infer the appropriate context entirely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.goals.listC

Metrica: list goals for a counter.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'List' implies a read-only operation, but it says nothing about pagination, return shape, ordering, or whether an empty counter errors out — all relevant for a listing tool with no annotation cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with the resource scoping front-loaded and no filler. It is efficient, though arguably too terse to be fully useful.

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?

With no output schema, no annotations, an undocumented 'params' object, and no return-value or pagination context, the description leaves the agent under-equipped for a 3-parameter listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%: account_id is documented in the schema, counter_id and the opaque 'params' object are not. The phrase 'for a counter' nominally maps to counter_id but adds no format, ID-source, or meaning beyond the parameter name, so the description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('list goals') scoped to 'a counter', so an agent can distinguish it from metrica.goals.get/create/update/delete at a glance. It stops short of explicitly naming or contrasting those 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?

No when-to-use guidance, no prerequisites, and no mention of alternatives such as metrica.goals.get (single goal) or metrica.list_counters. The agent must infer usage purely from the verb 'list'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.goals.updateC

Metrica: update goal (pro-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
goal_idYes
payloadYes
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the pro-only constraint but not whether payload replaces or patches the goal, what permissions are required, whether the update is reversible, or what side effects occur. For an update mutation this is a significant gap.

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 single sentence is front-loaded and free of filler, but it is severely under-specified rather than genuinely concise. The 'Metrica:' prefix adds little value beyond the tool namespace already present in the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations accompany a nested payload object and 25% schema coverage. The one-line description leaves the agent without mutation semantics, required parameter details, or any guidance for executing this update correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, with just account_id documented. The description mentions no parameters at all, leaving required counter_id, goal_id, and the nested payload object completely undocumented in both structured and prose fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('update') and resource ('goal'), and adds a pro-only constraint. It distinguishes the action from sibling tools like create/delete, though it does not differentiate from metrica.hf.update_goal or clarify what an update can change.

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 only usage guidance is '(pro-only)', which is a licensing constraint rather than a routing rule. It does not name alternatives such as metrica.hf.update_goal or metrica.goals.create/delete, nor does it describe when this tool should be selected.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.hf.counter_summaryD
Read-onlyIdempotent

Human-friendly: counter summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds no behavioral context beyond that — no mention of required permissions, the scope of the summary, or how counter_id defaults are applied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single short sentence with no wasted words, but the brevity reflects under-specification rather than conciseness. The one clause carries almost no information.

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?

An output schema exists so return values need not be explained, and annotations cover the safety profile. However, for a tool with 2 parameters (one undocumented), no required fields, and an unresolved overlap with metrica.counter_info, the description is far too thin to guide correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 50% schema coverage: account_id is documented, but counter_id has no description in the schema. The description compensates for none of this gap and says nothing about how the two parameters interact or what defaults apply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Human-friendly: counter summary" essentially restates the tool name (counter_summary) without specifying what a counter summary contains or what makes it human-friendly. It does not distinguish this tool from the sibling metrica.counter_info, which likely does something similar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as metrica.counter_info, metrica.report, or metrica.hf.list_accessible_counters. No prerequisites or conditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.hf.create_goalB

Human-friendly: create a Metrica goal (pro-only, apply=true).

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesRaw goal object as per Metrica Management API.
applyYes
dry_runNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does add genuinely useful behavioral context beyond the schema: the operation is plan-restricted ('pro-only') and requires 'apply=true'. However, it never says what creation does to existing state, whether it is reversible, or how dry_run behaves, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no waste, and the operation is front-loaded before the parenthetical constraints. Efficient, though it errs toward under-specification rather than verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A mutation tool with no annotations, no output schema, a nested goal object, and only 40% parameter coverage – the description is far too thin. It omits permissions detail, the meaning of the nested goal payload, and dry_run/apply interaction that an agent needs to invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 40% and the description compensates minimally, mentioning only 'apply=true'. The required counter_id, the nested 'goal' object ('Raw goal object as per Metrica Management API' is opaque), and dry_run are never explained, so an agent gets little help resolving these inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('create a Metrica goal') and labels itself 'human-friendly', which implicitly distinguishes it from the raw metrica.goals.create sibling. It does not explicitly name that alternative or explain the wrapper's advantage, so sibling differentiation is only implied.

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?

Parenthetical '(pro-only, apply=true)' gives partial usage context – a plan requirement and a required flag. It does not say when to prefer this over metrica.goals.create or metrica.hf.update_goal, and offers no exclusions, so guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.hf.delete_goalB

Human-friendly: delete a Metrica goal (pro-only, apply=true).

ParametersJSON Schema
NameRequiredDescriptionDefault
applyYes
dry_runNo
goal_idYes
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses the pro-only requirement and that apply=true is needed to execute, hinting at a dry-run default, but never states that the delete is permanent/irreversible or what happens to a goal's data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the action front-loaded and the key constraints (pro-only, apply=true) in parenthesis. No wasted words, though it borders on under-specification.

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 destructive delete with no annotations, no output schema, and 80% of parameters undocumented, the description is thin. It omits irreversibility, dry-run semantics, and the meaning of the required identifiers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 20% (only account_id is documented). The description clarifies the meaning of apply=true, but counter_id, goal_id, and dry_run remain unexplained in both schema and description, leaving most parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete) and resource (Metrica goal), and the 'human-friendly' qualifier distinguishes it from a raw API wrapper. It does not explicitly contrast with sibling metrica.goals.delete, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions the pro-only constraint and that apply=true is needed, which are useful preconditions, but says nothing about when to prefer this over metrica.goals.delete or the related create_goal/update_goal siblings. Usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.hf.list_accessible_countersC
Read-onlyIdempotent

Human-friendly: list accessible counters.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered, but the description adds nothing beyond a vague 'Human-friendly' label. It does not explain what makes a counter 'accessible', whether account_id scoping changes the result set, or anything about authorization.

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?

It is short, but the 'Human-friendly:' prefix is filler that consumes space without informing tool selection. The sentence is front-loaded but under-specified rather than genuinely concise.

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?

An output schema exists so return values need not be described, and annotations cover safety. However, for a counter-listing tool surrounded by metrica.list_counters and other hf-list siblings, the absence of any scoping or distinction detail leaves the agent unable to decide when this is the right call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the account_id description already explains it resolves to Direct Client-Login and Metrica counter defaults. The tool description adds no additional meaning about the parameter, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb and resource ('list accessible counters'), which is more than a bare tautology, but 'accessible' is undefined and there is no differentiation from the sibling metrica.list_counters or metrica.hf.counter_summary. An agent cannot tell from this text why it should prefer this tool over those.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites, and no named alternative. The existence of metrica.list_counters and metrica.hf.counter_summary makes routing ambiguity a real risk, and the description does nothing to resolve it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.hf.logs_export_presetD

Human-friendly: logs export preset (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNo

TDQS

D1.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it discloses nothing: no indication of whether this reads or mutates state, what a 'preset' resolves to, what defaults it applies, or what permissions are needed. For a tool with zero annotation coverage this is a complete gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but it is under-specified rather than concise — a single fragment that conveys no actionable content. Brevity here reflects missing information, not disciplined editing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four parameters (three undocumented), no annotations, and no output schema, the description should carry a large share of the explanatory load; instead it offers nothing beyond the name. An agent has no basis to decide whether or how to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (only account_id documented), so the description must compensate for date_to, date_from, and counter_id — it supplies no parameter meaning whatsoever. The one useful hint (account_id resolving to client-login/counter defaults) lives in the schema, not the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'logs export preset' essentially restates the tool name (metrica.hf.logs_export_preset) with the adjective 'Human-friendly' and '(optional)' added. It does not state a verb or what the tool actually does to or with a preset, nor does it distinguish it from sibling metrica.logs_export.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus metrica.logs_export or any other sibling. The word '(optional)' hints that the tool may be skippable but gives no condition, alternative, or prerequisite for invoking it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.hf.report_devicesD
Read-onlyIdempotent

Human-friendly: device report.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds nothing beyond that: no mention of date-range semantics, pagination, default aggregation, or what 'device' dimension means. With annotations carrying the safety profile, the description contributes essentially zero extra 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single fragment is brief but this is under-specification, not conciseness. Front-loading is moot when there is effectively no content to front-load, and the 'Human-friendly:' prefix carries no information.

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?

An output schema exists, so return values need not be explained. However, for a tool with five parameters, a date-range reporting scope, and a device dimension, the description omits nearly everything an agent needs to call it correctly, leaving the definition incomplete relative to its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (only account_id is documented), so the description bears the burden of compensating and does not. It says nothing about limit, date_from/date_to formats, or counter_id, leaving four of five parameters undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'device report' essentially restates the tool name metrica.hf.report_devices rather than stating a specific verb and resource. It gives no hint about what a 'device report' contains (device breakdown of traffic/sessions) or what it distinguishes from siblings like report_geo or report_landing_pages. This is a near-tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative guidance anywhere in the description. With many sibling report tools (metrica.hf.report_geo, report_landing_pages, report_utm_campaigns), an agent is given no cue about when this one is appropriate. This is misleading by omission for a family of near-identical report tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.hf.report_geoC
Read-onlyIdempotent

Human-friendly: geo report (country/city).

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNo
limitNo
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds only that this is a human-friendly geo wrapper; it says nothing about default date ranges, limit behavior, required counter/account defaults, or row granularity that an agent would need to call it confidently.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short, front-loaded sentence with no filler. It is terse rather than bloated; the brevity is a limitation of content, not of structure.

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?

With six parameters, 0 required, 17% schema coverage, and no output-schema burden, the description should at minimum clarify which parameters are needed and how defaults resolve. An output schema exists, so return values are excused, but the input side is left largely unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% (account_id alone), so the description must compensate, yet it explains none of level, limit, date_from/date_to, or counter_id. The parenthetical '(country/city)' loosely hints at level values but does not define the parameter or its accepted options.

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?

Names a specific report type and its breakdown dimension: a geo report by country/city. It is distinguishable from siblings like report_devices or report_landing_pages at a glance, though it does not explicitly say how it differs from report_time_series or the generic metrica.report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus the generic metrica.report, metrica.raw_call, or the other hf report wrappers. The word 'Human-friendly' implies a convenience wrapper but gives no selection criteria or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.hf.report_landing_pagesC
Read-onlyIdempotent

Human-friendly: landing pages report.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. Beyond that, the description says nothing about date-range semantics, pagination, aggregation granularity, or what 'human-friendly' formatting actually means, leaving behavioral traits undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but this is under-specification rather than conciseness. Every word earns its place only because there is so little content to begin with.

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?

An output schema exists so return values need not be explained, but for a five-parameter report tool with 20% parameter coverage the description is far too thin. Essential context about date filtering, result limits, and counter/account resolution is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Four of the five parameters (limit, date_to, date_from, counter_id) have no schema description, and the description adds no meaning for any of them. With only 20% schema coverage, the description is expected to compensate but instead contributes nothing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource (landing pages report) so the agent knows the general subject, but it essentially restates the tool name and adds no verb nuance or scope. It does not distinguish itself from sibling reports such as metrica.hf.report_utm_campaigns, report_geo, or report_devices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites, and no routing between this report and the many other Metrica report tools. The 'Human-friendly' prefix hints at a wrapper over a raw API but never tells the agent when to prefer it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.hf.report_time_seriesC
Read-onlyIdempotent

Human-friendly: time series report (day/week/month/quarter/year).

ParametersJSON Schema
NameRequiredDescriptionDefault
metricNo
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNo
granularityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safe read-only nature is covered. The description adds allowed granularity values, which is useful context not present in annotations, but it does not describe output structure, pagination, or any other behavioral traits. With annotations covering the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence and front-loads the core purpose. 'Human-friendly' is somewhat vague filler, but the granularity list is compact and useful. It is appropriately sized for the information given, though it could be more informative without becoming verbose.

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 report tool with six parameters, low schema description coverage, and an output schema, the description is too thin. It does not explain required inputs, default behaviors for account_id/counter_id, or the report's scope. An agent would need to inspect the schema and infer much of the necessary context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17%, with just account_id documented in the schema. The description lists allowed granularity values (day/week/month/quarter/year), which helps for one parameter, but it leaves metric, date_from, date_to, and counter_id without semantic explanation. It does not compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a time series report and lists supported granularities (day/week/month/quarter/year), which gives a general sense of the tool. However, it does not specify what is being reported (which metric or counter) and does not distinguish itself from sibling report tools such as metrica.report. The purpose is implied but not sharply defined.

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 prerequisites, use cases, or exclusions, and 'Human-friendly' is not actionable guidance. The agent must infer usage entirely from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.hf.report_utm_campaignsC
Read-onlyIdempotent

Human-friendly: UTM campaigns report.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
toolYes
errorNo
resultNo
statusYes
choicesNo
messageNo
previewNo
warningsNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered and the bar is lower. The description adds almost nothing beyond that — 'Human-friendly' vaguely hints at a simplified response shape, but there is no mention of which counter/account must be resolvable, defaults, or report granularity.

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?

It is short and front-loaded, but the brevity here is under-specification rather than economy — the 'Human-friendly:' prefix consumes budget without adding information.

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?

An output schema exists, so return values need not be described, but for a 5-parameter, zero-required report tool in a family of similar reports the definition is far too thin: no date semantics, no counter/account resolution rules, and no guidance on how results relate to the sibling join/UTM tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 20% (just account_id), yet the description explains none of the five parameters: date_from/date_to formats, the meaning of limit, or when counter_id is required versus inferred from account_id are all absent. The tool is effectively uncallable-with-confidence from the description for 4 of 5 params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The phrase 'UTM campaigns report' identifies a verb (report) and a resource (UTM campaigns), and implicitly distinguishes it from the sibling metrica.hf.report_geo / report_devices / report_landing_pages reports by attributing dimension. However, the 'Human-friendly:' prefix is filler and the description never states scope, granularity, or what a UTM campaign grouping actually means, leaving the purpose only minimally clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance whatsoever: nothing says when to prefer this over metrica.report, metrica.hf.report_time_series, or join.hf.direct_vs_metrica_by_utm, all of which are plausible neighbours for the same traffic-attribution question. The agent must infer usage 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.

metrica.hf.update_goalB

Human-friendly: update a Metrica goal (pro-only, apply=true).

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesRaw goal patch object as per Metrica Management API.
applyYes
dry_runNo
goal_idYes
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose the pro-tier requirement plus the apply/dry_run mutation gate, which is meaningful behavioral context. It omits what the update destroys, whether the patch is partial or full-replace, and any auth/permission specifics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact, front-loaded sentence with no filler, and the two load-bearing constraints are surfaced immediately. The 'Human-friendly:' prefix is mildly promotional but effectively signals the interface tier.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 6 params, a required nested 'goal' object, no annotations, and no output schema, a single sentence is insufficient. It gives no guidance on patch shape, dry_run behavior, or return/error semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% across 6 params, so the description should compensate but largely does not. It clarifies 'apply=true' but leaves the 'goal' patch object, 'goal_id', 'counter_id', and 'dry_run' unexplained, and ignores the nested object structure entirely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('update a Metrica goal'), which clearly distinguishes it from the create/delete/list siblings. It does not, however, explain how it differs from the non-HF 'metrica.goals.update' sibling, leaving the 'hf' distinction implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Adds two real conditions: 'pro-only' (plan gate) and 'apply=true' (must be set to actually write). But it never says when to prefer this over metrica.goals.update or the raw goals API, so usage context is only partially specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.list_countersC

List available Metrica counters.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNoRaw Metrica management params override (optional).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure, yet it is a single sentence. It says nothing about authentication, scope, pagination, or what a counters listing contains, and does not clarify the read-only nature beyond the implicit 'list'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with zero waste. It is efficient, though its brevity borders on under-specification rather than optimal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity list tool with no output schema and full schema coverage, the essentials are covered. But with zero annotations and an ambiguous relationship to sibling counter-listing tools, the definition is minimally viable rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no meaning beyond the schema for account_id or the raw params override, but nothing is missing that the schema does not already cover.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb and resource (list Metrica counters), so the agent knows the basic operation. However, it does not distinguish itself from the sibling metrica.hf.list_accessible_counters or metrica.counter_info, leaving overlap unresolved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no exclusions, and no pointer to alternatives such as metrica.hf.list_accessible_counters or metrica.counter_info. The agent must infer selection 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.

metrica.logs_exportD

Logs API export (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoLogs API action: allinfo, info, download, clean, cancel, create, evaluate.
fieldsNo
paramsNoRaw Logs API params override (advanced).
sourceNo
date_toNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idYes
request_idNo
part_numberNo

TDQS

D1.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about side effects, permissions, or the meaning of the action enum values such as clean, cancel, or create. The agent cannot tell whether this is read-only, destructive, or requires special auth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but this brevity is under-specification rather than useful conciseness. For a 10-parameter tool with nested objects, a single vague phrase does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, a nested object, 30% schema coverage, no annotations, and no output schema, the description is completely inadequate. It omits purpose, usage, behavior, and parameter semantics needed to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 10 parameters with only 30% description coverage, and the description adds no parameter meaning whatsoever. For a tool with low schema coverage, the description must compensate but instead supplies zero semantic detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Logs API export (optional)' largely restates the tool name and does not specify what is being exported, from which logs, or what the operation does. It fails to distinguish this tool from sibling metrica.hf.logs_export_preset, leaving the agent without a clear purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage hint is the ambiguous parenthetical '(optional),' which provides no when-to-use, when-not-to-use, or alternative guidance. There is no indication of when this tool should be selected over metrica.hf.logs_export_preset or metrica.raw_call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.raw_callB

Raw Metrica API call (escape hatch).

ParametersJSON Schema
NameRequiredDescriptionDefault
apiNoMetrica API: stats, management, logs.
dataNoRequest body for management API (create/update).
methodNoHTTP method: get, post, put, delete.
paramsNoQuery/body params for the request.
resourceNoManagement resource or logs action.
path_argsNoPath args for resource (e.g., counterId).
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it discloses almost nothing. It never states that the 'method' parameter permits destructive delete/put calls, that account_id resolves to Direct Client-Login credentials, or anything about side effects or rate limits. 'Raw' hints at unfiltered access but gives no real behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler, which is efficient. For a 7-parameter nested raw API passthrough it is arguably thinner than the complexity warrants, keeping it just under a 5.

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 and no annotations, plus nested objects and a mutation-capable method parameter, mean the description must do much more than one line. It omits which 'api' value to pick, how params/data interact, and any warning about write operations, leaving the agent under-equipped.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the seven parameters is already documented in the schema and the description adds no syntax, format, or cross-parameter meaning. 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource ('Raw Metrica API call') and tags it as an '(escape hatch)', so the agent understands it is a low-level passthrough. It does not differentiate itself from siblings such as metrica.report or the parallel direct.raw_call/audience.raw_call, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The '(escape hatch)' label implies the tool should be used only as a fallback when no dedicated tool fits, which is meaningful implied guidance. However, no explicit when-to-use/when-not or named alternatives are given, so the agent must infer the boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metrica.reportC

Run a Metrica report (raw output).

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitNo
offsetNo
paramsNoRaw Metrica stats params override (advanced).
date_toNo
filtersNo
metricsYesMetrics string, e.g. ym:s:visits.
accuracyNo
date_fromNo
account_idNoProject profile id (resolves to Direct Client-Login and optional Metrica counter defaults).
counter_idYesMetrica counter ID (required).
dimensionsNoDimensions string, e.g. ym:s:date.

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It notes 'raw output,' which is useful context about data format, but says nothing about read-only nature, authentication needs, rate limits, pagination (limit/offset exist), or output shape. Most behavioral traits remain undisclosed.

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 single sentence is front-loaded and free of filler, which is structurally efficient. However, for a tool with 12 parameters and nested objects, it is severely under-specified rather than appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 12 parameters, a nested object, no output schema, and no annotations, the description is far too thin. It should explain what the raw report returns, how pagination works, and which parameters control the report, but it omits all of this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds zero meaning beyond the schema, and with 12 parameters at only 42% schema description coverage, many parameters (sort, limit, offset, date_from, date_to, filters, accuracy) are undocumented in both places. It does not compensate for the coverage gap as required for a low-coverage schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb ('Run') and resource ('Metrica report') and hints at raw output, but gives no scope details to distinguish it from sibling reporting tools like metrica.raw_call or metrica.hf.report_time_series. An agent cannot tell what kind of report or which data this tool produces beyond the generic name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many alternative report tools (metrica.raw_call, metrica.hf.report_*, direct.report, etc.). No prerequisites, no exclusions, and no indication of appropriate contexts are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_serpC
Read-onlyIdempotent

Search API Web Search: normalized Yandex SERP ads and organic results.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNosync only in this implementation.
pageNoZero-based result page. Default: 0.
queryYesSearch query text, max 400 characters.
deviceNodesktop|phone|mobile|tablet. Implemented via Search API userAgent.
formatNohtml|xml. Use html for ads extraction (default).
regionNoYandex Search region id. Defaults to server config.
n_resultsNoHTML: 5-50 groups; XML: 1-100 groups. Default: 10.
user_agentNoAdvanced override for Search API userAgent.
include_rawNoInclude decoded raw HTML/XML in response. Default: false.
search_typeNoSearch API search type, e.g. SEARCH_TYPE_RU (default).

Output Schema

ParametersJSON Schema
NameRequiredDescription
adsYes
modeNo
pageNo
queryYes
deviceYes
formatNo
regionYes
captchaYes
organicYes
raw_xmlNo
raw_htmlNo
n_resultsNo
request_idNo
search_typeNo
ads_count_topYes
ads_count_bottomYes
found_docs_humanNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds only the word 'normalized', and says nothing about the format-dependent behavior (html vs xml changing n_results semantics), region defaults, or rate/cost characteristics. With annotations carrying the safety profile, this is thin 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with no wasted words, so it is concise — but its brevity is under-specification rather than efficiency. It reads like a label, not a usable instruction.

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 10-parameter tool with mode/format branching and non-obvious interplay between format and n_results, the description is far too sparse. Although an output schema exists (so return values need not be explained), nothing tells the agent about the html-vs-xml tradeoff or the sync-only mode constraint that the schema only hints at.

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 ten parameters including enums-in-prose (desktop|phone|mobile|tablet, html|xml). The description contributes no parameter meaning beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource: it performs a web search and returns normalized Yandex SERP data, explicitly splitting 'ads' from 'organic results'. That distinguishes it from sibling tools like wordstat.top_requests or the direct.* reporting tools. It stops short of five because the phrasing is clipped and doesn't clarify scope (e.g. web-only vs. other Yandex surfaces).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites (Yandex Search API credentials, region config), and no named alternative among the ~130 siblings. An agent must infer the usage context entirely from the name and the sentence fragments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wordstat.dynamicsC

Wordstat: dynamics (frequency dynamics by period).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNoRaw Wordstat payload override (advanced).
periodNomonthly | weekly | daily; mapped to PERIOD_MONTHLY/PERIOD_WEEKLY/PERIOD_DAILY.
phraseYes
devicesNo
regionsNo
to_dateNoOptional. Monthly accepts YYYY-MM or month-end YYYY-MM-DD; weekly requires provider-valid week-end via params.
from_dateYesYYYY-MM (inclusive).

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: no read-only/mutation indication, no rate limits, no note that 'params' can override the payload, no statement of what the response contains. For a tool with a nested advanced override object, this is a significant gap.

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?

It is a single short sentence with no filler, which is structurally clean, but it is under-specified rather than tight: brevity here comes at the cost of information the agent needs.

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?

With 7 parameters (2 required), a nested 'params' object, no output schema, and no annotations, the definition should explain the period mapping, date format constraints, and the raw-payload override. None of that appears, so the description is inadequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 57%, and the description adds essentially nothing beyond the word 'period'; phrase, devices, and regions have no schema descriptions and no compensating text. The description does not explain the distinction between period values, the from_date/to_date semantics, or the advanced 'params' escape hatch.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (Wordstat frequency dynamics) and the dimension it varies over (period), which does distinguish it from wordstat.top_requests, wordstat.regions, and wordstat.user_info. However, the verb is implicit and the parenthetical largely restates the tool name, so the agent gets a topic rather than a crisp statement of what the call returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over its Wordstat siblings, nor any prerequisite or exclusion. The description only says what the data is, leaving the selection decision entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wordstat.get_regions_treeD

Wordstat: getRegionsTree (regions dictionary).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNo

TDQS

D1.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, yet it discloses nothing about read-only behavior, caching, authentication, or the shape of the region tree returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Brief, but the brevity reflects under-specification rather than efficient front-loading. Nothing about the single sentence earns its place beyond the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and an opaque nested params object, the definition gives an agent nothing to call this tool correctly. The parenthetical 'regions dictionary' is insufficient compensation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for a nested 'params' object with no documented properties, and the description adds no parameter meaning whatsoever. The agent has no way to know what to pass.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the tool name ('getRegionsTree'), adding only the parenthetical 'regions dictionary'. It implies a read of a regional hierarchy, but gives no indication of scope, depth, or format of the tree.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus the sibling wordstat.regions or the other wordstat tools. The agent must guess based on the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wordstat.hf.suggest_keywordsC

Human-friendly: suggest keyword candidates from seed phrases (resumable via cursor).

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoResume a pending run. Provide either seed_phrases or cursor (exactly one).
devicesNo
regionsNo
num_phrasesNoPer-seed numPhrases (default: 50, max: 2000).
seed_phrasesNoStart a new run. Provide either seed_phrases or cursor (exactly one).
max_candidatesNoMax candidates to return (default: 200).
max_seed_phrases_per_callNoHow many seeds to process per call (default: 8).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, yet it only mentions cursor resumability. It omits quota/rate-limit behavior (Wordstat APIs are typically throttled), what the output contains, and whether runs are billed. 'Human-friendly' is marketing filler, not behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no wasted clauses. The only weakness is that 'Human-friendly:' occupies prime space without conveying actionable information.

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 7-parameter tool with no annotations and no output schema, the description is thin: it never states what a candidate looks like, how many are returned (defaults live only in the schema), or how the cursor phase completes. An agent lacks enough to invoke it confidently beyond the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 71%, which is high enough that the schema documents most parameters (cursor/seed_phrases exact-one rule, num_phrases defaults/max, max_candidates, max_seed_phrases_per_call). The description adds only 'from seed phrases' and repeats cursor resumability, and leaves devices/regions unexplained in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: 'suggest keyword candidates from seed phrases'. However, it does not distinguish itself from the closely-named sibling wordstat.hf.suggest_negative_keywords, so an agent cannot tell from the text alone which one to pick for positive vs. negative keyword expansion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It notes the tool is 'resumable via cursor', which hints at a two-phase flow, but gives no when-to-use context, no prerequisites, and no routing guidance relative to suggest_negative_keywords or the other wordstat siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wordstat.hf.suggest_negative_keywordsC

Human-friendly: suggest negative keyword tokens from phrases (lexicon-based).

ParametersJSON Schema
NameRequiredDescriptionDefault
phrasesYes
languageNoru|en (default: ru).
max_candidatesNoMax tokens to return (default: 100).

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It reveals that the suggestion is lexicon-based (suggesting deterministic, non-LLM output), which is useful, but says nothing about whether output is purely advisory, return size limits, or latency/cost. For a zero-annotation tool, this is a thin disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler beyond the 'Human-friendly:' group prefix. It is efficient, though the extreme brevity leaves gaps rather than trimming waste.

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?

With no annotations, no output schema, and only one of the three parameters documented, the description should compensate but does not. An agent cannot tell what shape the suggested tokens take or how they are derived from the input phrases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% (language and max_candidates are documented in the schema; required 'phrases' is not). The description adds no parameter meaning at all — no tokenization behavior, no how-phrases-are-consumed detail, no interaction with max_candidates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (suggest) and resource (negative keyword tokens) sourced from phrases, and the 'negative' qualifier implicitly separates it from the sibling wordstat.hf.suggest_keywords. It does not explicitly name that sibling, so the differentiation is only implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus wordstat.hf.suggest_keywords or direct.hf.set_campaign_negative_keywords, nor any prerequisite or exclusion. The only context is the 'Human-friendly:' group prefix, which conveys nothing about usage conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wordstat.regionsC

Wordstat: regions (frequency by region).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNoRaw Wordstat payload override (advanced).
phraseYes
devicesNo
region_typeNoall|cities|regions or REGION_ALL|REGION_CITIES|REGION_REGIONS; sent as Search API region.

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It implies a read-only frequency lookup but says nothing about authentication, rate limits, whether the API is the paid Search API, or what the response contains for a nested-object parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The fragment is short but earns its brevity through under-specification rather than density: the name 'regions' is repeated in the title and the parenthetical, leaving no room for the guidance the tool needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A four-parameter tool with a nested object, 50% schema coverage, no annotations, and no output schema needs a substantive description to be callable correctly. Six words cannot cover the required parameter and behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: region_type and params have descriptions, while phrase and devices do not. The description mentions 'region' loosely but adds no syntax, allowed values, or semantics for phrase/devices, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name ('Wordstat: regions') and adds a short hint of what it returns ('frequency by region'). This is minimally informative but does not distinguish it from the sibling wordstat.get_regions_tree or wordstat.top_requests, so an agent still cannot tell which regional wordstat tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as wordstat.get_regions_tree or wordstat.top_requests. The phrase 'frequency by region' implies a lookup, but nothing routes the agent between the four sibling wordstat tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wordstat.top_requestsC

Wordstat: topRequests (top queries by phrase).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNoRaw Wordstat payload override (advanced).
phraseNoProvide either phrase or phrases (exactly one).
devicesNo
phrasesNoUp to 128 phrases. Provide either phrase or phrases (exactly one).
regionsNo
num_phrasesNoMax: 2000.

TDQS

C2.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It says nothing about whether the operation is read-only, rate limits, data freshness, or any other behavioral trait. This is a complete omission.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded and contains no wasted words, using a parenthetical to clarify the jargon 'topRequests'. It is efficiently structured, though extremely terse.

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 tool with 6 parameters, a nested object, no annotations, and no output schema, the description is far too minimal. It omits usage guidance, behavioral context, and parameter detail, leaving an agent with little to go on beyond the basic purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%, leaving devices and regions undocumented. The description adds no parameter-level information beyond the phrase scope, so it fails to compensate for the coverage gap. The schema itself documents phrase/phrases exclusivity and num_phrases limit, but the description contributes nothing.

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 the resource (top queries) and the scoping input (by phrase), making the tool's output distinguishable from siblings like wordstat.dynamics (time-based) or wordstat.regions (geographic). It lacks explicit sibling differentiation, but the purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives (e.g., wordstat.dynamics for trends, wordstat.regions for regional breakdowns, or wordstat.hf.suggest_keywords for keyword ideas). The description offers no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wordstat.user_infoC

Wordstat: Search API access check via getRegionsTree.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it discloses almost nothing. It implies a read/access-check operation but says nothing about auth requirements, what success or failure means, rate limits, or what data (if any) comes back. For a user_info/access-check tool this is a significant gap.

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?

It is a single front-loaded sentence with no wasted words, which is structurally clean. However, brevity here comes at the cost of substance, and the 'via getRegionsTree' clause adds confusion rather than information.

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?

With no annotations, no output schema, an undocumented nested parameter, and an ambiguous name/purpose relationship, the definition is not complete enough for reliable invocation. It should clarify whether this returns user identity data or merely checks API access.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single parameter is an undescribed nested 'params' object. The description adds no meaning about what params accepts or requires, so it fails to compensate for the schema gap. Baseline credit for zero-param tools does not apply here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a purpose ('Search API access check') for a tool named user_info, which creates tension between the name and the stated function. It does identify the domain (Wordstat) and an action, but 'via getRegionsTree' muddies the purpose by pointing at a mechanism that duplicates the sibling tool wordstat.get_regions_tree. An agent can only partially tell what this tool uniquely does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus wordstat.get_regions_tree, wordstat.user_info's own siblings, or other wordstat tools. No prerequisites, conditions, or exclusions are stated. The agent is left to infer usage entirely.

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. 140 tool updatesv0.1.0
    • First observedaccounts.delete
    • First observedaccounts.list
    • First observedaccounts.reload
    • First observedaccounts.upsert
    • First observedaudience.hf.activation_plan
    • First observedaudience.hf.apply_activation_plan
    • First observedaudience.hf.catalog
    • First observedaudience.hf.find_segment
    • First observedaudience.hf.get_segment_summary
    • First observedaudience.hf.overlap_matrix
    • First observedaudience.hf.segment_health
    • First observedaudience.hf.segment_perf
    • First observedaudience.lookalikes.get
    • First observedaudience.lookalikes.list
    • First observedaudience.pixels.get
    • First observedaudience.pixels.list
    • First observedaudience.raw_call
    • First observedaudience.segments.create
    • First observedaudience.segments.delete
    • First observedaudience.segments.get
    • First observedaudience.segments.list
    • First observedaudience.segments.overlap
    • First observedaudience.segments.stats
    • First observedaudience.segments.update
    • First observedaudience.upload.errors
    • First observedaudience.upload.start
    • First observedaudience.upload.status
    • First observedaudience.user_info
    • First observeddashboard.generate_option1
    • First observeddashboard.generate_pro_html
    • First observeddirect.create_adgroups
    • First observeddirect.create_ads
    • First observeddirect.create_campaigns
    • First observeddirect.create_keywords
    • First observeddirect.get_changes
    • First observeddirect.hf.apply_plan
    • First observeddirect.hf.apply_utm_to_ads
    • First observeddirect.hf.archive_ads
    • First observeddirect.hf.archive_campaigns
    • First observeddirect.hf.attach_callouts_to_ads
    • First observeddirect.hf.attach_sitelinks_to_ads
    • First observeddirect.hf.attach_vcard_to_ads
    • First observeddirect.hf.bid_sweep_analyze
    • First observeddirect.hf.bid_sweep_plan
    • First observeddirect.hf.bid_sweep_run
    • First observeddirect.hf.clear_bid_modifiers
    • First observeddirect.hf.clone_campaign
    • First observeddirect.hf.create_adgroup_simple
    • First observeddirect.hf.create_callouts
    • First observeddirect.hf.create_sitelinks_set
    • First observeddirect.hf.create_text_ads_bulk
    • First observeddirect.hf.ensure_assets_for_campaign
    • First observeddirect.hf.find_adgroups
    • First observeddirect.hf.find_ads
    • First observeddirect.hf.find_campaigns
    • First observeddirect.hf.find_keywords
    • First observeddirect.hf.get_bids_summary
    • First observeddirect.hf.get_campaign_assets
    • First observeddirect.hf.get_campaign_summary
    • First observeddirect.hf.moderate_ads
    • First observeddirect.hf.pause_ads
    • First observeddirect.hf.pause_campaigns
    • First observeddirect.hf.plan_changes
    • First observeddirect.hf.pressure_report
    • First observeddirect.hf.report_adgroups
    • First observeddirect.hf.report_ads
    • First observeddirect.hf.report_keywords
    • First observeddirect.hf.report_performance
    • First observeddirect.hf.report_search_phrases
    • First observeddirect.hf.resume_ads
    • First observeddirect.hf.resume_campaigns
    • First observeddirect.hf.set_adgroup_autotargeting
    • First observeddirect.hf.set_adgroup_negative_keywords
    • First observeddirect.hf.set_adgroup_tracking_params
    • First observeddirect.hf.set_autotargeting_bid
    • First observeddirect.hf.set_bid_modifier_demographics
    • First observeddirect.hf.set_bid_modifier_desktop
    • First observeddirect.hf.set_bid_modifier_geo
    • First observeddirect.hf.set_bid_modifier_mobile
    • First observeddirect.hf.set_campaign_budget
    • First observeddirect.hf.set_campaign_geo
    • First observeddirect.hf.set_campaign_negative_keywords
    • First observeddirect.hf.set_campaign_schedule
    • First observeddirect.hf.set_campaign_strategy_preset
    • First observeddirect.hf.set_campaign_tracking_params
    • First observeddirect.hf.set_campaign_utm_template
    • First observeddirect.hf.set_keyword_bid
    • First observeddirect.hf.set_keyword_bids_bulk
    • First observeddirect.hf.unarchive_ads
    • First observeddirect.hf.unarchive_campaigns
    • First observeddirect.hf.update_adgroup_geo
    • First observeddirect.hf.update_ads_text_bulk
    • First observeddirect.list_adextensions
    • First observeddirect.list_adgroups
    • First observeddirect.list_ads
    • First observeddirect.list_bidmodifiers
    • First observeddirect.list_bids
    • First observeddirect.list_campaigns
    • First observeddirect.list_clients
    • First observeddirect.list_dictionaries
    • First observeddirect.list_keywords
    • First observeddirect.list_sitelinks
    • First observeddirect.list_vcards
    • First observeddirect.raw_call
    • First observeddirect.report
    • First observeddirect.update_adgroups
    • First observeddirect.update_ads
    • First observeddirect.update_campaigns
    • First observeddirect.update_keywords
    • First observedjoin.hf.direct_vs_metrica_by_utm
    • First observedjoin.hf.direct_vs_metrica_by_yclid
    • First observedmetrica.counter_info
    • First observedmetrica.goals.create
    • First observedmetrica.goals.delete
    • First observedmetrica.goals.get
    • First observedmetrica.goals.list
    • First observedmetrica.goals.update
    • First observedmetrica.hf.counter_summary
    • First observedmetrica.hf.create_goal
    • First observedmetrica.hf.delete_goal
    • First observedmetrica.hf.list_accessible_counters
    • First observedmetrica.hf.logs_export_preset
    • First observedmetrica.hf.report_devices
    • First observedmetrica.hf.report_geo
    • First observedmetrica.hf.report_landing_pages
    • First observedmetrica.hf.report_time_series
    • First observedmetrica.hf.report_utm_campaigns
    • First observedmetrica.hf.update_goal
    • First observedmetrica.list_counters
    • First observedmetrica.logs_export
    • First observedmetrica.raw_call
    • First observedmetrica.report
    • First observedsearch_serp
    • First observedwordstat.dynamics
    • First observedwordstat.get_regions_tree
    • First observedwordstat.hf.suggest_keywords
    • First observedwordstat.hf.suggest_negative_keywords
    • First observedwordstat.regions
    • First observedwordstat.top_requests
    • First observedwordstat.user_info

TDQS

C2.2/5.0

Scored across 140 tools

Disambiguation1/5

Massive overlap: direct.list_campaigns vs direct.hf.find_campaigns vs direct.hf.get_campaign_summary, multiple report tools for the same data, raw vs hf variants for nearly every operation. An agent cannot reliably select the right tool without deep domain knowledge.

Naming Consistency3/5

All names use dot-separated snake_case, but action placement is inconsistent (direct.list_campaigns vs metrica.goals.list) and some tools lack a namespace (search_serp). The hf prefix adds another layer but is not universally applied.

Tool Count1/5

140 tools is an extreme mismatch far beyond the typical 3–15 range. Many tools are thin wrappers or duplicate functionality, creating prohibitive cognitive load for an agent.

Completeness4/5

The surface is very broad, covering Direct, Metrica, Audience, Wordstat, and Search with CRUD for many resources, raw escape hatches, and cross-domain joins. Minor gaps exist (e.g., no delete for campaigns/adgroups/ads, limited Audience pixel management, Search API only web).

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Local-first MCP server for Yandex Webmaster that exposes tools for SEO operations including search query analytics, sitemap management, indexing history, recrawl quota, and diagnostics.
    15
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables interaction with Yandex advertising and analytics APIs (Direct, Metrika, Audience, Webmaster, AdMetrica) through MCP tools, resources, and prompts for campaign management and data retrieval.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    This MCP server lets you query Yandex Webmaster data in plain language, covering search queries, indexing, diagnostics, sitemaps, backlinks, and recrawl status. It is read-only by default (except recrawl submission) and uses OAuth without storing secrets.
    10
    44 npm
    3
    MIT