yandex-mcp
This MCP server connects Yandex advertising, analytics, search, and webmaster tools to an AI assistant, enabling both read-only analysis and gated or autonomous write workflows.
Yandex Direct: list and inspect campaigns, read supported inventory, pull campaign statistics, forecast keyword volumes by region/device, and apply allowlisted writes (add/update/delete/suspend/resume/archive/moderate, bids) idempotently; stricter human-approval flow is available via prepare/apply changes.
Yandex Metrika: list counters and goals, run bounded read-only statistics requests, build period-over-period reports with sampling metadata and exact totals, and autonomously create/update/delete goals with readback.
Yandex Wordstat: get top queries, demand dynamics over time, regional demand, and the region tree using Cloud credentials and server budget gates.
Yandex Search API (SERP): prepare asynchronous search-result jobs, submit approved queries with idempotency keys, check job status, and retrieve normalized results with provenance.
Yandex Webmaster: read user/host metadata, verification state, indexing summaries, diagnostics, query history, popular queries, indexing/search URL histories, sitemaps, external/broken links, and recrawl queues/quota/tasks; prepare and apply sitemap registrations and recrawl submissions through expiring human approvals with reconciliation.
Provides tools for submitting search jobs via the Yandex Cloud Search API and retrieving their results, along with integration for other Yandex services like Direct, Metrika, and Webmaster.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yandex-mcpShow me the traffic stats for my website in Yandex Metrika for the last week."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🇬🇧 English · 🇷🇺 Русский
Yandex MCP
Bring Yandex advertising, analytics and search data into one conversation.
MCP server for Yandex Direct, Metrika (incl. Logs API and offline conversions), Webmaster, Wordstat, Search API and Audience: 127 tools in one server, with toolsets, read-only mode and guarded writes.
Review Direct campaigns, examine Metrika statistics, build bounded Audience segments, explore search demand and investigate Webmaster diagnostics with the same assistant. Yandex MCP connects six API groups; configure the services relevant to your work and add others as you need them.
Default: every tool (all, 127 tools, ~22k tokens per session start). To save tokens, pick platforms with YANDEX_TOOLSETS - the setup wizard (yandex-mcp-setup) or the yandex_setup prompt asks which you need and writes it for you. Measured tools/list + router cost (no Geosearch key):
Preset | Platforms | Tools | ~Tokens |
| all | 127 | 21,986 |
| webmaster, wordstat, serp | 55 | 8,971 |
| direct | 40 | 8,055 |
| metrika, audience | 30 | 5,786 |
Quick start · Connect your assistant · Issues
Try asking your assistant:
Show my Metrika counters. For the counter I choose, compare visits and goal conversions over two equal periods and highlight the largest changes.
What you can do
Your task | What the MCP server provides |
Direct | Campaigns, supported inventory, portfolio strategies and statistics, including per-goal conversions and revenue; controlled changes when enabled. |
Metrika | Counters, goals, filtered reports, period comparison and CSV with sampling metadata. |
Search API | Asynchronous Yandex search-result jobs with saved results. |
Wordstat | Top queries, demand trends, regional distribution and the region tree. |
Webmaster | Indexing and site diagnostics, SQI history, important pages, search appearance/removal events, query statistics, sitemap and recrawl workflows. |
Audience | Segments and pixels; guarded circle, polygon, pixel and pixel-viewer creates when explicitly enabled. |
Report examples and local OAuth help explain how to compare periods, export rows and interpret partial results. API coverage notes list recently added tools with links to the Yandex documentation.
Related MCP server: yandex-marketing-mcp
Why this MCP
Optional lazy tool loading: set
YANDEX_TOOL_LOADING=lazy(or choose it in the setup wizard) to start with a small core and enable toolsets on demand; see Lazy tool loading.Six Yandex API groups in one process; enable only the toolsets you need (
YANDEX_TOOLSETS,YANDEX_READ_ONLY).Writes (Direct changes, Audience creates, Metrika uploads and Logs requests) are off until enabled by an env flag and use confirmation hashes or idempotency keys.
Agent layer: router instructions, 5 prompts (incl.
yandex_setup),yandex://playbookand guide resources, self-contained skills, structured errors withhint.Compared with other Yandex MCP servers on GitHub: SvechaPVL/yandex-mcp (132 tools), skiddgoddamn/yandex-marketing-mcp (153 tools) and webkoth/yandex-mcp (125 tools) still expose more total endpoints (often one tool per add/update/delete); this server matches them on documented Direct+Webmaster read methods that matter, keeps writes behind per-service gates, and ships bounded typed responses with CI on Linux and Windows.
Lazy tool loading
Optional lazy tool loading: YANDEX_TOOL_LOADING=lazy starts with a small core plus yandex_enable_toolsets and adds toolsets on demand (tools/list_changed). Startup cost (tools/list + instructions, ≈chars/4): eager ≈21872 tokens, lazy ≈2574 tokens (−88%). Default eager is unchanged; if your client ignores tools/list_changed, keep eager or reconnect after enabling. Scope: enablement is per MCP session (FastMCP session visibility), so one client's enabled toolsets never appear for another. The HTTP transport here is stateless (every request is its own session), so lazy is stdio only: an HTTP server refuses to start with it; use eager or YANDEX_TOOLSETS there.
Clients and notifications/tools/list_changed (verified against official docs, changelogs or maintainer statements, 2026-10):
Client |
| Source |
Claude Code | Supported (interactive: tools, prompts, resources; | |
VS Code (GitHub Copilot) | Supported (dynamic tool discovery); new tools may reach the agent only on the next turn | |
Gemini CLI | Supported (refreshes the tool registry) | |
Cursor | Unreliable: staff confirm a regression in 3.12.x; restart Cursor after enabling | |
Claude Desktop, Windsurf, Codex CLI, Cline, Zed, Continue | Unverified: no official statement found; use | — |
Maintained and up to date
Actively maintained by ZAI.ONE: current version 0.7.0; release notes in CHANGELOG.md and Releases.
Built-in update check: ask the assistant to run
yandex_check_update(public GitHub API, no credentials, cached; nothing is installed automatically;YANDEX_DISABLE_UPDATE_CHECK=1turns it off).Follows current MCP practice: tool annotations (read-only / destructive hints), toolsets and read-only mode, server
instructions, prompts and resources, structured errors with recovery hints, secrets kept out of tool output, a token budget for tool descriptions enforced in tests, and a routing eval: messy RU/EN requests must reach the right skill, guide and tool from the short router.CI runs the test suite on Linux and Windows for every pull request.
Quick start
Zero config (uv installed; no clone, no config file, no absolute paths):
claude mcp add yandex -- uvx --from "zai-yandex-mcp[standalone] @ git+https://github.com/zai-one/yandex-mcp@main" yandex-mcpThen ask: "Подключи Яндекс Метрику". The assistant runs yandex_auth_start (OAuth device flow: open the link, enter the code), then yandex_auth_finish; the token is stored in a private file under your user profile and used immediately and after restarts. It needs your Yandex OAuth app client_id once (pass it in chat or set YANDEX_OAUTH_CLIENT_ID; OAuth guide). Without --config the server reads YANDEX_MCP_CONFIG or mcp.local.json in the per-user directory if present, and keeps state there (%APPDATA%\zai-yandex-mcp on Windows, ~/Library/Application Support/zai-yandex-mcp on macOS, ~/.config/zai-yandex-mcp elsewhere; override with YANDEX_MCP_HOME). The same uvx command works in Cursor, Codex and Claude Desktop.
Wizard (Python 3.12+ and uv installed, a Metrika OAuth token at hand):
git clone https://github.com/zai-one/yandex-mcp.git && cd yandex-mcp
uv sync --frozen --extra standalone
uv run --frozen --extra standalone python scripts/configure.py # paste the token into the hidden promptMerge the generated mcp-client.json into your client (Claude Desktop, Cursor...), restart it and ask: "List my Metrika counters". Tip: add "YANDEX_TOOLSETS": "default" to the env for a smaller tool list; the assistant finds everything else through the router (yandex://guide/tool-map). Details below.
Prefer a ready package? Install the release and generate your client configuration. No source checkout is required.
Install Python 3.12–3.14 and uv. Clone with Git or download the ZIP. With a ZIP, open the extracted directory and skip the first two commands.
Each API group needs its own credentials. The wizard starts with Metrika; add Direct, Audience, Webmaster and Yandex Cloud credentials for the services you want to use. Cloud Search also needs a folder ID. Follow the service-specific setup. Audience safety and status semantics are documented in Yandex Audience.
git clone https://github.com/zai-one/yandex-mcp.git
cd yandex-mcp
uv sync --frozen --extra standalone
uv run --frozen --extra standalone python scripts/configure.py
uv run --frozen --extra standalone yandex-mcp --config mcp.local.json --check-configThe wizard creates a local configuration and stores secrets in private files. It refuses to overwrite an existing setup. --check-config validates local settings; the first request below checks your account connection.
Connect your assistant
Add this configuration to an MCP client that uses mcpServers, such as Claude Desktop or Cursor. Replace /ABSOLUTE/PATH/ with your absolute path; Windows JSON paths can use forward slashes, such as D:/Tools/.
{
"mcpServers": {
"yandex": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/yandex-mcp",
"run",
"--frozen",
"--extra",
"standalone",
"yandex-mcp",
"--config",
"/ABSOLUTE/PATH/yandex-mcp/mcp.local.json"
]
}
}
}The client starts the MCP server for you. Refresh its tool list, then make your first request. For clients with a different config format, reuse the same command and args; uv must be available to the client process.
First request
List my Metrika counters and the goals of the counter I select.
The default setup starts with Metrika. Once its token is accepted, the assistant can list accessible counters and read their goals. Other API groups use separately configured credentials.
If tools do not appear, check the absolute path, whether the client can find uv, and the --check-config result. For access errors, check account credentials and permissions. Installation and troubleshooting.
Other clients
# Claude Code (MCP only); --config is optional (see Zero config above)
claude mcp add yandex -- uvx --from "zai-yandex-mcp[standalone] @ git+https://github.com/zai-one/yandex-mcp@v0.7.0" yandex-mcp --config /ABSOLUTE/PATH/mcp.local.json
# Claude Code plugin (MCP + skills) from this repository; set YANDEX_MCP_CONFIG to your mcp.local.json
/plugin marketplace add zai-one/yandex-mcp
/plugin install yandex@zai-yandexCodex ~/.codex/config.toml:
[mcp_servers.yandex]
command = "uvx"
args = ["--from", "zai-yandex-mcp[standalone] @ git+https://github.com/zai-one/yandex-mcp@v0.7.0", "yandex-mcp", "--config", "/ABSOLUTE/PATH/mcp.local.json"]
env = { YANDEX_TOOLSETS = "default" }Cursor .cursor/mcp.json and Claude Desktop use the mcpServers block above (or "command": "uvx" with the Codex args).
Toolsets and read-only mode
Unset = every tool (127; previous behaviour). Platforms: yandex_setup_toolsets(platforms|preset, write=true) (stdio) sets only YANDEX_TOOLSETS in the active mcp.local.json (it wins over client env; restart to apply) - opt-in toolsets below are opt-in only relative to default. YANDEX_TOOLSETS=default keeps the read toolsets (direct_read, direct_reports, metrika, webmaster, wordstat, audience) plus account - about 30% fewer tool tokens. It is not strictly read-only: account includes the OAuth self-setup tools yandex_auth_start / yandex_auth_finish, which write local token files (stdio only); add YANDEX_READ_ONLY=1 (or YANDEX_DISABLED_TOOLS=yandex_auth_start,yandex_auth_finish) to hide them. The quota- and write-related metrika_logs and metrika_offline toolsets are opt-in: add them explicitly, e.g. YANDEX_TOOLSETS=default,metrika_logs. Rare reads live in opt-in direct_extra (client, dictionaries, Changes, keyword bids, bid modifiers, audience targets, retargeting lists, feeds, creatives, callouts, turbo pages, leads, videos, negative keyword sets) and webmaster_extra (owners, feeds, regions, query analytics). Administration lives in opt-in metrika_manage, webmaster_manage and audience_manage (grants, delegates, counters, filters, segments, labels, annotations, uploads, hosts, feeds, Audience segments; catalogue in yandex://guide/management), all writes through prepare -> approval -> apply. Yandex Maps organization search (maps_geosearch: maps_search_organizations, maps_search_places) is added only when YANDEX_MAPS_GEOSEARCH_API_KEY (or YANDEX_MAPS_GEOSEARCH_API_KEY_FILE, owner-private) is set - a separate Geosearch key from the developer cabinet; results are not cached and keep Yandex attribution per the Maps API terms (yandex://guide/maps-geosearch).
Variable | Effect |
|
|
| Add or hide individual tools. |
| Hide every prepare/apply/write/paid-submit tool (also |
Scopes, write flags, approvals and idempotency keys still apply to whatever is visible. The assistant can read yandex://toolsets. Errors are JSON with code, retryable, hint and docs.
Multiple accounts and agencies
Set YANDEX_ACCOUNTS_FILE to a JSON file of named profiles. Unset fields inherit the base credentials, so an agency client is just a direct_client_login; a separate account points to its own owner-private token files (paths relative to the JSON file, tokens never inline).
{
"default": "client-a",
"accounts": {
"client-a": {"direct_client_login": "client-a-login", "description": "Agency client A"},
"shop-b": {"direct_token_file": "shop-b.direct.token", "metrika_token_file": "shop-b.metrika.token"}
}
}Every tool then gets an optional account argument (one of the names) and yandex_list_accounts shows the profiles without secrets. Omitted account = default (or the base credentials). Without the file nothing changes: no extra argument, no extra tokens in the tool list. Use direct_list_agency_clients to find client logins.
Writes are isolated per account: idempotency keys, the write ledger and approvals belong to the account resolved for the call (Direct, Metrika, Webmaster, Audience), so a key or an approval from one account never replays or applies on another. Writes without a resolved account keep their previous ledger keys.
Direct sandbox
YANDEX_DIRECT_SANDBOX=true sends every Direct call to the official Sandbox (api-sandbox.direct.yandex.com, test data, same token; enable it once in Direct > API settings > Sandbox). Rehearse writes there first; write flags and approvals still apply. Per account: "direct_sandbox": true in YANDEX_ACCOUNTS_FILE. Sandbox writes, idempotency keys and approvals are recorded apart from production ones, so a rehearsal is never replayed or applied as a live change.
Skills, prompts and guides
Self-contained skills in skills/ (each with its own references/ and templates/): yandex-direct-audit, metrika-compare-periods, webmaster-seo-health, wordstat-demand-research, direct-safe-change. Copy a folder into ~/.claude/skills/, .agents/skills/ or .cursor/skills/, or install the plugin. MCP prompts: campaign_audit, weekly_report, seo_audit, budget_scaling; resources yandex://playbook, yandex://guide/{api-units|audit-checklist|strategies|metrics-dimensions|diagnostics-codes|wordstat-operators|prepare-apply|errors}.
Example tasks
"Audit my Direct campaigns for the last 30 days and list the top 5 issues."
"Compare organic traffic and goal reaches this week vs last week in Metrika."
"Check SEO health of example.com in Webmaster and give me a fix list."
"Collect Wordstat demand for 'купить диван' in Moscow and cluster it."
"Which campaigns can take 20% more budget at CPA under 900 RUB? Prepare the change, do not apply."
Access and limits
Search API jobs need a separate worker and a Cloud folder ID. Wordstat uses Cloud credentials and explicit cost limits. Write operations depend on service permissions and server policy. OAuth self-setup: yandex_auth_start / yandex_auth_finish (device-code flow, hot reload, no restart; local stdio only, never on an HTTP server; see yandex://guide/oauth) or yandex-mcp-oauth --device.
Authenticated HTTP is available for a server deployment. See HTTP setup, configuration and permissions and Python package integration.
uv sync --frozen --all-groups --extra standalone
uv run --frozen --extra standalone python scripts/verify.py
uv run --frozen --extra standalone python scripts/verify_install.pyTests use synthetic fixtures. A passing test run does not establish live provider connectivity.
Updates
Ask your assistant to run yandex_check_update. It compares the installed version with the
latest release through the public GitHub API
(no credentials, no Yandex API calls or quota, 3-second timeout, result cached for 24 hours next to the state file) and
returns the current and latest versions, the release notes link and the matching update command
(git pull --ff-only && uv sync --frozen --extra standalone for a checkout, uv tool install --force ... for a release package).
When a newer version is already known from the cache, the server mentions it once in its startup
instructions. Nothing is ever installed automatically. Offline, the check reports status: unknown
and the server keeps working. Set YANDEX_DISABLE_UPDATE_CHECK=1 to turn it off.
Built by ZAI.ONE
ZAI.ONE is a digital agency working on websites, SEO, advertising and analytics. We also build tools that connect AI assistants to everyday work. Talk to us on Telegram about setup, automation or an integration for your team.
License, use and contributing
Use: you may install and use this MCP server freely for yourself and your organisation, including commercial work. If it helps, please consider giving the repository a ⭐ — appreciated, never required.
Contribute: issues and pull requests are welcome; see CONTRIBUTING.md. Never post tokens, cookies, sessions or account data.
Not allowed without written permission from ZAI.ONE: copying code into other projects, forking for redistribution, embedding the server in other products or offering it as a competing service.
License: LicenseRef-ZAI-ONE 2.0 (source-available, not open source). Third-party notices and license history: NOTICE.
Available Tools
127 toolsaudience_create_geo_circleCIdempotent
Run one guarded geo-circle create; uncertain outcomes are not resent.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| points | Yes | ||
| radius | Yes | ||
| period_length | No | ||
| times_quantity | No | ||
| idempotency_key | Yes | ||
| geo_segment_type | Yes | ||
| confirmation_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write, idempotent, and non-destructive profile, so the bar is lower. The description adds real policy context beyond them: the operation is 'guarded' and an uncertain outcome must not be resent, which is a retry-safety nuance not captured by idempotentHint=true. It is vague, though, about what counts as 'uncertain' and which reconcile tool to use afterwards.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler, which is efficient. However, for an 8-parameter guarded write with zero schema documentation, one sentence is under-specified rather than appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six required parameters, no parameter descriptions, and no annotation for the confirmation/idempotency workflow, the definition should explain how confirmation_hash and idempotency_key relate to the guard. An output schema exists, so return values need not be described, but the call prerequisites are effectively undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 8 parameters (name, radius, points, geo_segment_type, confirmation_hash, idempotency_key, period_length, times_quantity) have 0% schema description coverage, and the description mentions none of them. Nothing explains radius units, points format, allowed geo_segment_type values, or what confirmation_hash and idempotency_key must contain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('geo-circle create') and the name itself distinguishes it from the sibling audience_create_geo_polygon. It stops short of naming or contrasting any sibling explicitly, so the agent must infer the circle-vs-polygon distinction from the tool name rather than the prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Run one guarded geo-circle create' implies a single invocation, but there is no guidance on when to pick this over audience_create_geo_polygon, audience_validate_create, or the prepare/apply/reconcile family. The 'uncertain outcomes are not resent' line hints at a no-retry policy without saying 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.
audience_create_geo_polygonCIdempotent
Run one guarded geo-polygon create; last is refused and unknowns are not resent.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| polygons | Yes | ||
| period_length | No | ||
| times_quantity | No | ||
| idempotency_key | Yes | ||
| geo_segment_type | Yes | ||
| confirmation_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover write (readOnlyHint=false), open-world, idempotent, and non-destructive behavior. The description adds that it is a single guarded create, that `last` is refused, and that unknowns are not resent, but 'guarded' is undefined and the other terms are cryptic, so the added context is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded with the core purpose and avoids padding. However, it is under-specified for a 7-parameter guarded create tool, so brevity veers into obscurity rather than clear conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 7-parameter write operation with 5 required fields, 0% schema description coverage, and a confirmation/idempotency guard, the description is severely incomplete. Output schema and annotations reduce the return-value and safety burden, but the agent still lacks enough information to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters, including required confirmation_hash and idempotency_key. The description explains none of them: it never defines polygons, geo_segment_type, period_length, times_quantity, or what confirmation_hash is for. It 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'geo-polygon create'. Distinguishes from sibling audience_create_geo_circle and audience_create_pixel through the geo-polygon noun. 'guarded' and 'one' add scope but are not fully clarified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. It does not say when to choose this over audience_create_geo_circle, audience_validate_create, or the audience_manage_prepare/apply flow. The notes about `last` and unknowns are constraints rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audience_create_pixelCIdempotent
Run one guarded tracking-pixel create; uncertain outcomes are not resent.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| idempotency_key | Yes | ||
| confirmation_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false, so the safety profile is partly covered. The description does add a nuance beyond that: a timed-out/uncertain call must not be blindly retried. But it leaves 'guarded' undefined and never explains the confirmation mechanism or whether the pixel is usable immediately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the operation front-loaded and no filler. It loses a point because the compressed phrasing ('guarded') is cryptic rather than informative at this length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but for a write tool with three fully undocumented required parameters, no prerequisite flow, and no recovery path for uncertain outcomes, the description is far too thin to let an agent invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all three parameters (name, idempotency_key, confirmation_hash) are required and undocumented anywhere. The description only obliquely gestures at idempotency semantics and says nothing about what confirmation_hash is, where it comes from, or the format/uniqueness rules for idempotency_key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource ('create' a 'tracking-pixel'), which distinguishes it from the geo_circle/geo_polygon/pixel_viewers siblings. However, it never distinguishes itself from the closely related audience_validate_create or audience_reconcile_create, which an agent would need to sequence around this call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no mention that a validate step or confirmation_hash must be obtained first, and no pointer to audience_reconcile_create for ambiguous outcomes. The phrase 'uncertain outcomes are not resent' is a behavioral note, not usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audience_create_pixel_viewersCIdempotent
Run one guarded pixel-viewer segment create; uncertain outcomes are not resent.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| pixel_id | Yes | ||
| period_length | Yes | ||
| times_quantity | Yes | ||
| idempotency_key | Yes | ||
| confirmation_hash | Yes | ||
| times_quantity_operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=true, openWorld=true, destructive=false, so the safety profile is covered. The description reinforces this with 'guarded' and 'uncertain outcomes are not resent', adding nuance about non-resend on ambiguity, but says nothing about the confirmation_hash flow or required auth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is efficient. But the terseness tips into under-specification rather than precision for a 7-parameter mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-required-parameter mutation tool with an output schema present, the description should at least orient the agent on the confirmation/idempotency parameters, yet covers none of them. Return-value explanation is not needed given the output schema, but the parameter and selection gaps leave the definition substantially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 required parameters, so the schema provides no help either. The description offers no meaning for opaque fields like confirmation_hash, idempotency_key, or times_quantity_operation, only faintly implying a guarded/confirmation flow via 'guarded'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb ('create') and a resource ('pixel-viewer segment'), so the core action is identifiable. However, the odd phrasing 'Run one guarded pixel-viewer segment create' reads like an internal label and offers no differentiation from siblings such as audience_create_pixel or audience_validate_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus audience_validate_create, audience_create_pixel, or audience_reconcile_create. The only contextual hint is 'uncertain outcomes are not resent', which speaks to retry behavior rather than tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audience_get_pixelBRead-onlyIdempotent
Read one pixel by filtering the documented authoritative pixel list.
| Name | Required | Description | Default |
|---|---|---|---|
| pixel_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered. The description only adds the notion that the result is derived from an authoritative list, which is marginal context rather than substantive behavioral disclosure (no error or auth behavior).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the verb and resource. It is efficient, but the dangling 'documented authoritative pixel list' clause adds words without adding clarity, keeping it out of the top band.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the tool is a simple single-param read. However, the description leaves pixel_id semantics and the source of authoritative pixels unexplained, which an agent would need to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter pixel_id has no description anywhere. The description does not say where pixel_id comes from, its format, or what happens if it is unknown — it fails to compensate for the coverage gap, though one required id param keeps the impact limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Read one pixel') and implicitly distinguishes itself from the sibling audience_list_pixels by scope (one vs. many). The trailing phrase 'by filtering the documented authoritative pixel list' is unusual and slightly muddles the operation, but the core 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the singular 'one pixel' signals this is a by-id lookup rather than a listing, so an agent can infer it belongs after user has an id. But no explicit when-to-use, when-not, or prerequisite (e.g. 'use after audience_list_pixels') is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audience_get_segmentBRead-onlyIdempotent
Read one segment by filtering the documented authoritative segment list.
| Name | Required | Description | Default |
|---|---|---|---|
| segment_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds only a hint that retrieval is a filter over the authoritative segment list, implying a deterministic read with no side effects, but discloses nothing about behavior on missing/invalid ids or result shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action and scope front-loaded; nothing is padded. The phrasing 'documented authoritative segment list' is slightly redundant, keeping it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations cover the safety profile. The gap is provenance of the id and the sibling relationship to audience_list_segments, which the description leaves unaddressed for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 0% schema description coverage and no enum, so the schema gives only a name and integer type. The description does not explain where segment_id comes from, its expected form, or its relationship to the ids returned by audience_list_segments, leaving the parameter effectively undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (one segment), scoped to a single item, which implicitly distinguishes it from audience_list_segments. The trailing phrase about 'filtering the documented authoritative segment list' is odd but does not obscure the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use, when-not, or named alternative. The agent must infer that this is the single-item counterpart to audience_list_segments; nothing states that segment_id must come from that list, nor what happens when the id is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audience_list_pixelsARead-onlyIdempotent
List Audience tracking pixels visible to the server-side credential.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds a genuine behavioral detail beyond them — the result set is scoped to credential visibility — but says nothing about pagination, ordering, or result volume, which matters for an unspecified-size listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the resource name and the scope constraint front-loaded. No filler, no restatement of the title, every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and annotations carry the safety semantics. Purpose and scope are covered for a no-argument list tool; only routing guidance relative to sibling list/get tools is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool is 4. The credential-visibility note functions as an implicit scoping rule for results rather than a parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (Audience tracking pixels), which distinguishes it from audience_get_pixel (single-pixel retrieval) and audience_list_segments (different resource). It does not explicitly name those siblings, but the verb+resource combination is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'visible to the server-side credential' scopes when results apply, implying this is an enumeration call for the authenticated account. However, it never states when to prefer it over audience_get_pixel or audience_list_segments, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audience_list_segmentsBRead-onlyIdempotent
List Audience segments visible to the server-side Audience credential.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety and purity profile is fully covered by structured data. The description's only added behavioral fact is that results are scoped to the server-side Audience credential, which is useful but thin given a zero-parameter, no-side-effect call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, and the resource and scope are front-loaded. It stays within budget for a no-argument list call, though the brevity borders on being too sparse to guide an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and with zero parameters the schema burden is nil; annotations cover safety. The only real gap is the absence of any cue about result volume, pagination, or relationship to audience_get_segment, which is minor for a simple low-complexity list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; there is no parameter syntax for the description to document. Schema coverage is reported at 100% and the empty object schema is unambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (Audience segments), and adds a real scope qualifier: visibility is limited to what the server-side Audience credential can see. That distinguishes it from sibling readers like audience_get_segment and audience_list_pixels, though it does not name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives (e.g., use audience_get_segment for a single segment). The credential-scope phrase implies the tool returns everything visible rather than a filtered subset, but that is inference, not stated guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audience_manage_applyBDestructiveIdempotent
Execute an accepted Audience write once (write flag, approval_id, idempotency_key), then read back. Same key replays the stored result. Writes.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes | ||
| approval_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=true, so the safety profile is covered. The description adds genuinely new behavior: a read-back after the write, and that replaying the same key returns the stored result rather than re-executing. It still does not say what the write destroys or what authorization the approval_id carries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and kept to three short fragments. The trailing 'Writes.' is largely redundant with the first sentence, but overall there is little waste for a terse mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. For a destructive, 4-param mutation with 0% schema coverage, though, the description omits what operation does and what args contains, leaving gaps an agent must guess at before invoking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 4 parameters, so the description must carry the semantics. It names approval_id and idempotency_key and hints at a 'write flag' for operation, but never explains what operation accepts or what the args object carries. The primary payload parameter is left completely ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: executing an accepted Audience write once, with the read-back follow-up. This distinguishes it from audience_manage_prepare (which stages the write), though it does not name that sibling explicitly. The purpose is clear without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'accepted' and the required approval_id imply this is the apply step after a prepare/approval flow, so usage context is implied. However, it never explicitly says when to use this versus audience_manage_prepare or audience_manage_reconcile, leaving the agent to infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audience_manage_prepareB
Open an approval for one allowlisted Audience write/upload (args: ids, query, body, csv). Bound to principal, account and exact request; nothing is sent.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false and destructiveHint=false already given, the description adds genuinely useful behavioral context: the approval is 'Bound to principal, account and exact request' and 'nothing is sent'. That dry-run scope is non-obvious and cannot be inferred from the annotations, which would otherwise leave the safety profile ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the core action front-loaded and the safety constraint after a semicolon. No filler; every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the annotations cover the mutation profile. However, for a two-phase-commit entry point the description omits the approval lifecycle (what happens after, which tool applies it) and the operation vocabulary, leaving gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter meaning. It partially does by listing the arg keys ('ids, query, body, csv'), but the required 'operation' parameter and its allowlisted values are never explained, leaving the required field undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb with a specific resource: 'Open an approval for one allowlisted Audience write/upload'. This tells the agent it stages a request rather than performing it, distinguishing it in spirit from the apply/reconcile siblings. It stops short of explicitly naming the sibling tools it hands off to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when to use this versus audience_manage_read, audience_manage_apply, or audience_manage_reconcile. The prepare/apply pattern is only implied by the word 'approval'. No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audience_manage_readBRead-onlyIdempotent
Documented Audience management/report reads by operation name; args = path ids, query{...}. operation='catalog' lists all operations with docs (local). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so 'Read-only' in the text is redundant. The one piece of added behavior is that the 'catalog' operation resolves locally, which tells the agent a discovery call costs no network round-trip.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse sentences, front-loaded with the dispatch model and followed by the discovery hint. Dense and mostly waste-free, though the telegraphic 'args = path ids, query{...}' phrasing is cryptic enough to cost readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the 'catalog' operation covers operation-name discovery. However, for a dispatcher over a large surface, the description gives no sense of scope or which operations exist, leaving the agent dependent on an extra discovery call before it can act.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and 'operation' is an unconstrained string with no enum, so the description carries the burden. It does explain that args holds path ids plus a query{...} object and that operation='catalog' enumerates valid names, which is useful, but the actual operation-name vocabulary and arg shapes remain undiscoverable without a prior call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the domain (Audience management/report reads) and the mechanism (dispatch by operation name), but never states concretely what is read — no resource list, no example operation beyond 'catalog'. It distinguishes itself from audience_manage_prepare/apply/reconcile only implicitly through the word 'Read'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It hints at a discovery workflow by noting operation='catalog' lists all operations with docs, which is real usage guidance, but it never says when to use this tool versus audience_manage_prepare/apply/reconcile or the direct audience_list_* / audience_get_* siblings. 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_manage_reconcileBIdempotent
Settle an uncertain Audience management write by reading the provider; never resends.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, readOnlyHint=false, and destructiveHint=false. The description adds real value beyond them by explaining the mechanism: it settles state by reading the provider rather than retrying the write ('never resends'). That is a behavioral trait an agent cannot derive from the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the action and mechanism with no filler. It is efficient, though the extreme terseness leaves the reader to unpack 'uncertain' and 'settle'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return-value semantics need not be described, and the annotations cover the safety profile. The remaining gap is parameter documentation (0% coverage) and the absence of explicit routing among the several sibling reconcile/apply tools, leaving the definition minimum-viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and none of the three parameters ('operation', 'idempotency_key', 'args') are mentioned or clarified in the description. For a tool requiring an idempotency_key, the description offers no explanation of how the key is used or what 'operation' should contain, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('settle') and resource ('an uncertain Audience management write') plus the mechanism ('by reading the provider'). This clearly separates it from the prepare/apply siblings and from the webmaster_/metrika_ variants of the same reconcile pattern. It stops short of naming an alternative sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Settle an uncertain ... write' implies the usage context (a prior write whose outcome is unknown), which is reasonable guidance. However, no explicit when-to-use condition, prerequisites, or alternatives (e.g. audience_manage_apply, audience_reconcile_create) are named, so the agent must infer the trigger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audience_reconcile_createCIdempotent
Reconcile one owned pending create by saved object id without sending another POST.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | ||
| operation | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, idempotent, non-destructive, open-world. The description adds one genuinely useful behavioral fact: it does not emit another POST, so it avoids duplicate side effects. It does not explain what state the operation requires (a previously pending create) or what it mutates, so the added value is real but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the key constraint ('without sending another POST') appears immediately. Brevity here tips into under-specification rather than verbosity, but structurally it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, but for a mutating, open-world tool with 0% parameter coverage and a required nested payload object, the description leaves too much unanswered about what to supply and what state must exist first.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across three required parameters (payload is a free-form nested object), so the description must carry the load, and it does not. It references a 'saved object id' that corresponds to no declared property, leaving operation, payload and idempotency_key entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('reconcile') and resource ('one owned pending create'), which separates it from generic siblings like audience_manage_reconcile. However, 'reconcile a pending create' is jargon that leaves the actual effect on the saved object unclear, and the phrase 'by saved object id' does not map cleanly to any declared parameter, so an agent cannot be fully confident what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'without sending another POST' implies the intended situation: resolving an uncertain/duplicate create instead of re-issuing it. That is useful implied routing, but there is no explicit when/when-not and no named alternative (e.g. vs audience_manage_reconcile or audience_validate_create).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audience_validate_createBRead-onlyIdempotent
Validate a closed Audience create payload offline and return its immutable confirmation hash.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered structurally. The description's own additions ('offline', 'immutable confirmation hash') largely restate what openWorldHint=false and the existing output schema already convey, so it adds only marginal new context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the verb and outcome front-loaded and no filler; nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, nested-payload validation step, the agent still lacks the allowed 'operation' values, the expected payload shape, and where the resulting hash is consumed downstream. The presence of an output schema excuses it from describing return values, but the input-side and workflow gaps are significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both required parameters, and the nested 'payload' object is opaque with additionalProperties=true. The description says only 'Audience create payload' and says nothing about the 'operation' parameter or what keys the payload must contain, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (validate) and resource (Audience create payload) plus the result (confirmation hash), so the agent knows this does not create anything. It does not, however, distinguish itself from nearby siblings like audience_create_geo_circle, audience_reconcile_create, or audience_manage_prepare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Validate ... offline' implies this is a pre-flight check before a create/reconcile step, which is usable guidance. But no explicit when-to-use, no statement of which create tool's payload this validates, and no mention of the alternative paths (audience_reconcile_create, audience_manage_prepare).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_apply_changesADestructiveIdempotent
Apply an accepted Direct change set (from direct_prepare_changes, approved by the operator) exactly once with approval_id + idempotency_key; re-reads campaigns to verify. Writes; spends units. Fails closed without approval.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | ||
| service | Yes | ||
| campaigns | Yes | ||
| approval_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/idempotent/destructive/openWorld profile, but the description adds real value beyond them: 'exactly once', a re-read verification step, that it 'spends units', and that it fails closed without approval. The only gap is that cost magnitude and rollback behavior on partial failure are not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence followed by two short constraints; the trigger, key parameters, and failure mode are all front-loaded with no filler. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, idempotent write with an output schema (so return values need no explanation), the description covers trigger, gating, cost, and verification. The unexplained `service`/`method` params keep it from being fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, and it only partly does: it tells the agent that approval_id gates the operation and idempotency_key enforces exactly-once, and hints 're-reads campaigns' relates to campaigns. The required `service` and `method` parameters are left entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Apply) and resource (an accepted Direct change set) and explicitly names the upstream producer, `direct_prepare_changes`. This cleanly separates it from its prepare sibling and from the generic `direct_write`/`direct_apply_write` group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear trigger context: the change set must come from `direct_prepare_changes` and be operator-approved, and 'Fails closed without approval' states a refusal condition. It does not, however, differentiate itself from the sibling `direct_apply_write`, so a routing agent still has an ambiguity to resolve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_apply_writeBDestructiveIdempotent
Execute an accepted Direct write once (write flag, approval_id, idempotency_key), then read back.
Same key replays the stored result. Writes; spends units.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| method | Yes | ||
| service | Yes | ||
| approval_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the description's 'Same key replays the stored result' largely restates idempotency. It does add one genuine trait beyond annotations: 'spends units' discloses a billing/cost dimension, and 'then read back' hints at sequencing. It says nothing about what a destructive execute actually changes or what authorization is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with no filler: the action comes first, then replay semantics, then the cost warning. Compact and readable, though the parenthetical parameter list and the dangling 'write flag' mention add slight ambiguity rather than clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values after the read-back need not be explained. But for a destructive, open-world, five-parameter mutation that spends units, the description is thin: it omits the meaning of service, method, and items, does not describe what gets mutated, and does not fully explain the prepare-to-apply handoff relative to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden of explaining five required parameters. It names only approval_id and idempotency_key (plus an ambiguous 'write flag'), leaving service, method, and items completely undocumented in both schema and description. The partial naming of two of five required fields is inadequate compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: execute an accepted Direct write once, then read back. The word 'accepted' signals this is the commit half of a prepare/apply pair, and 'then read back' clarifies the post-write behavior. It does not differentiate itself from the closely related siblings direct_write, direct_apply_changes, or direct_prepare_write, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentioning 'an accepted Direct write' and requiring approval_id implies a prior prepare/approval step, and 'Same key replays the stored result' implies retry safety. However, it never explicitly says when to use this tool versus direct_prepare_write, direct_write, or direct_apply_changes, nor what constitutes an 'accepted' write. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_check_changesBRead-onlyIdempotent
What changed in Direct since timestamp (UTC ISO, Z) via Changes: checkCampaigns (which campaigns), check (objects in given ids), checkDictionaries. Use for incremental sync instead of re-reading everything. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ad_ids | No | ||
| method | No | checkCampaigns | |
| timestamp | No | ||
| field_names | No | ||
| ad_group_ids | No | ||
| campaign_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the description's 'Read-only' is largely redundant. It does add the timestamp format expectation (UTC ISO, Z) and the incremental-sync framing, which is modest but real value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core question ('what changed') followed by method enumeration and the one usage rule. Compact with little waste, though the parenthetical method glosses are dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, but for a 6-parameter, 0%-documented tool the description is only partially complete: the id/field parameters remain undocumented, leaving the agent to infer which combinations are valid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, so the description carries the full burden. It explains the method enum values (checkCampaigns/check/checkDictionaries) and the timestamp format, but leaves ad_ids, campaign_ids, ad_group_ids and field_names entirely unexplained, including which ids pair with which method.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('what changed in Direct since timestamp') and enumerates the three Changes methods, so the agent knows this is a changes/delta query, not a full listing. It does not name a sibling tool to differentiate against, but the verb+resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one clear usage rule ('use for incremental sync instead of re-reading everything') but no explicit tool alternatives and no guidance on which method or id parameter to pick for a given task. Usage is implied rather than fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_deduplicate_keywordsBRead-onlyIdempotent
Merge duplicate phrases and add cross-negatives via KeywordsResearch.deduplicate before adding keywords. Up to 10000 phrases; nothing is saved. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | ||
| operations | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the 'Read-only' tail adds little. What does add value is the disclosed limit of 'up to 10000 phrases' and the guarantee that 'nothing is saved', which are concrete behavioral constraints not present in the annotations. It still says nothing about failure modes when the limit is exceeded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core action front-loaded and the constraints trailing; nothing is padded. The trailing 'Read-only' is redundant with the annotations but costs only a few words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the size/save guarantees are covered. The gap is the undocumented operations parameter and the absence of any detail on how cross-negatives are generated, which leaves the tool's transformation behavior only partially specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it largely does not. The 'phrases' wording loosely maps to the keywords array, but the 'operations' parameter (array of strings or null, no enum, no description) is entirely unexplained — an agent has no idea what operations are accepted or what omitting it does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: it merges duplicate phrases and adds cross-negatives to keywords. No sibling tool in the list performs deduplication, but it never names an alternative or counterpart, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before adding keywords' implies this is a pre-processing step in a keyword-creation workflow, which is a genuine usage cue. However, there is no explicit when-not guidance, no prerequisites, and no named alternative tool for agents weighing this against other keyword tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_get_bid_modifiersBRead-onlyIdempotent
Bid adjustments (mobile, demographics, retargeting, regional...) by campaign/group/id; levels CAMPAIGN, AD_GROUP. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| levels | No | ||
| offset | No | ||
| ad_group_ids | No | ||
| campaign_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so 'Read-only' is largely redundant. The description does add useful domain context by naming the supported levels (CAMPAIGN, AD_GROUP) and the kinds of adjustments, but says nothing about pagination behavior or the default limit of 1000 that govern result size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the resource and key constraint front-loaded and no padding. The ellipsis in '(mobile, demographics, retargeting, regional...)' is slightly loose but keeps it compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description identifies the entities and levels. It still omits pagination/default-limit guidance for a tool exposing limit and offset, leaving a minor gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden, and it partially does: 'levels CAMPAIGN, AD_GROUP' documents the levels parameter values, and 'by campaign/group/id' maps to campaign_ids, ad_group_ids, and ids. However, limit and offset — the pagination controls — are never explained, leaving two parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (bid adjustments) with concrete examples of adjustment types and the entities it operates on (campaign/group/id) plus the levels it supports. It is clearly a read operation, though it does not explicitly distinguish itself from the sibling direct_get_bids, which an agent could plausibly confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this tool versus alternatives such as direct_get_bids, direct_get_campaign, or direct_get_statistics. The only usage signal is the trailing 'Read-only', which is a capability note rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_get_bidsARead-onlyIdempotent
Bids.get: current Bid/ContextBid plus optional search auction fields for keywords. One of campaign_ids, ad_group_ids, keyword_ids required. Monetary values are micros (×1e6). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| keyword_ids | No | ||
| ad_group_ids | No | ||
| campaign_ids | No | ||
| include_auction | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, so the safety profile is covered. The description adds real behavioral context beyond that: the one-of selector requirement and the non-obvious unit convention ('Monetary values are micros (×1e6)'). It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: the constraint and unit convention come early with no filler. The 'Bids.get:' prefix is slightly API-jargon but harmless.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, but for a 6-param tool with 0% schema coverage the description omits pagination (limit/offset) and the include_auction toggle, and offers no sibling differentiation. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load, and it documents only 3 of 6 params (the three id arrays and their one-of rule). The limit, offset, and include_auction parameters are left entirely unexplained, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Bids.get: current Bid/ContextBid plus optional search auction fields for keywords'), which tells an agent it retrieves bid data. However, it does not distinguish itself from the sibling 'direct_get_keyword_bids', which sounds like it covers a similar area.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides one genuine usage constraint ('One of campaign_ids, ad_group_ids, keyword_ids required') and notes read-only, but gives no guidance on when to prefer this over alternatives like direct_get_keyword_bids or direct_get_bid_modifiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_get_campaignBRead-onlyIdempotent
Get one Direct campaign by numeric id.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully structured. The description adds essentially no behavioral context beyond that—no error behavior, auth requirements, or retrieval constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is appropriately sized for a simple one-parameter get operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple operation, rich annotations, and existence of an output schema, the description is close to complete. A minor gap remains because it does not explain where campaign ids come from, but the core invocation need is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It says the campaign is identified by a 'numeric id', which aligns with the integer campaign_id parameter but provides no additional detail such as how to obtain the id or what format is expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('one Direct campaign'), and the phrase 'one ... by numeric id' distinguishes it from list-style siblings such as direct_list_campaigns. It does not explicitly name alternatives, but the purpose is immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives like direct_list_campaigns or other direct_get_* tools. The single known-id retrieval use case is implied, but no conditions, prerequisites, or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_get_clientARead-onlyIdempotent
Own Direct account info (Login, ClientId, currency, type) via Clients.get; no phones/representatives. Agencies: direct_list_agency_clients. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so 'Read-only' adds nothing new. What the description does add beyond annotations is the content boundary (no phones or representatives) and the underlying call (Clients.get), which heads off expectation mismatch on the returned fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight, front-loaded sentences with no filler; scope comes before the sibling pointer. Minor waste in 'via Clients.get' and the redundant trailing 'Read-only.' which duplicates the annotation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument getter with an output schema and full annotation coverage, the description supplies everything an agent needs: what is returned, what is excluded, and where to go for the agency case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero input parameters, so the baseline is 4; the description correctly spends no space on parameter syntax. The field names it quotes are outputs, not inputs, and the output schema is separately available.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('Own Direct account info') and enumerates the return payload (Login, ClientId, currency, type), which lets an agent tell it apart from the many direct_list_*/direct_get_* siblings. The scope qualifier 'Own' and 'via Clients.get' pin down exactly which client record is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It routes the agent explicitly: agencies should use `direct_list_agency_clients` instead, and it states what this tool will not return (phones/representatives). This is the same when/when-not/alternative pattern as a top-tier definition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_get_dictionariesARead-onlyIdempotent
Direct reference dictionaries (Currencies, GeoRegions, TimeZones, Constants, Interests, AdCategories...). Use for region ids/min bids before forecasts or writes. GeoRegions is large. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so 'Read-only' in the description is largely redundant. The genuine added value is the 'GeoRegions is large' size warning. Nothing is said about caching, volume of returned data, or how names are resolved, so the disclosure remains thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short fragments, no padding, with the resource list and the usage rule front-loaded. Slightly elliptical in places (no explicit verb, fragment-style sentences), but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is not required. For a one-parameter, read-only dictionary lookup with full annotation coverage, the description supplies purpose, workflow context, and a size caveat, leaving mainly the parameter format unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'names' array parameter is never mentioned by name; the parenthetical dictionary list implicitly hints at valid values but does not state that it is the accepted input, nor whether it is case-sensitive or batched. It partially compensates for the coverage gap but does not fully document the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (reference dictionaries) and enumerates the concrete dictionaries returned (Currencies, GeoRegions, TimeZones, Constants, Interests, AdCategories). The verb is implied rather than stated, but an agent can immediately tell this is a read of static reference data, distinct from the many list_* siblings that return user-owned entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives the use case: 'Use for region ids/min bids before forecasts or writes,' which ties it to the forecast/write workflow. It also warns that 'GeoRegions is large,' which is a useful narrowing caveat. No competing sibling is named, but there is no direct alternative dictionary tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_get_goal_statisticsARead-onlyIdempotent
Direct Reports statistics broken down by 1-10 Metrika goals and attribution models (FCCD, LC, LSCCD, AUTO). Use for CPA/ROI by goal; for plain cost/clicks use direct_get_statistics. Goal columns: . Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| goals | Yes | ||
| date_to | Yes | ||
| date_from | Yes | ||
| row_limit | No | ||
| field_names | No | ||
| report_type | No | CAMPAIGN_PERFORMANCE_REPORT | |
| campaign_ids | No | ||
| attribution_models | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds genuinely new context beyond them: the 1-10 goal limit and the output column naming convention <Field>_<GoalId>_<Model>. It omits return-shape and pagination details, hence not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight clauses, front-loaded with the verb+resource and breakdown scope, then routing guidance, then the column-format hint. The only redundancy is 'Read-only', which repeats an annotation, but it costs almost nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and the goal/model semantics are covered. However, for an 8-parameter tool with 0% schema coverage, the missing date-format, row_limit, report_type, and campaign_ids guidance leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 parameters, so the description must compensate and only partially does. It meaningfully explains goals (1-10) and attribution models, but leaves date_from/date_to format, row_limit, field_names, report_type, and campaign_ids undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (goal statistics from Direct Reports) and scopes it to breakdowns by Metrika goals and attribution models. It explicitly distinguishes itself from the sibling direct_get_statistics, so an agent can select it without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use (CPA/ROI by goal) and names the alternative for the plain case (direct_get_statistics for cost/clicks). The selection condition is unambiguous rather than inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_get_inventoryCRead-onlyIdempotent
Run a provider-native get against the explicit Direct inventory allowlist.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| service | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so safety is covered. The description adds one genuinely useful behavioral fact: operations are constrained to an explicit allowlist, meaning non-allowlisted services will be rejected. It does not say what happens on an allowlist miss or whether output mirrors the provider shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, but it is too terse for a nested, two-required-parameter passthrough tool. Concision is achieved at the cost of substance rather than by eliminating waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, but the tool has two required parameters, a nested free-form object, and 0% schema coverage, and the description does not explain valid services, param shapes, or a usage example. For this complexity level it leaves the agent without enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and both parameters are generic and undocumented ('service' string, 'params' free-form object with additionalProperties). The description's mention of an 'explicit allowlist' hints that 'service' is constrained but never enumerates valid values or explains how 'params' maps to the provider call, so the compensation required at 0% coverage is absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'provider-native get against the explicit Direct inventory allowlist' largely restates the tool name in jargon rather than naming a concrete resource. It implies a passthrough read restricted to a whitelist of Direct services, but an agent cannot tell what objects it actually returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this instead of the many typed siblings (direct_list_campaigns, direct_get_campaign, direct_get_statistics, etc.). The only hint is the 'allowlist' framing, which weakly implies a raw escape hatch, but no alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_get_keyword_bidsARead-onlyIdempotent
Current keyword bids and serving status by CampaignIds, AdGroupIds or KeywordIds (one required). Change bids via direct_write service=bids. Auction data: direct_get_bids. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| keyword_ids | No | ||
| ad_group_ids | No | ||
| campaign_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/openWorldHint, so safety is covered and 'Read-only' adds nothing new. The description's genuinely additive detail is the one-of-these-ID-filters constraint, which the schema does not encode; it says nothing about pagination behavior or result caps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tight, front-loaded sentences with no filler; scope comes first, then mutation and sibling routing. The telegraphic 'Auction data: `direct_get_bids`.' fragment is slightly cryptic but still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present it need not describe return values, and annotations cover the safety profile. The critical gap it does fill is the required-one-of rule that the schema (0 required params) fails to express; the only shortfall is unaddressed pagination semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden: it names the three ID filter arrays and their exclusivity rule, which is the most important parameter semantic here. It says nothing about limit/offset (500/0 defaults), leaving a fifth of the parameters undocumented in prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Current keyword bids and serving status') plus the exact scoping keys CampaignIds/AdGroupIds/KeywordIds. It explicitly separates itself from the near-name sibling direct_get_bids ('Auction data'), so an agent can pick correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the selection rule ('one required' among the three ID types), routes bid modification to `direct_write` service=bids, and routes auction-price lookups to `direct_get_bids`. Both when-to-use and explicit alternatives are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_get_statisticsCRead-onlyIdempotent
Read campaign statistics; returns completed TSV rows or safe offline queue status.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | Yes | ||
| date_from | Yes | ||
| field_names | No | ||
| report_type | No | CUSTOM_REPORT | |
| campaign_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds one useful behavioral fact beyond that: it may return either completed TSV rows or an offline queue status, hinting at an asynchronous path. However, this is cryptic and leaves unclear when queuing occurs or how to retrieve queued results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding. The trailing clause is terse but introduces an ambiguous term ("safe offline queue status") that slightly undermines clarity, though the size itself is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but for a 5-parameter tool with 0% schema coverage and no usage guidance, the description is far too thin. It neither compensates for the undocumented parameters nor clarifies how this differs from the several sibling statistics tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters. date_from/date_to are self-evident, but field_names, report_type (with its CUSTOM_REPORT default), and campaign_ids have no schema descriptions and no explanation in the description either, so the agent cannot know valid values or semantics for these.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Read campaign statistics" names a clear verb+resource, but the second clause ("returns completed TSV rows or safe offline queue status") muddies scope and implies an async/offline queue mechanism. It does nothing to distinguish this from siblings like direct_get_goal_statistics or metrika_get_statistics, which an agent must disambiguate by name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as direct_get_goal_statistics or metrika_get_statistics. The agent is left to infer applicability from the name only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_keyword_forecastCRead-onlyIdempotent
Forecast search-volume presence by device for phrases and regions.
| Name | Required | Description | Default |
|---|---|---|---|
| phrases | Yes | ||
| region_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description usefully adds that output is a forecast broken down by device and region, but says nothing about latency, quota, or what 'search-volume presence' actually returns beyond the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the verb and resource front-loaded and no filler. It is appropriately sized, though the extreme brevity is partly the cause of the missing detail rather than a virtue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be re-explained, but for a forecasting tool with zero schema description coverage and 2 required params, the description is too thin: it omits what region_ids refer to, any phrase limits, and the significance of the device dimension in the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden but only echoes the parameter names conceptually ('phrases', 'regions'). It does not explain that region_ids are numeric identifiers (and where to obtain them), how many phrases are allowed, or any format constraints, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (forecast) and resource (search-volume presence), plus the two dimensions of granularity (device, region) and the input units (phrases, regions). An agent can distinguish it from wordstat volume lookups, though it never names a sibling alternative 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as the regional/volume tools (yandex_wordstat_get_top, yandex_wordstat_regions) that an agent might confuse this with. The agent must infer usage purely from the one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_ad_extensionsCRead-onlyIdempotent
Callout extensions (Id, Type, Status, text). Sitelinks: direct_list_sitelinks. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the description's "Read-only" merely restates structured data. It adds nothing about pagination behavior (limit defaults to 500), response size, or rate limits for a listing tool, so no new behavioral context is supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the resource, with the sibling pointer kept brief. The parenthetical "(Id, Type, Status, text)" is of questionable value given an output schema exists and its meaning is unclear, but overall there is no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return values, so those needn't be explained, but for a list tool with three entirely undocumented parameters the agent is left without knowing the default page size or how to filter by ids. Combined with no usage context, the definition is under-specified for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all three parameters (ids, limit, offset), and the description does not compensate — it never explains that ids filters to specific extensions or how limit/offset paginate. The parenthetical field list reads like output fields rather than the actual arguments, adding no real meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (callout extensions) and explicitly routes sitelinks queries to the sibling `direct_list_sitelinks`, so the agent can distinguish the two. The listing verb itself lives only in the tool name, and the parenthetical "(Id, Type, Status, text)" is ambiguous about whether those are return fields or filters, keeping it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Read-only" plus the sitelinks pointer imply this is a query tool for callout extensions and give one alternative, but there is no explicit when-to-use, no condition for choosing this over other direct_list_* tools, and no mention of prerequisites. 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.
direct_list_ad_imagesBRead-onlyIdempotent
AdImages.get: uploaded ad images (hash, name, type, subtype, associated). Optional hashes (≤10000) or associated YES/NO. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| hashes | No | ||
| offset | No | ||
| associated | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the "Read-only" sentence is largely redundant with structured data. The one genuinely added behavior is the 10,000-item cap on the hashes input, which is useful context; no pagination or result-shape behavior is described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded with the resource and returned fields, with no wasted sentences. However the dense "AdImages.get:" notation and comma lists trade away readability for brevity, reading as under-specified rather than crisply concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and annotations cover the safety profile. What remains missing is the semantics of the limit/offset parameters against a 0% schema coverage gap, which is a meaningful omission for a paginated listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, yet it only touches two of four parameters (hashes with its ≤10000 cap, and associated with YES/NO). The limit (default 500) and offset (default 0) parameters — critical for pagination — are never mentioned, leaving the schema silent and the description incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("AdImages.get: uploaded ad images") and even enumerates the returned fields (hash, name, type, subtype, associated), so an agent knows it lists image assets. It is readily distinguishable from the sibling direct_list_ad_videos by the resource noun, though it never explicitly contrasts with it or other list_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies how to narrow results ("Optional hashes (≤10000) or associated YES/NO"), giving filter semantics but no explicit when-to-use vs alternatives or when-not conditions. Usage is largely self-evident from listing images, but no alternative tool is named or routed to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_ad_videosCRead-onlyIdempotent
Ad video status by video Ids (required by the API). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the trailing 'Read-only.' merely repeats structured data and earns no credit. No additional behavior is disclosed (no note on pagination limits, result ordering, or what happens when ids are omitted despite the API-required claim).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses, front-loaded with the resource and no filler. Its sparseness is a completeness problem rather than a verbosity one, so it scores well here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but a listing tool with pagination params and an unclear ID requirement needs more than one cryptic sentence. The '(required by the API)' note conflicts with a schema where ids is nullable, defaults to null, and no parameters are required, leaving the agent unsure how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter burden. It only touches 'ids' (claiming they are API-required, which usefully nuances the schema's default null) and says nothing about 'limit' or 'offset', so pagination behavior is undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (ad videos) and the key dimension returned (status), but the verb is implied rather than stated and the phrase 'Ad video status by video Ids' reads awkwardly. Against a sibling set full of 'direct_list_*' tools (ad_images, creatives, ad_extensions), it does not clearly distinguish itself as the video-specific lister.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no alternatives are named. The only hint is the parenthetical '(required by the API)', which gestures at an input requirement but never says when an agent should pick this tool or what it should pick instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_agency_clientsARead-onlyIdempotent
List an agency's Direct clients (Login, ClientId, ClientInfo, Currency...) via AgencyClients.get; agency tokens only. Use the Login as YANDEX_DIRECT_CLIENT_LOGIN for that client. 10 units + 1/client. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| logins | No | ||
| offset | No | ||
| archived | No | NO |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds genuinely new context: it is agency-token scoped and has an explicit cost ('10 units + 1/client'), which helps an agent budget the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and resource, then the auth constraint and cost. Dense but no filler sentences; the parenthetical field list is the only mildly expendable element.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations cover the safety profile. With auth scope and pricing conveyed, the remaining gap is the undocumented pagination/filter parameters, which is a modest omission for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It clarifies how the login value should be used, but limit, offset, and archived receive no explanation at all, leaving three of four parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (an agency's Direct clients), enumerates the returned fields (Login, ClientId, ClientInfo, Currency), and even names the underlying API method. It is clearly a bulk-list operation, though it does not explicitly contrast itself with the sibling direct_get_client.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete gating condition ('agency tokens only') and explains how to supply the Login (as YANDEX_DIRECT_CLIENT_LOGIN). This tells the agent when the tool is applicable, though it never names an alternative tool for the non-agency case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_audience_targetsCRead-onlyIdempotent
Audience targets (retargeting/interest) by Ids, AdGroupIds or CampaignIds. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No | ||
| ad_group_ids | No | ||
| campaign_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint, so the trailing 'Read-only' adds no new information. Nothing is said about pagination defaults, result volume, or the shape/limits of the listing, so the description contributes essentially no behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and scope, with zero filler. The trailing 'Read-only' is redundant given the annotations, which is the only wasted clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations cover the safety profile. But for a 5-parameter, unfilterable-required listing tool, the description omits pagination behavior, filtering semantics, and any usage routing, leaving it only minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, so the description must carry the load; it does identify the three ID-based filters (ids, ad_group_ids, campaign_ids), which is real added meaning. However, the limit/offset parameters and the mutual exclusivity or combination rules between the ID families are left completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (audience targets / retargeting-interest targets) and the three ID families used to scope the listing, so an agent knows what it returns. It does not differentiate itself from similarly named siblings such as direct_list_dynamic_feed_ad_targets or direct_list_smart_ad_targets, which is the only gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisite, and no named alternative. The only guidance-adjacent text is 'Read-only', which is a trait rather than a usage condition, leaving the agent to infer when this listing should be preferred over the other audience/target list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_businessesCRead-onlyIdempotent
Yandex Business profiles (Id, Name, IsPublished, Rubric); no Phone/Address by default. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, and 'Read-only' in the description merely repeats that. The only added behavior, that Phone/Address are omitted by default, implies an include-switch that the schema does not actually expose, so it borders on misleading with no pagination or auth context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the resource and fields, which is good. But the brevity is under-specification rather than economy: whole sentences are missing on inputs and paging for a tool that has three unfiltered-when-omitted parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. What is missing is any guidance on the three inputs or pagination behavior, leaving an agent unable to use ids/limit/offset correctly from the definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Three parameters (ids, limit, offset) exist at 0% schema description coverage, and the description mentions none of them — not the meaning of ids filtering, not the default limit of 500, not offset paging. The description describes the response entity rather than the inputs, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (Yandex Business profiles) and enumerates the returned fields (Id, Name, IsPublished, Rubric), so the agent knows roughly what comes back. However, the verb is only implied by the tool name, and there is no differentiation from the many other direct_list_* siblings. Adequate but not sharp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, when not to, or which sibling to prefer for related queries. The 'no Phone/Address by default' clause hints at scope but never tells the agent when this listing is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_campaignsCRead-onlyIdempotent
List Direct campaigns through the strict read allowlist.
| Name | Required | Description | Default |
|---|---|---|---|
| selection_criteria | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered structurally. 'Strict read allowlist' adds a mild guardrail nuance beyond the annotations but does not disclose pagination, result volume, or whether selection_criteria narrows results server-side.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource front-loaded and no padding. The phrase 'strict read allowlist' is slightly jargon-y for the space it occupies, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, but the description leaves the only input parameter's format and semantics unexplained, and gives no guidance on scope or usage. For a tool whose sole filter is schema-opaque, this is under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter, selection_criteria, with 0% schema description coverage and a free-form object type, yet the description says nothing about its expected shape or meaning. With no params the baseline would be 4, but here the sole undocumented parameter is left entirely opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List Direct campaigns'), which is unambiguous and clearly distinct from the singular sibling direct_get_campaign. However, it never names or contrasts with that sibling, so the differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when to prefer this over direct_get_campaign or the other Direct list tools, and no stated prerequisites or conditions. The only implicit hint is the read-only framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_creativesCRead-onlyIdempotent
Creatives (image/HTML5/video/smart): Id, Type, Name, size. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the appended 'Read-only' is redundant. The description adds no behavioral context beyond the annotations (no pagination behavior, no rate limits, no auth needs).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and front-loaded, with no filler. It reads as a fragment rather than a sentence, but every token is informational and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return fields need not be re-explained, and annotations cover the safety profile. The remaining gap is significant: zero parameter documentation and no usage guidance for a tool with three exposed parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all three parameters (ids, limit with default 500, offset), and the description explains none of them. The conventional names make them partially guessable, but the default page size of 500 and the ids filter semantics are left entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource (creatives) and enumerates the subtypes it covers (image/HTML5/video/smart), plus the fields returned (Id, Type, Name, size). It is clearly a listing tool, though the verb itself is only implied by the name and there is no differentiation from siblings like direct_list_ad_images or direct_list_ad_videos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the many other direct_list_* siblings, no prerequisites, and no mention of what ids/limit/offset are for. An agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_dynamic_feed_ad_targetsCRead-onlyIdempotent
Dynamic feed ad filters (DynamicFeedAdTargets) by campaign/group/id. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No | ||
| ad_group_ids | No | ||
| campaign_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the trailing "Read-only." adds nothing new. The description does not disclose pagination behavior (limit/offset), result ordering, or open-world scope beyond what annotations state, leaving the behavioral picture thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler, and the resource is stated first. It is efficient, though bordering on under-specified rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and annotations cover the safety profile. Still, 0% parameter coverage plus near-identical siblings mean the description should do more to explain filters and disambiguate; it is barely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It loosely maps campaign/ad_group/ids to the campaign_ids, ad_group_ids, and ids parameters but gives no array semantics, no mention of limit/offset, and no defaults, leaving two 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (DynamicFeedAdTargets) and the filtering dimensions (campaign/group/id), so an agent knows it lists dynamic feed ad targets. However, "Dynamic feed ad filters" is slightly ambiguous about whether it lists filters or targets, and it never distinguishes itself from the near-identical siblings direct_list_smart_ad_targets and direct_list_dynamic_text_ad_targets beyond the entity name in parentheses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no stated when-to-use or when-not-to-use guidance. Given three sibling tools that list different ad-target types, the description should route the agent to the correct variant, but it offers no comparison or condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_dynamic_text_ad_targetsBRead-onlyIdempotent
Dynamic text ad targeting conditions by campaign/group/id. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No | ||
| ad_group_ids | No | ||
| campaign_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's 'Read-only' merely repeats structured data. No added context is given about pagination behavior (limit/offset exist), auth needs, or default result size, so beyond the annotations it contributes almost nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact fragments, purpose front-loaded before the safety note, with no filler. It is efficient, though the extreme brevity is also what leaves the usage and parameter gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema and rich annotations are present, so return format and safety profile need not be restated. Yet for a 5-parameter listing tool with 0% schema coverage, the description omits pagination semantics and how multiple filters combine, leaving it only minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning. It names three of the five filters (campaign/group/id), loosely mapping to campaign_ids, ad_group_ids, and ids, but gives no format or semantics for them and completely omits limit and offset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (dynamic text ad targeting conditions) with filter dimensions, so the agent knows what it retrieves. However, it does not distinguish itself from the nearly identical sibling direct_list_dynamic_feed_ad_targets, leaving ambiguity about which variant applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by campaign/group/id' implies the tool is used to scope targets to specific campaigns, ad groups, or IDs, giving some usage context. But there is no explicit when-to-use vs when-not guidance and no routing to the sibling feed-targets tool, so the agent must infer the choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_feedsCRead-onlyIdempotent
Product feeds: status, item count, update time. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the description's 'Read-only' merely restates them and adds no new behavioral context. It says nothing about pagination behavior, filtering scope, or rate limits beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The two-word-plus-fragment format is extremely compact and front-loaded with the resource. It is efficient, though the brevity is part of the under-specification problem rather than a virtue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. But for a list tool with three undocumented parameters and no routing guidance among dozens of siblings, the description leaves key operational information (filtering, pagination) entirely unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters (ids, limit, offset) have 0% schema description coverage, and the description mentions none of them. The only named fields ('status, item count, update time') are response attributes, not the inputs, so the description does not compensate for the coverage gap at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment names the resource (product feeds) and hints at the returned attributes (status, item count, update time), so an agent can infer it is a list operation. However, there is no verb and no differentiation from the many sibling list tools (webmaster_list_feeds, direct_list_campaigns, etc.), leaving the exact scope ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Read-only' is a safety trait, not usage guidance. Nothing states when to call this versus webmaster_list_feeds or webmaster_get_feed, and no preconditions or context of use are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_leadsARead-onlyIdempotent
Turbo page leads metadata by TurboPageIds; form data (PII) only with include_data=true. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| include_data | No | ||
| turbo_page_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so safety is covered structurally. The description adds the non-obvious behavioral fact that form data is PII-gated behind include_data=true, which an agent could not infer from annotations or schema defaults (include_data defaults to false). It does not mention pagination behavior or result size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence plus a short read-only assertion; the PII caveat is front-loaded alongside the filter. 'Read-only' duplicates the readOnlyHint annotation and is the only non-earning clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Every required element for a correct call is present: the filter input, the PII gate, and the read-only nature. An output schema exists so return values needn't be described, and the only real gap is pagination/limit guidance for a tool that defaults to limit=500.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. It does explain turbo_page_ids (filter key) and, crucially, why include_data matters (PII exposure), but limit and offset — both with defaults — get no explanation of range, ordering, or pagination semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (Turbo page leads) and the filter dimension (TurboPageIds), which separates it from the adjacent direct_list_turbo_pages. It doesn't explicitly name that sibling as an alternative, so the differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'form data (PII) only with include_data=true' tells the agent when the sensitive mode applies, which is real conditional guidance. However, there is no when-to-use vs when-not-to-use framing against siblings such as direct_list_turbo_pages, so usage remains implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_negative_keyword_setsCRead-onlyIdempotent
Shared negative keyword sets by Ids (required by the API). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so 'Read-only' merely repeats structured data. The description adds nothing about pagination behavior (limit/offset defaults of 500/0) or ordering, which are the meaningful behavioral gaps here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the resource, but it reads as an under-specified fragment rather than an efficiently complete statement. The parenthetical '(required by the API)' is noise that adds confusion instead of value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. Still, for a 3-parameter read tool with 0% schema coverage, the description leaves the ids/limit/offset semantics and their interaction unexplained, and it misstates the requiredness of ids.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning but only hints at 'Ids'. Worse, it claims Ids are 'required by the API' while the schema marks ids optional with default null and lists zero required parameters, which is misleading. limit and offset are entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('shared negative keyword sets') filtered by Ids, which distinguishes it from the many other direct_list_* siblings (campaigns, sitelinks, creatives). However it is a noun phrase with no explicit verb, so the 'list' action is only inferred from the tool name rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternative tools or conditions. The agent gets no signal about when this is preferred over other listing endpoints or how to reach it via prepare/apply flows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_retargeting_listsCRead-onlyIdempotent
Retargeting and audience-selection lists (Id, Type, Name, IsAvailable). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so 'Read-only' adds no new behavioral information. The description discloses no pagination behavior despite limit/offset parameters, and the field list it provides is return-shape detail rather than operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single compact sentence plus a fragment, with the resource named first and no wasted words. The brevity is appropriate even if the content is thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but with three undocumented parameters (including paging controls) and no usage context, the definition leaves an agent guessing how to call it correctly. For a read-only list tool with defaults of limit=500 and offset=0, more guidance is warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters (ids, limit, offset), and the description never mentions any of them. The listed fields (Id, Type, Name, IsAvailable) describe output entities, not the input parameters, so the description does not compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (retargeting and audience-selection lists) and its returned fields, so an agent can tell it apart from unrelated list tools such as direct_list_creatives. However, it never explicitly names a verb and offers no differentiation from close siblings like direct_list_audience_targets or audience_list_segments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no pointer to alternative tools for overlapping list needs. The agent must infer usage context 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_list_sitelinksCRead-onlyIdempotent
Sitelink sets (Id + Title/Href/Description). Optional Ids filter. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, and 'Read-only' merely restates that. The description adds no behavior beyond the annotations: no pagination semantics, no result-set size behavior, no note on what the limit default of 500 implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three terse fragments are front-loaded and easy to scan, but 'Read-only' is pure repetition of the annotations and the field enumeration duplicates the output schema, so not every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with rich annotations and an existing output schema, return values and safety need not be explained, so the core is covered. However, two of three parameters and all pagination behavior are left undocumented, which is a real gap for a listing tool that defaults to 500 items.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter burden, yet it only addresses ids ('Optional Ids filter'). limit and offset are never mentioned, so an agent gets no statement about pagination or what the defaults mean.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (sitelink sets) and enumerates the returned fields (Id, Title, Href, Description), so an agent knows exactly what it retrieves. It lacks an explicit verb, but the 'direct_list_' prefix plus the field enumeration makes the intent unambiguous and clearly distinct from the other list siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Optional Ids filter' is the only guidance and it is about a parameter, not about when to choose this tool over alternatives. There is no when-to-use, when-not-to-use, or named alternative anywhere in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_smart_ad_targetsCRead-onlyIdempotent
Smart-banner feed filters (SmartAdTargets) by campaign/group/id. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No | ||
| ad_group_ids | No | ||
| campaign_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint, and the description's 'Read-only' simply restates that. It says nothing extra about pagination behavior, how filters combine, limits on the id arrays, or dataset size — the kind of context that would add value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, resource and filter axes front-loaded with no padding. The trailing 'Read-only' sentence is redundant with the annotations, a small waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, fully undocumented schema, the description should clarify filter combination rules and pagination expectations. An output schema exists so return values need not be explained, but the query-construction gaps leave an agent guessing how to build a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 5 parameters. The description maps 'campaign/group/id' to campaign_ids, ad_group_ids and ids, but omits limit and offset entirely and gives no semantics for the array filters (combined with AND? mutually exclusive? empty means no filter?). Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource precisely (SmartAdTargets / smart-banner feed filters) and the dimensions it filters on (campaign/group/id), so an agent can tell it apart from the adjacent direct_list_dynamic_feed_ad_targets. It relies on the tool name for the verb rather than stating 'list' explicitly, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no statement of prerequisites, and no explicit routing to or away from the dynamic-feed or audience-target siblings. 'Read-only' hints at safe retrieval but does not tell the agent when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_strategiesARead-onlyIdempotent
List Direct shared (portfolio) strategies via Strategies.get v501 with paging. For a campaign's own strategy use direct_get_campaign; type-specific fields via direct_get_inventory service=strategies. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| archived | No | ||
| strategy_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld and non-destructive, so the safety profile is covered; the description adds 'with paging' and the concrete API version, which are real behavioral facts beyond the annotations. It stops short of stating default page size behavior or whether strategy_ids/archived are applied server-side.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, front-loaded with the core operation, followed immediately by the routing alternatives. No filler sentences and nothing redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations cover safety. However, for a paged, filter-capable list tool with four undocumented parameters, the absence of any filter/paging semantics leaves a meaningful gap in what an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 4 parameters, so the description must carry the semantics and largely does not. 'With paging' loosely implies limit/offset, but the `archived` YES/NO filter and the `strategy_ids` selector — the two parameters that most affect the result set — are never explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('List Direct shared (portfolio) strategies') and even names the underlying API call (Strategies.get v501), which disambiguates it from the many other list_* siblings. An agent can identify the exact operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes two neighboring needs to alternatives: a campaign's own strategy goes to `direct_get_campaign`, and type-specific fields go to `direct_get_inventory` with service=strategies. That is clear when-not-to-use guidance, though it does not state the positive trigger condition (e.g., 'use this when you need portfolio-level strategies across campaigns') or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_list_turbo_pagesCRead-onlyIdempotent
Turbo pages (Id, Name, Href); use Id for direct_list_leads. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=true, and the description's 'Read-only' simply restates that. The field enumeration (Id, Name, Href) is already conveyed by the output schema, so nothing beyond structured data is added – no mention of pagination behavior, total counts, or scope of the list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact line with the payload shape front-loaded and the cross-tool hint second. Every clause is short and readable, though the semicolon-packed style leaves no room for the missing parameter/pagination context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but with 3 undocumented parameters at 0% coverage and only annotations covering safety, the definition omits how to filter (ids) and page (limit/offset) – essential operational detail for a list endpoint that can return up to 500 records.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for `ids`, `limit` (default 500) and `offset` (default 0). It never mentions filtering by ids or pagination, leaving an agent to guess from parameter names alone; only the 'use Id for direct_list_leads' phrase hints that ids are entity identifiers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource (Turbo pages) and enumerates the returned fields (Id, Name, Href), and points to the sibling consumer `direct_list_leads`, so the agent can tell what it retrieves and where its output goes. It lacks an explicit verb, but 'list_turbo_pages' plus the field list is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one concrete downstream usage rule ('use Id for direct_list_leads'), which is genuinely helpful routing. It does not say when to call this tool versus other list siblings, nor any prerequisites (agency client, account scope); 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.
direct_prepare_changesA
Draft a Direct change set and open an unaccepted, expiring approval.
The draft carries a diff hash and an approval_id. A human must accept the
approval before direct_apply_changes can execute it.
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations flagging readOnly=false, idempotent=false, destructive=false, the description adds meaningful context the annotations cannot: the draft is unaccepted and expiring, it carries a diff hash and approval_id, and execution is gated on human acceptance. It stops short of describing failure modes or what invalidates the draft.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and followed by the lifecycle constraint. No filler and nothing redundant across the sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The approval lifecycle is well covered and an output schema exists so return values need no explanation. However, the complete absence of documentation for the `changes` payload — the one thing the caller must construct — leaves a significant gap for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter `changes` is an untyped array of free-form objects with 0% schema description coverage, and the description says nothing about its shape or contents. A mutation tool whose only input is opaque leaves the agent guessing at what a valid change set looks like.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Draft a Direct change set and open ... approval') and explicitly distinguishes the operation from its executor by naming `direct_apply_changes`. An agent can tell this is the prepare/draft half of a two-step flow without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context: use this to draft, then a human must accept the approval before `direct_apply_changes` executes. It names the dependent tool and the gating condition, but gives no explicit when-not guidance or differentiation from sibling prepare flows like `direct_prepare_write`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_prepare_writeB
Open an approval for one allowlisted Direct write (any service/method; yandex://guide/prepare-apply).
Bound to service, method, items, account and endpoint. Nothing is sent.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| method | Yes | ||
| service | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false, idempotentHint=false). The description adds genuinely useful context beyond that: 'Nothing is sent' clarifies that despite looking like a write it is purely preparatory, and the 'allowlisted' constraint plus account/endpoint binding disclose scoping behavior. It still omits approval lifetime, what consumes the approval, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core action and immediately followed by the key 'Nothing is sent' guarantee. No filler, though the account/endpoint clause adds a small amount of ambiguity for parameters not present in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. For a 3-parameter, prepare-phase operation with 0% param coverage and no annotations about auth/prerequisites, the description is adequate about intent but leaves meaningful gaps in parameter meaning and the prepare→apply handshake.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter burden. It names service, method and items (plus account/endpoint, which aren't surface parameters) but explains none of their semantics or formats — 'items' is an untyped array of free-form objects with no guidance on shape, and 'allowlisted' is never defined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Open an approval for one allowlisted Direct write'. The prepare/apply split is hinted at via 'yandex://guide/prepare-apply', which implies the counterpart apply tool. It stops short of naming direct_apply_write explicitly, so sibling differentiation is inferential rather than direct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Open an approval for one allowlisted Direct write' plus 'Nothing is sent' implies this is the first step before an apply. However, the crowded sibling set (direct_prepare_changes, direct_write, direct_apply_write, direct_apply_changes) is not differentiated, and no explicit when/when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_writeBDestructiveIdempotent
Idempotent non-destructive Direct write (no deletes or bid changes: use direct_prepare_write) behind the server write flag and audit log. Prefer direct_prepare_changes -> direct_apply_changes for campaign changes. Writes; spends units; confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| method | Yes | ||
| service | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description asserts the write is 'non-destructive', while the annotations declare destructiveHint: true. That is a direct, safety-relevant conflict: an agent could reasonably believe an irreversible mutation is impossible. Although the description does add useful context (server write flag, audit log, unit spend, user confirmation), the contradiction on the destructive axis is exactly what the rubric penalizes at 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences: what it is, where it sits (write flag/audit log), which alternatives to prefer, and the confirmation caution. Dense but every clause carries weight, and the constraints come before the routing advice. Minor deduction for parenthetical nesting that makes the first sentence harder to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description does cover the operational envelope (write flag, audit log, unit cost). However, for a tool whose entire behavior is determined by arbitrary service/method/items, the parameter space is entirely undocumented, and the 'non-destructive' claim leaves the actual blast radius of a call ambiguous alongside destructiveHint: true.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 4 parameters (service, method, items, idempotency_key) and the description adds nothing about any of them. For a generic pass-through write, the agent gets no guidance on valid service/method values, the shape of items, or how idempotency_key should be used. The description must compensate for the zero-coverage schema here and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a verb (write) and a resource (Direct), and explicitly carves its scope against siblings: no deletes or bid changes (direct_prepare_write), campaign changes preferred via direct_prepare_changes -> direct_apply_changes. What it does not clarify is that it is essentially a pass-through write taking arbitrary service/method/items, so 'Direct write' remains somewhat abstract. The sibling differentiation is genuinely strong, hence a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit alternatives with the conditions that select them: direct_prepare_write for deletes/bid changes, and the prepare→apply pair for campaign changes. It also adds a procedural guardrail ('confirm with the user first'), which is exactly the kind of usage instruction an agent needs before a write. Nothing about routing 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.
metrika_apply_goalBDestructiveIdempotent
Autonomously create or update a Metrika goal (idempotent, readback).
Deleting a goal needs a human approval: metrika_manage_prepare(operation='goal_delete').
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| goal_id | No | ||
| operation | Yes | ||
| counter_id | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=true, and openWorldHint=true, so the description's 'idempotent' adds nothing. 'readback' is a genuine extra signal (the write is followed by a state read), but what it returns or what an update overwrites is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action front-loaded and the routing constraint second. Minimal waste, though the parenthetical '(idempotent, readback)' is a dense aside rather than earned prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, with a mutation tool carrying four annotation hints, 5 undocumented parameters, and an undefined 'operation' string, the description is too thin to let an agent call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, so the description must carry the load and does not. 'operation' is a free-form string with no enum and no listed values for this tool, and counter_id, goal_id, params, and idempotency_key are never explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair and resource: 'create or update a Metrika goal', which distinguishes it from the read/prepare siblings. It does not explicitly contrast itself against metrika_manage_apply or the prepare tools, but the verb+resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear exclusion: deletion is not done here and must route through metrika_manage_prepare(operation='goal_delete') with human approval. That names the alternative for one case, though it gives no guidance on when to prefer this over metrika_manage_apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_get_offline_conversion_uploadBRead-onlyIdempotent
Status of one offline conversion upload (processing can take up to 3 hours). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| counter_id | Yes | ||
| uploading_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so 'Read-only' in the description adds nothing. The genuinely additive detail is the up-to-3-hour processing window, which tells the agent to expect a pending/async state rather than an error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the core purpose front-loaded and the latency caveat appended. The trailing 'Read-only' is redundant against the annotations and could be dropped without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the latency hint covers the main async caveat. The gap is parameter meaning: for a tool keyed by two required ids, the description contributes nothing about them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description says nothing about counter_id or uploading_id. The names are somewhat self-describing, but with two required identifiers undocumented in both schema and prose, an agent gets no confirmation of which counter or upload id is expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get status) and resource (one offline conversion upload), which cleanly separates it from sibling list/upload/validate tools in the same family. It does not explicitly name those siblings, so an agent must infer the distinction from the resource name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'processing can take up to 3 hours' implies this is a polling endpoint to use after an upload, which is useful implied guidance. However, it never states when to prefer this over metrika_list_offline_conversion_uploads or what to do on a still-processing result.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_get_statisticsCRead-onlyIdempotent
Run a bounded read-only Metrika reporting request.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered by structured data. The description's only addition is the word "bounded", implying a limited/constrained request, but it never explains what the bound is (date range? row cap? quota?). Minor added value over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler, which is structurally clean. However, one vague clause is far too little for a tool whose only parameter is an undocumented free-form object, so the terseness is under-specification rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values do not need explaining, which lightens the burden. But the tool has a nested, entirely undocumented params object and an unqualified name overlapping with metrika_report, and the description addresses neither. It is not complete enough for an agent to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter, "params", which is a bare object with additionalProperties:true and zero property definitions or descriptions (0% schema coverage). The description says nothing about what keys the params object accepts. The agent is left with no information whatsoever on how to construct the call, so the description fails to compensate for the opaque schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a verb and resource ("Run ... Metrika reporting request") and qualifies it as read-only and bounded, so the general domain is clear. But it never says which statistics or metrics are returned, and it does nothing to distinguish itself from the obvious sibling metrika_report (or direct_get_statistics). An agent cannot tell from this sentence which reporting 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Bounded" hints at a constrained scope but gives no explicit condition for when to use this instead of metrika_report, nor any exclusions or prerequisites. There is no routing guidance at all despite several reporting siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_list_countersBRead-onlyIdempotent
List Metrika counters through a server-side read-only credential.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds one genuinely new behavior detail — that access flows through a server-side read-only credential — which is useful auth context but is the only thing it contributes beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the verb and resource, with no filler. It is as short as it can be while still naming the resource, though at this length it 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and annotations cover the safety profile, the description need not explain return values. Still, for a zero-param listing call it omits any scope, pagination, or result-size context, leaving an agent to discover the shape of the listing by trial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which by the rubric sets a baseline of 4. There is no parameter surface for the description to clarify, so nothing is lost.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('Metrika counters'), which is unambiguous on its own. It does not, however, distinguish itself from nearby siblings such as metrika_list_goals or metrika_get_statistics, so an agent must infer the difference from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use condition, no prerequisites, and never names an alternative. The phrase 'server-side read-only credential' hints at an environment constraint but says nothing about when this tool is the right pick over the other metrika_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_list_goalsCRead-onlyIdempotent
List goals for one positive Metrika counter id.
| Name | Required | Description | Default |
|---|---|---|---|
| counter_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds only the vague 'positive' qualifier and discloses nothing else (no pagination, no auth/scope requirements), which is thin for a tool whose annotations do most of the work.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though the 'positive' phrasing is slightly imprecise rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations cover safety. What remains missing is sibling differentiation and any concrete guidance on the counter_id value, which is the only input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 0% schema description coverage, so the description must compensate. It identifies the key as a 'Metrika counter id' and hints it must be 'positive'/'one', but the schema types it as a string, leaving format ambiguity unresolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'List goals' is a specific verb+resource, and 'for one positive Metrika counter id' scopes it to a single counter. Sibling metrika_apply_goal does something different, but the description never explicitly contrasts with it, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternatives named. An agent choosing between metrika_list_goals vs metrika_list_counters, metrika_apply_goal, or direct_get_goal_statistics gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_list_offline_conversion_uploadsCRead-onlyIdempotent
List offline conversion uploads of a counter (id, status, line counts, type). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| counter_id | Yes | ||
| conversion_type | No | BASIC |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
'Read-only' merely restates readOnlyHint=true and adds nothing the annotations do not already declare. The parenthetical field list is the only extra behavior surfaced, and with an output schema present even that is largely redundant. No pagination, ordering, or scope behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with the main verb and resource leading and no filler. Every clause maps to tool behavior, and the read-only marker is placed last where it belongs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool backed by annotations and an output schema, the description covers the core purpose adequately. It falls short on pagination semantics, filtering behavior for conversion_type, and any routing against sibling metrika tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter burden. It alludes to the counter (counter_id) and to a 'type' (conversion_type) but says nothing about limit/offset pagination or valid conversion_type values, leaving half the parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List offline conversion uploads of a counter') and even names the returned item shape (id, status, line counts, type). It is clearly distinguishable from metrika_get_offline_conversion_upload (singular) and metrika_upload_offline_conversions, but it never explicitly names those siblings or draws the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative guidance. 'Read-only' hints at the safe-read context but that is already carried by annotations, and nothing routes the agent between this tool and metrika_get_offline_conversion_upload or metrika_validate_offline_conversions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_logs_cleanupADestructiveIdempotent
Free Logs API quota: action=clean deletes prepared files of a processed request, cancel stops an unprocessed one. Irreversible; confirm first; needs YANDEX_METRIKA_LOGS_ENABLED.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | clean | |
| counter_id | Yes | ||
| request_id | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds genuinely new behavioral facts: the operation is irreversible, requires confirmation, and depends on an environment flag being enabled. That is useful context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence front-loads the purpose and packs action semantics, irreversibility, and the prerequisite into terse clauses with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the description covers the mutation's danger and prerequisites. The remaining gap is the unexplained identity parameters, which an agent must still infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema defines no enums, yet the description supplies the two meaningful action values ('clean' vs 'cancel') and their distinct effects, which the schema does not. counter_id, request_id, and idempotency_key remain unexplained, so it only partially compensates for the documentation gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (deletes/stops) and resource (prepared files / unprocessed request) and explains that the goal is freeing Logs API quota. It is clear what the tool does, though it does not name a sibling tool to contrast against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a context signal (freeing Logs API quota) plus prerequisites ('needs YANDEX_METRIKA_LOGS_ENABLED') and a caution ('confirm first'). However, it never says when to choose this over siblings like metrika_logs_create or metrika_logs_list, so routing 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.
metrika_logs_createAIdempotent
Create a Metrika Logs API export (spends the 10 GB per-counter quota). Run metrika_logs_evaluate and confirm with the user first; needs YANDEX_METRIKA_LOGS_ENABLED. Idempotent by key; then poll metrika_logs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| date1 | Yes | ||
| date2 | Yes | ||
| fields | Yes | ||
| source | Yes | ||
| counter_id | Yes | ||
| attribution | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=true, destructive=false, and openWorld=true. The description adds genuinely useful context beyond those: the export consumes the 10 GB per-counter quota, requires an env flag, requires user confirmation, and is idempotent by key. What's missing is any note on quota exhaustion consequences or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact clauses, front-loaded with the cost and prerequisite before the workflow pointer. No sentence is wasted, and the density suits a tool whose surrounding steps matter as much as the call itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be described, and the description covers the essential operational facts (quota, env flag, prerequisite evaluation, follow-up poll). The remaining gap is parameter guidance, which is thin for a 7-parameter write with no schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters (5 required), so the description must carry the burden. It only hints at `idempotency_key` via 'Idempotent by key' and leaves date1, date2, source, fields, counter_id, and attribution completely unexplained, including format expectations for the date range and source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (Metrika Logs API export), which cleanly separates it from sibling readers like metrika_logs_list and metrika_logs_get. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly prescribes the workflow: run `metrika_logs_evaluate` and confirm with the user first, then poll `metrika_logs_get` afterwards. It also names the enabling condition (YANDEX_METRIKA_LOGS_ENABLED). When-to-use and surrounding steps are fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_logs_download_partBRead-onlyIdempotent
Preview one processed Logs API part as columns + up to max_rows (<=1000) rows; truncated=true if more. For full exports download outside chat. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| max_rows | No | ||
| counter_id | Yes | ||
| request_id | Yes | ||
| part_number | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive, and the description adds genuinely new output behavior: the row cap (max_rows <=1000) and the truncated=true signal when more rows exist. "Read-only" merely repeats the annotation, but the truncation contract is real value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences plus a trailing "Read-only." The key information (what it previews, the row cap, truncation behavior) is front-loaded with no wasted words. Slightly hurt by the redundant read-only clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only 4-param tool with an output schema, the description sufficiently covers the output contract and row limits, so return values needn't be explained. But the two required identifying parameters (counter_id, request_id) remain undefined, leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage across 4 parameters, the description carries the full burden. It adds a real bound for max_rows (<=1000) and hints at part_number via "one processed Logs API part", but counter_id and request_id go 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (preview/download) and resource (one processed Logs API part) with the returned shape (columns + rows). It distinguishes itself from full exports, though it never names the closest siblings like metrika_logs_get or metrika_logs_list, so an agent gets the purpose but not the precise sibling routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"For full exports download outside chat" implies this tool is for in-chat previewing rather than full retrieval, which is useful context. However there is no explicit when-to-use guidance against metrika_logs_get/list/evaluate, leaving the choice among the logs family to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_logs_evaluateARead-onlyIdempotent
Check whether a Metrika Logs API export fits the counter quota (possible, max days). Use before metrika_logs_create. source=visits (ym:s:) or hits (ym:pv:); date2 before today. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| date1 | Yes | ||
| date2 | Yes | ||
| fields | Yes | ||
| source | Yes | ||
| counter_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so "Read-only" is largely redundant. The description does add genuinely useful constraints beyond the annotations: the date2-must-precede-today rule and the source naming conventions, which tell the agent when a call is invalid rather than just safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Terse and front-loaded: the purpose and the ordering cue lead, with constraints trailing. Every clause is informative, though the trailing "Read-only" is redundant against the annotations and could be dropped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-format explanation is not required, and the workflow placement and date2/source rules are covered. Still, with five required parameters and zero schema descriptions, an agent has no guidance on date1, counter_id, or the fields array, leaving a real gap for a tool that must be called correctly before create.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden, and it partially discharges it: source values (visits=ym:s:*, hits=ym:pv:*) and the date2 constraint are supplied. However, date1, counter_id, and fields receive no explanation anywhere, so the schema-side gap is only partly compensated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check) on a specific resource (whether a Metrika Logs export fits the counter quota) and adds the concrete outcome (possible, max days). It also names the sibling it precedes, metrika_logs_create, so the agent can place it in the workflow without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use before metrika_logs_create" gives an explicit trigger condition and names the alternative it gates. It does not contrast against metrika_logs_list/get, but the ordering guidance is unambiguous for the primary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_logs_getBRead-onlyIdempotent
Status and parts of one Logs API request; poll until status=processed, then metrika_logs_download_part. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| counter_id | Yes | ||
| request_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so "Read-only" merely repeats structured data and earns no credit. What the description does add beyond the annotations is the polling semantics ('poll until status=processed'), which is genuinely useful asynchronous-workflow context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the key routing instruction packed in via semicolon and inline code formatting. No filler, though the density borders on cryptic for a tool with undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the critical poll-then-download workflow is covered. However, with 0% schema coverage the two required identifiers are left unexplained, and nothing is said about request lifetime or what statuses other than processed mean.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both required parameters. The description implies request_id identifies a Logs API request and counter_id a counter, but it never explains their format, relation, or whether counter_id must belong to the same account. It 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (one Logs API request) and what it returns (status and parts), and names the follow-up sibling `metrika_logs_download_part`. The verb is implicit rather than stated outright, but an agent can distinguish it from metrika_logs_list and metrika_logs_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete workflow: poll until status=processed, then call `metrika_logs_download_part`. That names the alternative and the condition that selects it. It stops short of saying when not to use this tool or what to do on failure/expired requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_logs_listBRead-onlyIdempotent
List Logs API requests of a counter with status (created, processed, canceled...) and parts. Use to find request_id. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| counter_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the appended 'Read-only' is largely redundant. The value added is the enumeration of status values (created, processed, canceled), which hints at the lifecycle state space, but nothing is said about pagination, filtering, or result scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with purpose and scope, with no filler. The trailing 'Read-only' is slight padding since annotations already state it, but overall it is tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the single-parameter surface keeps the burden low. Still, for a read-only listing tool the description omits the counter_id meaning and any filtering/paging behavior, which is more than the annotations alone resolve.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema documents only the name and type of counter_id. The description never explains what a counter_id is, where to obtain it (e.g., metrika_list_counters), or its format, leaving the sole required parameter's semantics to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('List Logs API requests of a counter') and enumerates the returned dimensions (status, parts), so an agent knows what it retrieves. It does not explicitly contrast itself with close siblings like metrika_logs_get or metrika_logs_download_part, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use to find request_id' gives one concrete use case, which is more than nothing. However, with five log-related siblings, it offers no when-not guidance and never names the alternative to pick for retrieving or downloading a specific request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_manage_applyBDestructiveIdempotent
Execute an accepted Metrika write once (write flag, approval_id, idempotency_key), then read back. Same key replays the stored result. Writes.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes | ||
| approval_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds real mechanism beyond that: the same idempotency key 'replays the stored result' and the tool reads back after executing, which explains the idempotency contract rather than just repeating the hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences front-load the action and the idempotency contract with no padding. The trailing fragment 'Writes.' is terse to the point of being cryptic, but the core content is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations cover the mutation safety profile. Still, for a destructive, open-world write with 0% schema coverage, the unexplained 'operation' and 'args' parameters leave a real gap in what can actually be invoked.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the burden, but it only names approval_id and idempotency_key (and a 'write flag' that does not map to any schema property). The 'operation' and 'args' parameters are never explained, leaving half the parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Execute') and resource ('an accepted Metrika write') and frames it as the apply step of a prepare/apply workflow. It implies differentiation from metrika_manage_prepare/reconcile, but never names those siblings explicitly, so the distinction is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Accepted' and 'once' imply the write must first be prepared and approved before this is called, giving implied usage context. However, it never states when to use this versus metrika_manage_prepare, metrika_manage_reconcile, or metrika_manage_read, leaving the routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_manage_prepareA
Open an approval for one allowlisted Metrika write/upload (args: ids, query, body, csv). Bound to principal, account and exact request; nothing is sent.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), and the description adds real context beyond them: the approval is 'bound to principal, account and exact request' and 'nothing is sent,' clarifying that a write-intent tool has no side effects at this stage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence front-loads the action and gating semantics, then parenthetically lists the arg keys. No filler, though the arg list is terse enough to be ambiguous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, but with 0% schema coverage and no enum on 'operation', the description leaves the most important input (which allowlisted operation) undocumented for a mutation-adjacent gate tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must do the work. It partially compensates by enumerating the expected args keys (ids, query, body, csv), but the required 'operation' parameter is left unspecified — no allowed value set is given, so an agent cannot know which operation strings are valid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Open an approval for one allowlisted Metrika write/upload.' The clause 'nothing is sent' implicitly separates it from metrika_manage_apply/reconcile, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'prepare'/'nothing is sent' — an agent can infer this precedes an apply step — but there is no explicit when-to-use, when-not, or named alternative among metrika_manage_read/apply/reconcile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_manage_readBRead-onlyIdempotent
Documented Metrika management/report reads by operation name; args = path ids, query{...}. operation='catalog' lists all operations with docs (local). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds two real facts beyond the annotations: the args shape (path ids + query{...}) and that 'catalog' runs locally, neither of which is in the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence pair, front-loaded with the purpose and mechanism before the discovery hint. Dense but every clause carries information; the semicolon-compressed arg syntax is slightly terse but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the catalog hint covers discovery. However, for a generic open-world dispatcher with an unconstrained 'operation' string, more guidance on naming conventions or the doc/catalog relationship would be needed to call it confidently without first probing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description is the only documentation source, but it only sketches args ('path ids, query{...}') and mentions one valid operation value ('catalog'). The large open string space for 'operation' is left almost entirely unspecified, so it compensates only partially.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Metrika management/report reads') plus the dispatch mechanism ('by operation name'), which lets an agent distinguish it from the prepare/apply/reconcile write-side siblings of the same 'manage' family. It stops short of naming those siblings explicitly, so the differentiation is implied by 'Read-only' rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers a concrete discovery path via operation='catalog', which is genuinely actionable, but never says when to prefer this tool over metrika_report, metrika_get_statistics, metrika_manage_prepare, or metrika_manage_apply. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_manage_reconcileBIdempotent
Settle an uncertain Metrika management write by reading the provider; never resends.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false and openWorldHint=true, so much of the safety profile is structured. The description does add a trait beyond the annotations: reconciliation is achieved 'by reading the provider' and the tool 'never resends' the write, clarifying the mechanism. It still says nothing about required auth, rate limits, or what state it mutates when the provider read disagrees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding; the mechanism ('by reading the provider') and the key guarantee ('never resends') come before anything else. Efficient, though arguably under-developed for a three-parameter management tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but the definition omits the two required parameters' meaning, the valid 'operation' values, and how this fits with metrika_manage_prepare/apply. For a write-family reconciliation tool with 0% schema coverage, that leaves the agent guessing at invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters, and the description never mentions 'operation', 'idempotency_key' or 'args'. 'never resends' gestures at idempotency semantics but gives no key format, no valid operation values, and no explanation of when args are needed — 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb+resource combination ('Settle an uncertain Metrika management write') is specific and places the tool in the prepare/apply/reconcile family alongside metrika_manage_read, metrika_manage_prepare and metrika_manage_apply. An agent can tell it apart from the read/prepare/apply siblings without opening the schema, though 'settle' is slightly jargon-y.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trigger condition is implied ('an uncertain Metrika management write'), so an agent can infer this runs after an apply whose outcome is unknown. However, no sibling is named as the alternative and there is no explicit when-not-to-use guidance (e.g. 'do not use for a fresh write — use metrika_manage_apply').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_reportARead-onlyIdempotent
One-call Metrika report with optional period comparison (compare_date1/2): totals, abs/% deltas, sampling info, JSON or CSV. Use for period-over-period analysis; raw params via metrika_get_statistics. <=12 metrics, 5 dimensions, 93 days. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| date1 | Yes | ||
| date2 | Yes | ||
| output | No | json | |
| filters | No | ||
| metrics | Yes | ||
| max_pages | No | ||
| page_size | No | ||
| counter_id | Yes | ||
| dimensions | No | ||
| compare_date1 | No | ||
| compare_date2 | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real context beyond that: hard limits (<=12 metrics, 5 dimensions, 93 days), output formats, and sampling info being surfaced. Pagination behavior (max_pages/page_size) is not disclosed, which is the remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the main purpose and densely packed with limits, formats, and the alternative tool. Every clause carries information, though the terse punctuation-separated style is slightly harder to parse than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, and annotations cover the safety profile. However, with 12 params at 0% schema coverage, the omission of filters, sort, and pagination semantics leaves the definition short of what an agent needs to invoke it fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 12 params, so the description carries the burden. It clarifies compare_date1/compare_date2 semantics, the output format (JSON/CSV), and metric/dimension caps, but leaves filters, sort, max_pages, page_size, and date formats undocumented, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('One-call Metrika report') and enumerates what it returns (totals, abs/% deltas, sampling info, JSON or CSV). It explicitly distinguishes itself from the sibling metrika_get_statistics for raw params, so an agent can route without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use ('Use for period-over-period analysis') and names the alternative tool plus the condition that selects it ('raw params via metrika_get_statistics'). Nothing is left to inference about which of the two report tools to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_upload_offline_conversionsAIdempotent
Upload offline conversions to Metrika (affects goal stats and Direct optimisation). Needs the hash from metrika_validate_offline_conversions, user confirmation and YANDEX_METRIKA_WRITE_ENABLED.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | ||
| counter_id | Yes | ||
| conversions | Yes | ||
| conversion_type | No | BASIC | |
| idempotency_key | Yes | ||
| confirmation_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, but the description adds genuine non-structured context: this write mutates goal statistics and feeds Direct optimisation, requires a confirmation hash, user confirmation, and a feature flag. It does not cover retry/failure behavior despite the idempotency key, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the action and then the prerequisites, with no filler. It is packed but each clause carries needed information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the prerequisites are well covered. However, for a data-upload tool with 0% schema coverage, the absence of any guidance on the conversions payload structure and idempotency_key usage is a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, so the description must compensate, yet it only explains confirmation_hash indirectly. counter_id, conversions (an untyped array of free-form objects), idempotency_key, conversion_type and comment receive no meaning in either schema or description, leaving the payload shape entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (upload offline conversions to Metrika) and adds the downstream effect on goal stats and Direct optimisation. It also names the sibling metrika_validate_offline_conversions as the source of the required hash, so an agent can tell it apart from that tool without reading either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete preconditions: the hash must come from metrika_validate_offline_conversions, user confirmation is required, and YANDEX_METRIKA_WRITE_ENABLED must be set. That effectively routes the agent to validate first. It does not state any when-not-to-use condition, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_validate_offline_conversionsARead-onlyIdempotent
Validate offline conversion rows locally (Target, DateTime past Unix secs, one of UserId/ClientId/Yclid/PurchaseId, Price, Currency); returns CSV preview + confirmation_hash. No API call.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | ||
| counter_id | Yes | ||
| conversions | Yes | ||
| conversion_type | No | BASIC |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/local (openWorld=false), so the safety profile is covered. The description usefully adds that processing is local with no API call and that it returns a CSV preview plus a confirmation_hash, which is genuine behavioral context beyond the annotations; it stops short of auth/rate-limit detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb first and details consolidated into a tight parenthetical. Dense but every clause earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described (though it helpfully mentions the preview and hash). For a 4-param validation tool with rich annotations, the main gap is that top-level parameters like counter_id and conversion_type are never addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the parameter burden, and it does enumerate the row-level fields (Target, DateTime, UserId/ClientId/Yclid/PurchaseId, Price, Currency). But those are nested item fields, not the declared top-level parameters (counter_id, conversions, conversion_type, comment), so several required/optional params remain undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Validate offline conversion rows') and specifies the validation is done 'locally', listing the concrete fields checked. It implicitly separates itself from the sibling metrika_upload_offline_conversions via 'No API call' but never names that alternative, so differentiation is implied 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context is given: validation happens locally with no API call, and the returned confirmation_hash signals the intended follow-up (upload) workflow. However, it never explicitly names metrika_upload_offline_conversions as the next step or states when to prefer this over the upload/list siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_apply_recrawlBIdempotent
Submit one accepted URL exactly once. Uncertain POSTs are reconciled without retransmission.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| host_id | Yes | ||
| approval_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, readOnlyHint=false and openWorldHint=true. The description adds real value beyond them: the single-submission contract and the explicit retry rule for uncertain POSTs (reconcile instead of retransmit), which is exactly the behavioral nuance an agent needs on a networked write. It omits any mention of auth/approval prerequisites, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and followed by the retry caveat; no filler. It is efficient, though the extreme brevity is arguably under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, this is an open-world mutation taking four required inputs, and the description never explains the approval flow that produces approval_id or the role of host_id and idempotency_key. It covers the retry hazard but leaves the invocation prerequisites incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all four parameters are required, so the description must carry the meaning. It only obliquely explains url ('accepted URL') and approval_id ('accepted'), and says nothing about host_id or idempotency_key. Three of the four parameters remain unexplained anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Submit' and the object 'one accepted URL' convey that this applies a previously accepted recrawl request, but the word 'recrawl' never appears in the description and 'accepted' is left undefined. An agent must infer from the tool name and the approval_id parameter that this is the apply step of a prepare/apply recrawl flow. It is not clearly distinguished from siblings like webmaster_prepare_recrawl or webmaster_reconcile_action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Submit ... exactly once' and 'Uncertain POSTs are reconciled without retransmission' give implicit retry guidance: on an ambiguous outcome, reconcile rather than re-POST. That is useful inferred usage, but the description never names webmaster_reconcile_action, nor does it state the prerequisite that the URL must first pass a prepare/approval step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_apply_sitemapCIdempotent
Submit one accepted sitemap with a durable key and registration readback.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| host_id | Yes | ||
| approval_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a write (readOnlyHint=false), idempotent, non-destructive, and open-world. Beyond that, the description adds real context: 'one' bounds the scope to a single sitemap, 'accepted' signals a precondition, and 'registration readback' implies the call returns confirmation state. It still omits permission requirements and what happens on a rejected/unaccepted submission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first and zero filler. The compression is tight to the point that 'durable key and registration readback' reads as jargon, slightly hurting clarity, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation. However, for a 4-parameter mutation with 0% schema coverage, the description leaves host_id and the approval workflow step unaddressed and gives no error or precondition detail, making it thin for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four undocumented parameters, so the description must carry the load. 'Durable key' loosely maps to idempotency_key and 'accepted' gestures at approval_id, but format, source, and the meaning of host_id are never addressed, leaving the mapping largely implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Submit) and resource (sitemap) with a single-item scope indicator ('one'). The qualifier 'accepted' implicitly ties it to the prepare/approval phase, distinguishing it from webmaster_prepare_sitemap, but the sibling relationship is never made explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No text says when to call this versus the alternatives in the prepare/apply/reconcile family (e.g., webmaster_prepare_sitemap or webmaster_reconcile_action). The 'accepted' wording hints that a prior approval step exists but routing guidance is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_broken_links_historyBRead-onlyIdempotent
Read at most 31 days of broken internal link history.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | Yes | ||
| host_id | Yes | ||
| date_from | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the description only needs to add context. It does add the 31-day retention limit, which is useful behavioral information, but it says nothing about pagination, sorting, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. The time constraint is stated immediately and the sentence is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists and annotations cover safety, the description is insufficient for a tool with three required, undocumented parameters. It lacks parameter guidance and any usage context relative to sibling tools, leaving the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are three required parameters (host_id, date_from, date_to). The description only implies that dates span at most 31 days; it does not explain the expected format for dates or the meaning of host_id, leaving the schema entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb ('Read') and resource ('broken internal link history'), with a scope limit of 31 days. It is distinct from the sibling webmaster_list_broken_links by implying historical data, though it does not explicitly contrast the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the 31-day maximum. There is no explicit statement of when to use this tool versus webmaster_list_broken_links or other history tools, nor are prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_diagnosticsBRead-onlyIdempotent
Read problems with native severity, presence state and state-change time.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the specific diagnostic fields returned (native severity, presence state, state-change time), which gives some behavioral context, but it does not disclose permissions, rate limits, or other operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is appropriately sized for a simple tool, though the phrase 'native severity' is jargon that could benefit from a brief clarification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter), and both annotations and an output schema exist, so the safety profile and return format are covered. However, the description still lacks any usage context or parameter explanation, leaving an agent to infer when to call this tool versus the many other webmaster diagnostic siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required parameter, host_id, with 0% schema description coverage. The description never mentions host_id or explains what host the diagnostics apply to, so it fails to compensate for the missing schema-level documentation. The parameter name is somewhat self-explanatory, which prevents a score of 1.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific read operation on 'problems' (diagnostics) and lists the diagnostic attributes: native severity, presence state, and state-change time. However, it does not distinguish this tool from sibling problem-related tools such as webmaster_get_feed_problems or webmaster_get_summary, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The description does not state when an agent should choose this tool over alternatives like webmaster_get_summary, webmaster_get_feed_problems, or other diagnostics-oriented siblings. Usage must be inferred from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_external_links_historyCRead-onlyIdempotent
Read at most 31 days of external link history.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | Yes | ||
| host_id | Yes | ||
| date_from | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds a meaningful behavioral constraint ('at most 31 days'), which is useful beyond the annotations, but it does not explain what happens if the range exceeds 31 days or describe any return/pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is appropriately sized, though the extreme terseness leaves important details unstated rather than being a structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three required parameters at 0% schema description coverage, the description should compensate but does not explain host_id or date formats. The output schema likely covers return values and annotations cover safety, but the input-side context is materially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all three required parameters, and the description only implies that date_from/date_to must span at most 31 days. It adds no meaning for host_id or date format, leaving the parameters largely undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource ('Read external link history') and adds a temporal scope ('at most 31 days'). It distinguishes from the likely sibling webmaster_list_external_links by the 'history' aspect, though it does not explicitly call out the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as webmaster_list_external_links or webmaster_get_broken_links_history. The 31-day limit hints at a constrained use case, but the description provides no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_feedBRead-onlyIdempotent
One Webmaster feed's status and errors by feed URL. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the trailing 'Read-only.' merely restates structured data and earns no credit. The description does add that the call returns status and error information for a single feed, which is modest extra context but not deep 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action, and no padding. The second sentence is largely redundant with the annotations, a minor waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the annotations cover the safety profile. Still missing are an explanation of host_id, any host-verification prerequisite, and routing versus sibling feed tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning; it explains only the URL key ('by feed URL') and says nothing about host_id, which is also required. Half the parameters remain opaque in both schema and prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('get one feed's status and errors'), and the singular 'One ... feed' contrasts with the sibling webmaster_list_feeds. It does not, however, name or distinguish itself from near-neighbors like webmaster_get_feed_problems.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'by feed URL' implies the lookup context, but there is no explicit when-to-use guidance, no prerequisite (e.g., host_id must resolve to a verified host), and no mention of the alternative webmaster_get_feed_problems for diagnostic detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_feed_problemsCRead-onlyIdempotent
Host-level feed problems in Webmaster (blocking offers). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and open-world, so the description's 'Read-only' tag is redundant. '(blocking offers)' is the only added semantic, and it adds little behavioral context such as freshness, scope, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse fragments with no filler and the scope front-loaded. Brevity is fine, though the fragment style leans toward under-specification rather than efficient completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, but for a parameterized tool with zero parameter documentation and no usage context, the description is 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter host_id has 0% schema description coverage and is never mentioned in the description. With an undocumented identifier parameter, the description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource ('Host-level feed problems in Webmaster') but supplies no verb, so it reads as a topic rather than an action. The parenthetical '(blocking offers)' hints at scope but is ambiguous and doesn't clearly separate it from siblings like webmaster_get_feed or webmaster_list_feeds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives among the many webmaster feed siblings. The agent must infer the use case 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.
webmaster_get_hostBRead-onlyIdempotent
Read metadata for an exact Webmaster host identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds only the 'exact identifier' semantics (no fuzzy/prefix matching); it says nothing about auth scope or what metadata fields are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is efficient, though the brevity comes at the cost of the missing usage and parameter detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be documented, and annotations cover the read-only/idempotent profile. Still, for a retrieval tool the description never explains what 'metadata' comprises or where an exact host identifier comes from, leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required host_id parameter. The phrase 'exact Webmaster host identifier' hints at accepted identifier form but gives no format, source, or example, leaving the agent to guess what value to pass.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (metadata for a Webmaster host), with 'exact ... identifier' implying a single-host lookup rather than a listing. It does not explicitly contrast with siblings like webmaster_list_hosts or webmaster_get_user, but the singular/exact scoping is discernible.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or named alternatives. The agent must infer that this is the per-host counterpart to webmaster_list_hosts purely from the name and the word 'exact'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_important_url_historyBRead-onlyIdempotent
Read change history of one monitored URL; the URL must belong to the exact host.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| limit | No | ||
| offset | No | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so safety is covered. The description adds the host-match constraint, but says nothing about return shape or how limit/offset interact (i.e., pagination behavior), which is the useful extra context an agent would need.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the key constraint front-loaded and no wasted words. Terseness borders on under-specification, but structurally it is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no prose. However, with four undocumented parameters, no annotation gap coverage and undocumented pagination, the description leaves meaningful gaps for an agent trying to page through history correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the whole burden for four parameters. It clarifies the url constraint (must belong to the exact host) but leaves host_id vs url relationship and the limit/offset pagination parameters completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (change history of one monitored URL), which is enough to tell it apart from webmaster_list_important_urls at a glance. It does not name which sibling to use for the list view, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one precondition (the URL must belong to the exact host), which is implied guidance about when the call is valid. There is no explicit when-to-use versus webmaster_list_important_urls or the other *history tools, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_indexing_historyBRead-onlyIdempotent
Read at most 31 days of indexing history.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | Yes | ||
| host_id | Yes | ||
| date_from | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral constraint beyond the annotations: the 31-day range cap. It does not, however, explain return shape, pagination, or the consequence of exceeding the cap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the scope constraint is stated immediately. It is efficient, though minimal to the point of under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a 3-required-parameter read tool with 0% schema coverage, the description is too thin on parameter meaning and usage context to be fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema documents nothing about host_id, date_from, or date_to. The description only hints at the range constraint (31 days) but gives no format or meaning for any of the three required parameters, leaving a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (indexing history) with a scope constraint (at most 31 days). It is reasonably distinguishable from sibling webmaster_list_indexing_samples, but it does not explicitly differentiate itself from that or other history tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no alternatives (e.g., when to prefer this over webmaster_list_indexing_samples or webmaster_get_search_urls_history). Usage is only loosely 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.
webmaster_get_ownersBRead-onlyIdempotent
Verified owners of a Webmaster host (login, verification type/date). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so 'Read-only' is redundant and earns no credit. The description adds no extra behavioral context such as authentication requirements, rate limits, or behavior on unverified hosts, which is a gap for an openWorld API tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the resource front-loaded and the return fields in parentheses. No filler, though it is arguably too terse given the surrounding gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be re-explained, and the annotations carry the safety profile. What is missing is routing context versus sibling tools like webmaster_get_verification and any prerequisite on host verification; the definition is minimally viable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single host_id parameter, so the description must compensate. Phrasing it as 'owners of a Webmaster host' implies host_id is a host identifier, but no format or sourcing guidance is given; host_id is nearly self-evident, so this lands at adequate rather than poor.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (verified owners of a Webmaster host) and even enumerates the returned fields (login, verification type/date). It is clear what the tool fetches, though it does not distinguish itself from nearby siblings such as webmaster_get_verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this tool, what prerequisites exist (host must be verified/added), or which sibling to prefer for adjacent data. The agent must infer usage entirely from the name and the crowded webmaster_* list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_pro_export_statusBRead-onlyIdempotent
Status of an enhanced export task (IN_PROGRESS / SUCCESS with url / FAILED). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes | ||
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so 'Read-only' adds nothing. The only added context is that SUCCESS carries a url and FAILED is terminal, which is useful but thin given an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the resource front-loaded and zero filler. It is arguably too terse given the undocumented parameters, but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return values, so the description need not explain them. However, both parameters are undocumented and the link to the export-start tool that produces task_id is missing, leaving an agent to guess at the call sequence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description says nothing about host_id or task_id. With zero coverage the description must compensate, and it does not — notably it never says where task_id comes from (presumably webmaster_start_pro_export).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource (status of an enhanced export task) and enumerates the possible states, so it is distinguishable from webmaster_start_pro_export and webmaster_list_pro_dates. It does not explicitly name those siblings, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent infers this is the polling companion to webmaster_start_pro_export. There is no statement of when to call it, how often to poll, or what to do when a task is not yet finished, and no alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_pro_limitsARead-onlyIdempotent
Enhanced SERP-query export quotas for a host (GET …/pro/limits). Check before webmaster_start_pro_export. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description's 'Read-only' merely restates that, and adds no new behavioral context such as rate limits or quota-reset semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight clauses: purpose, endpoint, and the sequencing hint. Every element earns its place and the gating instruction is front-loaded after the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. For a one-parameter read tool the description covers purpose, endpoint, and when to call it; only host_id semantics remain unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single `host_id` parameter, so the description is expected to compensate. It only implies host scoping via 'for a host' and adds no format or source-of-value detail for host_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (enhanced SERP-query export quotas for a host) and the concrete endpoint (GET …/pro/limits), so an agent knows exactly what it returns. It is clear but stops short of a crisp verb+resource phrasing that would fully distinguish it from the nearby pro-export siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit sequencing guidance: check this before calling `webmaster_start_pro_export`, naming the sibling it gates. There is no when-not guidance, but the pre-check context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_query_historyCRead-onlyIdempotent
Read at most 31 days of aggregate or selected-query indicators.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | Yes | ||
| host_id | Yes | ||
| query_id | No | ||
| date_from | Yes | ||
| query_indicator | No | ||
| device_type_indicator | No | ALL |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds one genuinely useful behavioral constraint, the 31-day window, but says nothing about what distinguishes aggregate from selected-query mode or about rate/limit behavior beyond the window.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words, but it is terse to the point of under-specification for a 6-parameter tool; concision here comes at the cost of necessary detail rather than from tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, but with 6 parameters at 0% schema coverage, no usage guidance, and no sibling differentiation, the definition is not complete enough for an agent to invoke this tool correctly on the first try.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, so the description must carry the burden and largely does not. It only indirectly implies the query_id role ('selected-query' vs 'aggregate'), and says nothing about host_id, date_from/date_to format, query_indicator, or device_type_indicator.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Read' and the notion of query history are present, and the 'aggregate or selected-query' phrase hints at the two modes of operation. However, 'indicators' is vague and the description does not distinguish this tool from close siblings like webmaster_list_popular_queries or webmaster_query_analytics, so an agent cannot route confidently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the 31-day cap. There is no statement of when to prefer this over the sibling query tools, no prerequisites (e.g. host ownership/verification), and no exclusions. The agent is left to infer selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_recrawl_quotaBRead-onlyIdempotent
Read the daily quota and remaining submissions.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds only that the read returns a quota and remaining submissions count, with no auth requirements, reset timing, or rate-limit context beyond what annotations and the output schema provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the key resource (quota) is front-loaded. Nothing is wasted, though the terseness comes at the cost of the missing guidance noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and this is a simple read-only tool with one parameter. The description adequately frames what is fetched; only the host_id semantics and pre-call context are left uncovered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter host_id is documented only as a bare string. The description never explains what host_id refers to or its format, so it fails to compensate for the coverage gap, though the small parameter count limits the severity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('daily quota and remaining submissions'), which clearly distinguishes it from siblings like webmaster_list_recrawl_queue or webmaster_get_recrawl_task. The resource is concrete enough that an agent can tell what it retrieves, though it doesn't explicitly name a sibling it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives such as webmaster_list_recrawl_queue or webmaster_prepare_recrawl, and no stated prerequisites. The agent must infer from the name that this is the pre-flight check before submitting a recrawl.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_recrawl_taskBRead-onlyIdempotent
Read IN_PROGRESS/DONE/FAILED; DONE does not prove search indexing.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes | ||
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior. The description adds an important non-obvious caveat not present in structured fields: 'DONE does not prove search indexing', which helps interpret the returned status correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact sentence with the action and caveat front-loaded and no filler. It is arguably very terse, but every clause carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, return values need not be explained, and the rich annotations cover the safety profile. However, the description provides no workflow context linking this tool to prepare/apply/queue siblings and no parameter guidance, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds nothing about host_id or task_id. With two required parameters and no schema descriptions, the description fails to compensate, leaving the meaning and source of the IDs undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Read IN_PROGRESS/DONE/FAILED', which with the tool name makes clear it retrieves the status of a recrawl task. It is a specific read operation, though it does not explicitly mention task IDs or distinguish itself from siblings like webmaster_list_recrawl_queue in the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance or alternatives. It does not say whether this is for checking a task after webmaster_apply_recrawl, how it relates to webmaster_list_recrawl_queue, or when to prefer it over other recrawl tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_search_events_historyCRead-onlyIdempotent
Read at most 31 days of APPEARED_IN_SEARCH / REMOVED_FROM_SEARCH page counts.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | Yes | ||
| host_id | Yes | ||
| date_from | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety behavior is covered by structured data. The description adds the 31-day window constraint, which is meaningful behavioral context, but omits whether counts are aggregated, paged, or host-scoped in behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 14-word sentence, front-loaded with the action and the hard 31-day limit. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Three required parameters at 0% schema coverage are fully undocumented, and no usage or sibling differentiation is provided. An output schema exists, so return values need not be explained, but the input contract and selection guidance are incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, but it never mentions host_id, date_from, or date_to. An agent learns nothing about the date format, range semantics, or host scoping beyond what the bare type strings reveal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Read' and resource 'page counts' of APPEARED_IN_SEARCH / REMOVED_FROM_SEARCH events, which is reasonably specific. However, it doesn't distinguish from sibling webmaster_list_search_events or webmaster_get_search_urls_history, leaving ambiguity about when this history tool is the right pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 31-day cap is a useful constraint, but there is no explicit guidance on when to use this tool versus webmaster_list_search_events or other history siblings. An agent has to infer the distinction 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.
webmaster_get_search_urls_historyCRead-onlyIdempotent
Read at most 31 days of search URL count history.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | Yes | ||
| host_id | Yes | ||
| date_from | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds one genuinely useful behavioral limit, the 31-day maximum window, but says nothing about pagination, aggregation granularity, or how missing data is handled. With annotations carrying the safety burden, a partial 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is efficient, though arguably under-specified for a three-parameter tool rather than merely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, with 0% parameter coverage and no usage routing for a tool that sits among many similar webmaster history endpoints, the definition leaves the agent without enough to select or invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so all three parameters (host_id, date_from, date_to) are undocumented. The description only hints that a date range applies via the 31-day cap, adding no format, timezone, or host_id semantics. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('search URL count history') with a scope constraint (at most 31 days). It is distinguishable from sibling webmaster_list_search_urls (current URL list vs. historical counts), though it does not name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus alternatives such as webmaster_list_search_urls or webmaster_get_search_events_history. The 31-day cap is a data constraint, not usage guidance, so the agent must infer the scenario on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_sitemapCRead-onlyIdempotent
Read detected sitemap details or registration of a submitted sitemap.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes | ||
| sitemap_id | Yes | ||
| user_added | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds the useful distinction between a detected sitemap and a submitted registration, which is genuine context, but says nothing about return shape, auth scope, or rate behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, so nothing is padded, but the 'or' construction makes it ambiguous and under-specified rather than economical. Front-loading 'read' is fine; the rest needs a clarifying rewrite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and annotations carry the safety profile. However, for a 3-parameter tool with 0% schema coverage and no usage guidance, the description leaves the agent unable to choose between this and the several sibling list/get tools, which is the core gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 3 parameters, so the description must compensate and does not. It gestures at 'detected' vs 'submitted' sitemaps, which loosely maps to the user_added boolean, but never states what host_id/sitemap_id refer to, what user_added=true selects, or what the default false means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('get sitemap'), but the phrasing 'Read detected sitemap details or registration of a submitted sitemap' conflates two modes and never distinguishes this tool from siblings like webmaster_list_sitemaps, webmaster_list_user_sitemaps, or webmaster_get_feed. An agent can guess it retrieves one sitemap's details but not why it beats the list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, no exclusions, no named alternatives. The only implicit context is that it takes both host_id and sitemap_id, hinting it is for a single known sitemap, but an agent must infer this from the schema rather than the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_sqi_historyBRead-onlyIdempotent
Read site quality index (SQI/ИКС) history; default and maximum period is 366 days.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| host_id | Yes | ||
| date_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description contributes one genuine behavioral fact (the 366-day default/maximum window) but omits auth/verification requirements and any note about how the window 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource and its key constraint front-loaded; no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema removes the burden of describing return values, but with 0% schema description coverage the description should have compensated for the undocumented parameters (especially date format). It covers the period constraint but leaves the parameter surface incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning, yet it never explains host_id, date_from, or date_to, nor the expected date format. The period mention touches the date range only implicitly, leaving all three parameters effectively undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (site quality index / SQI/ИКС history), which is clearly distinguishable from the many sibling *_history tools by resource. It stops short of explicitly naming an alternative, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (fetch SQI history for a host) and adds a useful constraint about the default/max period, but offers no explicit when-to-use guidance or mention of alternatives among the numerous sibling history tools. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_summaryCRead-onlyIdempotent
Read indexing and site summary; missing metrics remain missing.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered by structured data. The description contributes one extra behavioral note – "missing metrics remain missing," i.e. absent data is not imputed or backfilled – which is useful but thin. No mention of freshness, scoping to the authenticated user, or rate behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the read action front-loaded and no filler. It is economical, though the trailing clause about missing metrics reads more like an implementation disclaimer than agent-facing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out, and the annotations carry the safety semantics. What remains missing is the scope of the summary and its relationship to the other webmaster read tools, leaving an agent with only a minimal basis for selecting it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions the single required host_id parameter, so an agent gets no clarification of what identifier form is expected or whether it must be a verified host. With one undocumented parameter, the description should have compensated and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb plus resource ("Read indexing and site summary"), so the general purpose is legible, but "summary" is vague about which metrics are aggregated and it does nothing to distinguish this from siblings like webmaster_get_host, webmaster_get_diagnostics, or webmaster_get_indexing_history. An agent cannot tell from the text alone when this is the right read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative among the many webmaster_* readers in the sibling list. The agent must infer the intended scenario from the tool name only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_userARead-onlyIdempotent
Read the OAuth account user identifier; OAuth stays on the server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The clause 'OAuth stays on the server' adds genuinely new context about credential handling, but no rate limits, error behavior, or caching notes are given — modest value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the core action first and the security note second; no filler, no restatement of the tool name. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter with an output schema that documents the return value and annotations that cover safety, this is nearly sufficient. The only shortfall is the lack of any routing hint versus related auth tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4 and there is nothing for the description to disambiguate. Schema coverage is reported as 100%, leaving no parameter gap to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Read the OAuth account user identifier'. An agent can tell this is an identity lookup rather than a webmaster site query. It does not, however, differentiate itself from the nearby sibling yandex_auth_status, which likely covers overlapping identity/auth territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — an agent infers it should call this to learn who the current OAuth user is. There is no explicit when-to-use, when-not-to-use, or named alternative (e.g., yandex_auth_status) despite dozens of auth-adjacent siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_get_verificationBRead-onlyIdempotent
Read ownership verification state without starting verification.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the clarification that this call has no side effect of initiating verification, which is a modest but real addition given the openWorldHint context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the read/write distinction is placed first. It is efficient, though almost too terse for the ambiguity in host_id.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, with a required, undocumented host_id and no routing to sibling tools for obtaining it or for initiating verification, the definition is only minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the sole parameter host_id, and the description says nothing about what a host_id is or how to obtain it (e.g., from webmaster_list_hosts). 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (ownership verification state), and distinguishes the read from the act of starting verification. It does not name a specific sibling tool, but the scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without starting verification' implies this is the non-mutating check to use when you only want state, but it never names an alternative tool or states preconditions. Usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_broken_linksBRead-onlyIdempotent
Read one page of broken internal link samples.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the 'one page' pagination trait, but leaves unexplained what a 'sample' contains, how samples are ordered, or whether results are capped by the service.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is arguably under-specified rather than verbose, but it is structurally clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema means return values need no explanation, and annotations cover the safety profile. Still, for a three-parameter list tool at 0% schema coverage, the description omits pagination mechanics and host scoping, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters, so the description carries the burden and largely fails. 'One page' hints that offset/limit exist, but neither is named, and the required host_id is never mentioned, leaving parameter meaning to be guessed from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (broken internal link samples) plus a pagination scope ('one page'). An agent can distinguish it from webmaster_get_broken_links_history by the 'samples' vs 'history' framing, though the description never names that sibling or clarifies what a 'sample' is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no routing to the closely related webmaster_get_broken_links_history tool. The only signal is the resource itself, so usage is entirely inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_external_linksCRead-onlyIdempotent
Read one page of external link samples.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered without the description. The description does add the useful 'one page' pagination behavior, but omits auth scoping, rate limits, and what a sample contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler and the resource front-loaded. It is efficient, though arguably too terse for the amount of undocumented surface it hides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, but with 0% parameter coverage and no usage guidance or sibling differentiation, the definition leaves an agent with real gaps for a required-parameter list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for three parameters, yet it only vaguely implies limit/offset via 'one page' and says nothing about the required host_id or its format. The schema lists the params but explains none of them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb (read/list) and resource (external link samples) with a pagination hint ('one page'), so the basic operation is identifiable. However, 'samples' is vague and the description does not distinguish this from the sibling webmaster_get_external_links_history, leaving the agent unsure which link 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.
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 the closely related history or broken-links siblings. The agent must infer everything about tool 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.
webmaster_list_feedsBRead-onlyIdempotent
Product/service feeds added to a Webmaster host. Details via webmaster_get_feed. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description's 'Read-only' merely repeats the annotation, and no pagination, result-size, or filtering behavior is added for what is an open-world list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short fragments, front-loaded with the resource and followed by the routing hint and safety note. Nothing is padded, though 'Read-only' is redundant given the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, with host_id undocumented at 0% schema coverage and no pagination or scope behavior mentioned for an open-world list, the definition is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required parameter `host_id`, so the schema adds no meaning. The description does not explain what host_id is, where to obtain it, or whether it scopes the feed list, leaving the parameter undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource ('Product/service feeds added to a Webmaster host'), and the tool name supplies the list verb. It also distinguishes itself from the sibling `webmaster_get_feed`, which retrieves details, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the pointer 'Details via `webmaster_get_feed`' hints that this is the enumeration step and the other is the drill-down, but it never states when to call this versus other webmaster list tools. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_hostsBRead-onlyIdempotent
Read one bounded page of sites accessible to the server account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds two useful behavioral facts beyond that: results are paginated/bounded, and the scope is limited to sites the server account can access. It does not describe ordering or paging traversal behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the scoping/bounded-page constraint front-loaded and no filler. It errs on the side of sparseness rather than verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations carry the safety profile. However, for a paginated list tool with two undocumented parameters, the description should clarify paging mechanics to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters; limit and offset have only defaults and no semantics. The description's 'one bounded page' implies pagination but does not explain what limit and offset control or how to page through results, so it only marginally compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read/list) and resource (sites accessible to the server account), and the 'one bounded page' phrasing signals a paginated listing. It does not explicitly distinguish itself from the sibling webmaster_get_host, which retrieves a single site, leaving that differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (e.g. which account), and no routing to alternatives such as webmaster_get_host for a single site. Usage is only implied by the resource being listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_important_urlsBRead-onlyIdempotent
Read one page of monitored important URLs with indexing and search status.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds only the 'one page' pagination cue, which the limit/offset schema already implies, and says nothing about ordering, page-size limits, or host requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, and the resource scope is front-loaded. It is efficient, though its brevity contributes to the coverage gaps elsewhere rather than being purely advantageous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required. However, for a 3-parameter list tool with zero schema description coverage, the description omits usage context and parameter meaning, leaving it only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (3 parameters, none described), so the description must carry the burden. It only hints at pagination via 'one page' and says nothing about host_id, limit, or offset semantics, leaving the required host_id undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Read') and a clearly scoped resource ('monitored important URLs') plus the returned data ('indexing and search status'). This distinguishes it reasonably from generic list siblings like webmaster_list_search_urls, though it doesn't explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to use this tool versus webmaster_list_search_urls, webmaster_list_indexing_samples, or webmaster_get_important_url_history. The agent must infer usage entirely from the name and resource description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_indexing_samplesBRead-onlyIdempotent
Read one page of indexing samples with continuation metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, open-world read (readOnlyHint=true, destructiveHint=false), so the safety profile is covered. The description adds one genuinely useful behavioral fact beyond that — that results are paged and carry continuation metadata — but says nothing about sample volume, freshness, or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the pagination behavior front-loaded and no filler. It is efficient, though its brevity leaves information the agent needs elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the paging model is hinted at. However, with 0% schema coverage on three parameters and no guidance on host_id or when to prefer this over sibling history tools, the definition is only minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the param burden. 'One page' and 'continuation metadata' only loosely imply limit/offset paging; the meaning of host_id is never explained, and no bounds or units for limit/offset are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('indexing samples') plus a scoping detail ('one page'). It is clear what the tool does, but it offers no differentiation from the many sibling list/get tools such as webmaster_get_indexing_history, so an agent must guess which of these returns samples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool rather than webmaster_get_indexing_history or other webmaster_list_* siblings, nor any prerequisites. The only implicit guidance is pagination via 'one page' and 'continuation metadata', which is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_popular_queriesBRead-onlyIdempotent
Read one page of popular queries; explicit periods are at most 31 days.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| date_to | No | ||
| host_id | Yes | ||
| order_by | No | TOTAL_SHOWS | |
| date_from | No | ||
| query_indicator | No | TOTAL_SHOWS | |
| device_type_indicator | No | ALL |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful context beyond that — pagination ('one page') and the 31-day period ceiling — but does not elaborate on auth needs or result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words, and the scoping constraint is placed after the core action. Efficient, though the brevity leaves it thin for an 8-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists (so return values needn't be explained) and annotations cover safety, but with 8 parameters at 0% schema coverage and several sibling analytics tools, the description is too sparse to fully guide selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 8 parameters, so the description must carry the burden. It only clarifies the date range parameters via the 31-day constraint and hints at limit/offset with 'one page'; host_id, order_by, query_indicator, and device_type_indicator remain entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (Read) and resource (popular queries) with a pagination note. However, it does not differentiate this tool from siblings such as webmaster_get_query_history, webmaster_query_analytics, or yandex_wordstat_get_top, which 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'explicit periods are at most 31 days' clause gives an implied usage constraint and 'one page' signals a paginated listing. But there is no explicit when-to-use/when-not guidance and no naming of the alternative query-analytics tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_pro_datesBRead-onlyIdempotent
Dates available for enhanced SERP-query export (GET …/pro/serp/dates, up to ~550 days). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotent/destructive=false and openWorld, so safety is covered; the description redundantly repeats 'Read-only'. Its one genuine addition beyond annotations is the ~550-day retention limit, but it omits date format, verification requirements, or whether results are paginated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the resource and the retention constraint front-loaded. No filler, though 'Read-only' is wasted given the annotations already state it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and for a simple read-only listing tool the description covers purpose and scope. The main residual gap is that it says nothing about the required host_id input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required parameter host_id, and the description makes no mention of it. For a 1-param tool whose parameter is entirely undocumented in the schema, the description should explain what host_id refers to, but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (available dates for the enhanced SERP-query export) and even cites the endpoint path (GET …/pro/serp/dates). It is clearly distinguished in substance from siblings like webmaster_get_pro_limits or webmaster_start_pro_export, though it never names them explicitly to steer selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is called to discover valid dates before running a pro export, but the description never states when to use it versus webmaster_get_pro_limits or webmaster_start_pro_export, nor any preconditions (e.g., host verification).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_recrawl_queueBRead-onlyIdempotent
Read one page of asynchronous recrawl requests.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint). The description adds that results are asynchronous and returned one page at a time, which is useful, but says nothing about ordering, freshness, or what the page contains. With annotations carrying the safety burden, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the pagination hint is packed into the verb phrase. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape need not be explained. Still, for a host-scoped listing tool the description omits what qualifies a request for the queue, ordering, and how paging terminates, leaving meaningful gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters. The phrase 'one page' implies limit/offset pagination, but the description never explains host_id (its required scoping key) nor how limit/offset behave, leaving the semantics of every parameter undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read one page') and resource ('asynchronous recrawl requests'), so an agent knows this lists queued recrawl requests. It does not, however, name or contrast with any sibling such as webmaster_get_recrawl_task (single task) or webmaster_get_recrawl_quota, so differentiation is left to the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (e.g., a verified host_id), and no routing to alternatives like webmaster_prepare_recrawl for enqueueing or webmaster_get_recrawl_task for a single item. 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.
webmaster_list_regionsBRead-onlyIdempotent
Webmaster region directory (ids for webmaster_query_analytics region_ids), filter by name. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| host_id | Yes | ||
| filter_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the trailing 'Read-only' adds nothing. The one genuinely useful behavioral fact — that these IDs feed webmaster_query_analytics — is disclosed, but nothing is said about pagination or result size despite a limit parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse statements front-load the resource and the downstream usage before the trailing qualifier. The final 'Read-only' fragment is wasted space because annotations already encode it, but overall nothing else is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations cover the safety profile. However, for a tool whose only required input (host_id) is undocumented and whose limit default of 100 raises unaddressed paging questions, the definition is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden, and it only gestures at filter_text ('filter by name'). The required host_id and the limit parameter are left completely unexplained, leaving an agent to infer what host context and pagination behavior are expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (region directory) and its functional role — supplying region IDs consumed by webmaster_query_analytics — so an agent can tell it apart from other list tools like yandex_wordstat_regions. The verb is nominalized ('directory') rather than an explicit 'list', but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the purpose context clearly: use this to obtain region IDs for the region_ids parameter of webmaster_query_analytics, and it notes name-based filtering. It stops short of explicit when-not guidance or naming an alternative region source, so it is clear but not fully routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_search_eventsCRead-onlyIdempotent
Read one page (limit 1-100) of pages that appeared in or were removed from search.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds nothing behavioral beyond that — no ordering of results, no indication of whether this is a snapshot or a live view, no rate-limit or scope caveats (e.g. how far back events go).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the page/paging constraint leads. It is appropriately sized, though slightly terse given how much it leaves unspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, but for a tool with a required host_id and zero schema coverage of parameters, the description leaves too much for the agent to infer: which host, what ordering, and how it relates to the search-events-history sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It contributes only the limit range (1-100), which is real added value, but leaves the required 'host_id' and the 'offset' parameter entirely unexplained, and does not say what 'offset' page-step semantics are.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Read') and a concrete resource ('pages that appeared in or were removed from search'), so an agent can tell this is a listing tool for search-appearance/removal events. It does not, however, distinguish itself from near-neighbors like webmaster_list_search_urls or webmaster_get_search_events_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the paging constraint ('one page (limit 1-100)'). There is no statement of when to use this tool versus the history/summary siblings, and no prerequisites (e.g. host verification) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_search_urlsBRead-onlyIdempotent
Read one page of URLs in search; a sample is not the full index.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds useful pagination/sampling context with 'one page' and 'not the full index', but does not disclose auth requirements, rate limits, ordering, or what the returned URLs represent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The core purpose comes first, and the sampling caveat is placed immediately after without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema reduces return-value burden and annotations cover safety, but the description leaves major gaps for a paginated list tool: no host_id guidance, no limit/offset semantics, and no differentiation from many sibling webmaster list tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters, but it names none. 'One page' only vaguely implies limit/offset pagination; the required host_id and the limit/offset defaults remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Read one page of URLs in search.' The clause 'a sample is not the full index' clarifies scope and pagination, but no sibling tool is named to differentiate from other webmaster list endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance and no alternatives named. The 'sample is not the full index' caveat is a caution, not a usage rule, so the agent must infer the tool's appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_sitemapsCRead-onlyIdempotent
Read one sitemap page using the upstream sitemap identifier cursor.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| host_id | Yes | ||
| parent_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds useful behavioral context that the read is cursor-paginated ("using the upstream sitemap identifier cursor"), but reveals nothing about rate limits, ordering, or what a page contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no wasted words and the action front-loaded. It is arguably too terse for a four-parameter tool, but as conciseness goes it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters at 0% schema coverage, a required host_id, and a cursor/parent_id hierarchy unexplained, the description leaves an agent guessing about required inputs and pagination. An output schema exists so return values need not be described, but the input side is materially under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for four parameters, so the description must carry the load. It explains the cursor concept ("upstream sitemap identifier cursor") but never clarifies host_id, limit, or parent_id, which is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("Read one sitemap page") plus the mechanism (cursor-based paging), so the action is understandable. However it does not distinguish this from close siblings like webmaster_get_sitemap or webmaster_list_user_sitemaps, and the singular "one sitemap page" sits awkwardly against the plural list_ name, leaving mild ambiguity about whether it returns sitemaps or pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus webmaster_get_sitemap, webmaster_list_user_sitemaps, or the prepare/apply sitemap siblings. No prerequisites (e.g. host_id requirement) or exclusion conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_list_user_sitemapsBRead-onlyIdempotent
Read one page of submitted sitemaps with an exclusive identifier cursor.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds useful pagination context ('one page', 'exclusive identifier cursor'), but does not explain cursor semantics, auth requirements, or what host scope means, leaving behavioral context thin beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. It is efficient, though its brevity is partly why parameter and usage detail are absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. Yet with a fully undocumented parameter set and no usage routing, the definition is only minimally complete for a paginated list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the parameter burden. It mentions the cursor ('exclusive identifier cursor') but says nothing about host_id (required) or limit (default 100), leaving two of three parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read one page of submitted sitemaps'), which an agent can understand without opening the schema. However, it does not differentiate from the sibling webmaster_list_sitemaps, which likely returns a similar resource, so the distinguishing scope is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no when-to-use guidance, no prerequisites, and no routing to alternatives such as webmaster_list_sitemaps or webmaster_get_sitemap. The mention of 'one page' implies a paginated list but does not say when to prefer this over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_manage_applyBDestructiveIdempotent
Execute an accepted Webmaster write once (write flag, approval_id, idempotency_key), then read back. Same key replays the stored result. Writes.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes | ||
| approval_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive/not-readonly/idempotent/openWorld, so the safety profile is covered. The description goes beyond them by disclosing the execute-then-read-back behavior and, importantly, that the same idempotency_key replays the stored result rather than re-executing the write – valuable operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short front-loaded clauses with the action and its required inputs first, followed by the replay guarantee. No padding, though the dangling 'Writes.' adds nothing and a parenthetical listing of inputs is slightly redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described. But for a destructive write tool with 0% schema coverage, leaving the 'operation' vocabulary and 'args' payload undefined is a real gap – an agent cannot know what values are legal or what shape the write payload takes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters, so the description must carry the load. It explains the role of approval_id and the replay semantics of idempotency_key, but 'operation' and 'args' (the actual payload) are entirely unexplained, and the 'write flag' it references is not a parameter at all, which risks confusing the caller.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Execute') plus a scoped resource ('an accepted Webmaster write'), which clearly separates it from the sibling prepare/read/reconcile trio in the webmaster_manage_* family. The trailing fragment 'Writes.' and the stray mention of a 'write flag' that does not exist in the schema slightly muddy an otherwise clear statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'accepted' implies the prerequisite that an approval must already exist (i.e. prepare ran first), and 'once' plus the replay note implicitly tells the agent not to re-invoke. However, no alternative tool is named and no explicit when-not condition is given, so usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_manage_prepareA
Open an approval for one allowlisted Webmaster write/upload (args: ids, query, body, csv). Bound to principal, account and exact request; nothing is sent.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the safety profile (not read-only, not destructive, not idempotent), and the description usefully adds that the approval is bound to principal, account and the exact request, and that no network write occurs. It does not say what happens to a stale or superseded approval, nor how long it stays valid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the action front-loaded and the crucial 'nothing is sent' guarantee trailing. No filler, though the parenthetical arg list slightly interrupts the flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. But with a thin generic-object schema at 0% coverage, the description should clarify what an approval yields (e.g., an id needed for apply) and how the prepare/apply/reconcile trio relates; it stops short of that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and 'args' is an untyped generic object, so the description's enumeration of its sub-keys (ids, query, body, csv) is genuinely additive. However, the required 'operation' parameter is left completely unexplained and the accepted values for it are given nowhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb+resource are precise: 'Open an approval for one allowlisted Webmaster write/upload.' The clause 'nothing is sent' cleanly separates it from webmaster_manage_apply, though neither that sibling nor webmaster_manage_read/reconcile 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The prepare-before-apply workflow is implied by 'Open an approval ... nothing is sent,' but the description never states when to call this instead of webmaster_manage_apply or webmaster_manage_reconcile, nor what prerequisite (allowlisting) must hold first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_manage_readBRead-onlyIdempotent
Documented Webmaster management/report reads by operation name; args = path ids, query{...}. operation='catalog' lists all operations with docs (local). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered and 'Read-only' is largely redundant. The description adds a useful discovery behavior (operation='catalog' lists all operations, marked local), but discloses nothing about dispatch errors, unknown-operation handling, or output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence packs the dispatch model, the args shape, the discovery operation, and the read-only nature with no filler. Front-loaded around the operation-name mechanic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the 'catalog' pointer mitigates the 0% schema coverage. Still, for a polymorphic dispatcher the description leaves the valid operation set and args shapes entirely to runtime discovery, which is thin for correct first-call invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and does so only partially: it clarifies 'operation' is an operation name and 'args' holds path ids plus a query{...} object. It does not enumerate valid operation values (relegated to the catalog call) nor give arg formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and domain: 'Webmaster management/report reads by operation name,' which tells the agent this is a polymorphic read dispatcher. It distinguishes itself from write-oriented siblings (prepare/apply/reconcile) via 'Read-only,' but the set of readable resources stays opaque until the agent calls operation='catalog'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Read-only' and the pointer to operation='catalog' for discovering available operations, but there is no explicit when-to-use-this vs the many webmaster_get_* siblings. The agent must infer that this is a meta-read over documented operations rather than a direct lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_manage_reconcileBIdempotent
Settle an uncertain Webmaster management write by reading the provider; never resends.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| operation | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and readOnlyHint=false, so safety traits are covered. The description adds genuinely new behavior beyond the annotations: it resolves state by reading the provider rather than resending the write ('never resends'), which tells the agent the mechanism and that no duplicate mutation will occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though so terse that it leaves required information (parameter semantics) unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no prose, but the 0% parameter coverage and absent usage routing leave the definition incomplete for a three-parameter mutation-adjacent tool. An agent still cannot tell what to pass or precisely when to choose this over the sibling prepare/apply/read tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters (operation, idempotency_key, args), so the description must carry the burden, yet it says nothing about any of them. The concept of the idempotency_key is only obliquely gestured at by 'never resends'; operation values and args shape are entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('settle an uncertain Webmaster management write by reading the provider') and identifies it as the reconciliation step of a write workflow. However, it does not name the closely related siblings (webmaster_manage_prepare, webmaster_manage_apply, webmaster_manage_read) or distinguish itself from webmaster_reconcile_action, so an agent must infer placement in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the trigger condition ('uncertain write') but never states explicitly when to prefer this over prepare/apply/read, nor what constitutes 'uncertain'. The alternative tools exist and are not referenced, so routing depends on inference 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.
webmaster_prepare_recrawlA
Prepare exactly one URL for human approval after ownership, quota and duplicate checks.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=false. The description adds real substance beyond that: pre-flight ownership, quota and duplicate validation, the requirement for human approval, and the single-URL scope that explains the non-idempotent hint. It does not describe behavior on check failure (e.g. quota exhausted), so it stops short of 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the scope constraint and the validation pipeline are both stated up front.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the approval workflow is conveyed. However, with 0% parameter coverage the definition leaves the caller to guess the url/host_id relationship and does not indicate the follow-up tool, which is a notable gap for a mutation-flow entry point.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions 'url' or 'host_id', so it adds no meaning to either parameter. With two undocumented parameters the description should at least clarify the URL must belong to the host, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('prepare') and resource ('one URL') with an explicit scope quantifier ('exactly one') that separates it from batch siblings like webmaster_apply_recrawl and webmaster_prepare_sitemap. Sibling differentiation is implied by the prepare/apply verb split rather than stated, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for human approval' implies this is the first phase of a two-step flow, but no alternative is named (e.g. use webmaster_apply_recrawl to commit) and no when-not guidance is given. Usage is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_prepare_sitemapC
Prepare one sitemap registration for expiring human approval.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| host_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false, so the safety profile is already covered. The description usefully adds that this stages an action requiring human approval rather than mutating state immediately — a real behavioral fact. But it does not explain what 'expiring' means (time-limited approval?), what is staged, or what happens if the approval lapses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single terse sentence is structurally efficient, but the odd phrase 'expiring human approval' is cryptic rather than economical. Brevity here comes at the cost of clarity rather than from front-loading essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. But for a prepare-stage tool in a prepare/apply/reconcile workflow, the description should at least name the follow-up action and the approval lifecycle. Neither is present, leaving the workflow semantics incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both required parameters, so the description bears the full burden and fails it. It never clarifies whether 'url' is the sitemap URL and 'host_id' the verified host, nor their formats. Beyond the generic mention of 'sitemap registration', no parameter meaning is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'prepare' and resource 'sitemap registration' are specific, and the description correctly signals a staged/approval step rather than direct execution. However, the phrase 'expiring human approval' is ambiguous and it never distinguishes this from the sibling webmaster_apply_sitemap, which is the natural counterpart. An agent would likely need to infer the prepare/apply pairing from the naming convention alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this versus webmaster_apply_sitemap, webmaster_reconcile_action, or webmaster_manage_prepare. The existence of a sibling cluster (prepare/apply/reconcile) makes this omission costly. Only the implicit 'prepare = before apply' convention hints at usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_query_analyticsBRead-onlyIdempotent
Webmaster query/URL analytics with region and text/statistic filters (up to 500 rows). Deeper than webmaster_list_popular_queries. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| filters | No | ||
| host_id | Yes | ||
| region_ids | No | ||
| text_indicator | No | QUERY | |
| device_type_indicator | No | ALL |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered. The description adds the useful 500-row cap but otherwise repeats 'Read-only' and omits auth requirements, pagination behavior, and rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences are front-loaded and efficient, but 'Read-only' is redundant with the readOnlyHint annotation and does not earn its place; still, there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter analytics tool with 0% schema descriptions and multiple enums, the description is too thin. Output schema covers return values, but required host_id, pagination, filter object shape, and device_type_indicator remain unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 7 parameters, so the description carries full burden. It gestures at region and text/statistic filters but does not explain host_id, limit/offset, the filters object, device_type_indicator enum, or default semantics; device filtering is entirely absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (query/URL analytics) and scope (region, text/statistic filters, up to 500 rows), and distinguishes it from webmaster_list_popular_queries by calling itself 'deeper'. The verb is implied rather than explicit, but an agent can tell it apart from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names a sibling and indicates this tool is 'deeper', which implies when to choose it over webmaster_list_popular_queries. However, it gives no explicit conditions (e.g., 'use when you need region/device breakdowns') or when-not, leaving selection partly inferential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_reconcile_actionCIdempotent
Read and reconcile this principal's existing action. This tool cannot send a POST.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| action | Yes | ||
| host_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds one useful constraint — it will not send a POST, i.e. it does not push the mutation itself — but it never explains what "reconcile" actually does operationally or that it acts per-principal. There is mild tension between "Read ... cannot send a POST" and readOnlyHint=false, though reconcile plausibly updates local/principal state without mutating the remote resource.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the main operation front-loaded and no filler. The second sentence is terse to the point of being cryptic (HTTP-method language an agent may not map to intent), but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four undocumented required parameters, no sibling differentiation, and a mutation-adjacent role in a prepare/apply/reconcile flow, the description is too thin. The output schema does relieve it of explaining return values, but the parameter and workflow gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Four required parameters with 0% schema description coverage, so the description carries the full burden and largely fails it. It only gestures at the `action` parameter ("existing action") and says nothing about `url`, `host_id`, or `idempotency_key`, nor what the recrawl/sitemap enum values mean.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb pair ("read and reconcile") and a resource ("this principal's existing action"), which is more specific than a tautology. However it does not distinguish the tool from the many reconcile/manage siblings (e.g. webmaster_manage_reconcile, webmaster_prepare_recrawl, webmaster_apply_recrawl), and the enum values recrawl/sitemap are never mentioned, so the agent cannot tell which action types it covers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"This tool cannot send a POST" is a capability constraint, not usage guidance. There is no statement of when to call this versus the sibling manage/prepare/apply/reconcile tools now in the prepare→apply→reconcile family, and no prerequisites (e.g. must an action have been applied first?).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webmaster_start_pro_exportAIdempotent
Start enhanced SERP-query export (POST …/pro/serp/queries/download/). Spends daily quota; needs YANDEX_WEBMASTER_WRITE_ENABLED. use_pro_tariff=true (paid) first returns an approval to accept, then pass approval_id. Poll webmaster_get_pro_export_status.
| Name | Required | Description | Default |
|---|---|---|---|
| dates | Yes | ||
| paths | No | ||
| host_id | Yes | ||
| region_ids | No | ||
| approval_id | No | ||
| use_pro_tariff | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond annotations: daily quota consumption, the YANDEX_WEBMASTER_WRITE_ENABLED prerequisite, and the two-step approval_id handshake. Annotations already cover the safety/idempotency profile (idempotentHint=true, destructiveHint=false), and the description is consistent with them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense clauses, front-loaded with the action and endpoint, then quota/auth cost, then the approval flow. Every sentence adds information without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the description covers quota, auth flag, approval flow, and the follow-up status tool. The gap is the undocumented parameter semantics (e.g., date format), which leaves minor incompleteness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 params, so the description must carry the burden, and it only clarifies use_pro_tariff and approval_id. The required dates, host_id, plus paths and region_ids are left with no format or meaning guidance beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Start') plus resource ('enhanced SERP-query export') and even cites the underlying endpoint. It clearly differentiates from siblings like webmaster_get_pro_export_status and webmaster_get_pro_limits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the use_pro_tariff=true approval flow and explicitly routes the agent to poll webmaster_get_pro_export_status after starting. It warns that the call spends daily quota and requires an env flag, giving clear when-to-use context, though it does not spell out explicit when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_auth_finishAIdempotent
Poll pending device-code auth; on success write 0600 token files and hot-reload (no restart). Never returns the token. Call after the user confirms in the browser.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | ||
| account | No | ||
| max_wait_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (not read-only, idempotent, non-destructive, open-world). The description goes well beyond them, disclosing concrete side effects: 0600 token file writes, hot-reload with no restart required, and that the token is never returned. These are exactly the operational details an agent cannot get from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler, front-loaded with what the tool does and the success behavior, then the secret-handling constraint, then the invocation condition. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is unnecessary, and the 'never returns the token' note covers the key secret-handling expectation. However, for a mutating auth tool with three undocumented parameters and no annotation detail on file locations or override behavior, the definition leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters (wait, account, max_wait_seconds), so the description carries the burden of explaining them and does not. 'Poll' loosely implies the wait/max_wait_seconds semantics, but the meaning of 'account' and the effect of wait=false are entirely unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific actions: polling a pending device-code auth and, on success, writing token files with hot-reload. This is far more than a restatement of the name. It does not differentiate itself from the sibling yandex_auth_status, which by its name likely also polls auth state, leaving ambiguity about which to call for a simple status check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit sequencing: 'Call after the user confirms in the browser,' which clearly scopes when this tool is appropriate. It does not name the alternative (yandex_auth_status) or state when-not-to-use, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_auth_startA
Start Yandex OAuth device-code flow: returns verification URL + user_code. Uses MCP URL elicitation when the client supports it. Pass client_id or set YANDEX_OAUTH_CLIENT_ID. No token in output.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| account | No | ||
| services | No | ||
| client_id | No | ||
| client_secret | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=false, and non-idempotent. The description adds genuinely useful behavioral detail: MCP URL elicitation when supported, the client_id/YANDEX_OAUTH_CLIENT_ID fallback, and the guarantee that no token appears in output. It does not state side effects of re-invocation or flow expiry, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, each front-loading a key fact: what it returns, the elicitation behavior, and the credential fallback. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape detail is not required, and the description covers the critical return values and credential requirement. However, with 0% parameter coverage and a sibling yandex_auth_finish that continues this flow, the description lacks sequencing/next-step context and leaves four parameters unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, so the description must compensate. It only addresses client_id (and its env-var alternative); scope, account, services, and client_secret are completely undocumented in both schema and description, leaving most parameters semantically opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Start Yandex OAuth device-code flow') and names the exact return ('verification URL + user_code'), clearly distinguishing it from siblings like yandex_auth_finish and yandex_auth_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies this is the entry point of the auth flow and mentions client_id/YANDEX_OAUTH_CLIENT_ID, but does not explicitly state when to use it versus yandex_auth_status or yandex_auth_finish. Usage is implied by the flow context, not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_auth_statusARead-onlyIdempotent
Show which Yandex OAuth services have tokens (never values). Pending device-flow user_code if any. Local.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive, and 'Local' reinforces the openWorldHint=false declaration. The description adds real context beyond the annotations: token values are never returned ('never values') and a pending device-flow user_code may be surfaced. It stops short of describing output shape or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded fragments with no filler; the key scope limit ('never values') is stated immediately. The telegraphic style is efficient but borders on terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a local, read-only status probe with an output schema present, the description covers what is shown and the security constraint. The only real gap is the undocumented 'account' parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'account' parameter has 0% schema description coverage, and the description never mentions it at all, so an agent cannot tell what account selects or that null means the default account. With low coverage the description was expected to compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it shows which Yandex OAuth services hold tokens. 'Status' plus the mention of pending device-flow user_code cleanly separates it from the yandex_auth_start / yandex_auth_finish siblings, though it does not name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: revealing a pending user_code suggests it is the tool to call mid-device-flow, before yandex_auth_finish. There is no explicit when-to-use/when-not guidance or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_check_updateARead-onlyIdempotent
Check GitHub for a newer zai-yandex-mcp release and suggest the update command. Suggest-only, 24h cache unless force=true; never calls Yandex.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds concrete behavior beyond the annotations: 'Suggest-only' (it will not apply an update despite the 'update' name), a '24h cache unless force=true' timing/rate constraint, and 'never calls Yandex' scope limitation. These are exactly the operational facts an agent needs and align with readOnlyHint/idempotentHint rather than contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, fully front-loaded: the scope first, then the behavioral constraints. No filler, and every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only, output-schema-backed tool, the description covers purpose, scope, and the one parameter interaction. No return-value explanation is needed since an output schema exists, so nothing an agent requires is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema gives 'force' no description (0% coverage), so the description must compensate, and it does: '24h cache unless force=true' explains that force bypasses the cache. That meaningfully documents the one parameter, though it could be slightly more explicit about the default (false).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Check') and resource ('GitHub for a newer zai-yandex-mcp release') plus the outcome ('suggest the update command'). This is unambiguous and clearly distinct from the many Yandex API siblings, since it targets GitHub and the MCP package itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operating context ('Suggest-only... never calls Yandex'), which tells the agent this is a local/suggestion operation, not a Yandex API call. It doesn't explicitly state when to invoke it over alternatives, but for an update-check tool with no functional sibling the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_serp_get_resultBRead-onlyIdempotent
Return raw provenance metadata and normalized Yandex SERP output.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that output includes raw provenance metadata alongside normalized results, but omits any behavior on a pending/failed job or whether the result is retained after retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity reflects under-specification rather than tight editing of a fuller statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations cover safety. What is missing for a job-oriented retrieval tool is the lifecycle relationship — that job_id comes from submission and when the result becomes available.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required parameter, so the description carries the full burden and says nothing about job_id — not where it originates (presumably yandex_serp_submit) nor its format. With one undocumented required parameter, the baseline-4 zero-parameter case does not apply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Return') and resource ('normalized Yandex SERP output') plus the extra payload ('raw provenance metadata'), which is more than a restatement of the name. It does not, however, differentiate itself from the closely named sibling yandex_serp_status, leaving the agent to infer which one yields the finished result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus yandex_serp_prepare, yandex_serp_submit, or yandex_serp_status, nor any prerequisite such as the job having completed. The workflow position of a result-retrieval tool is exactly what an agent needs here, and it is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_serp_prepareB
Prepare an asynchronous Yandex SERP request without a live provider call.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| region | No | 225 | |
| response_format | No | FORMAT_XML |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds one genuinely useful behavioral fact beyond the annotations: no live provider call is made, so this does not consume provider quota. However, it does not say what the preparation produces or how it pairs with submit, and the annotations (readOnlyHint=false, idempotentHint=false) already frame the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the key qualifier ("without a live provider call") is placed where it reads first after the purpose. Efficient, though it is perhaps too terse for the gaps it leaves.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the annotations cover safety. But for an async multi-step workflow with 0% parameter documentation, the description omits the surrounding flow (what to call next, what the prepared request represents), leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, yet it mentions no parameters at all. The opaque default region="225" and response_format="FORMAT_XML" are left entirely undefined, and even the required query is only weakly implied by "request."
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Prepare") and resource ("asynchronous Yandex SERP request"), and the phrase "without a live provider call" differentiates it from the provider-hitting sibling yandex_serp_submit. It stops short of naming that sibling explicitly, so the split is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word "Prepare" plus "asynchronous" implies this is the setup step before submit/status/get_result, but the description never says when to use it versus yandex_serp_submit or what follows. Usage is only implied, not specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_serp_statusBRead-onlyIdempotent
Return durable status for an asynchronous Yandex SERP job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description's 'durable' adds a small hint that status persists across calls, but there is no detail on job states, polling cadence, or error conditions beyond what annotations supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though arguably over-terse for an async workflow tool where a second clause about the submit→status→result relationship would have earned its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and annotations carry the safety profile, keeping the burden low. Still, for a tool in an async pipeline, the description omits where job_id comes from and how this relates to serp_submit and serp_get_result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate for the lone job_id parameter, but it never explains that job_id is the identifier returned by yandex_serp_submit/prepare. The param name is self-explanatory, but the origin and expected format are left unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Return) and resource (status for an asynchronous Yandex SERP job), so the agent knows this is a status/polling operation. It does not, however, differentiate itself from the obvious sibling yandex_serp_get_result, which fetches the actual results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance, no mention of prerequisites, and no alternatives named. The word 'asynchronous' faintly implies a submit→status→result polling pattern, but the agent must infer this; nothing tells it to call this instead of yandex_serp_get_result or when the job is ready.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_serp_submitBIdempotent
Queue an approved asynchronous Yandex SERP request.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| region | No | 225 | |
| approval_id | Yes | ||
| idempotency_key | Yes | ||
| response_format | No | FORMAT_XML |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so safety and idempotency are covered. The description adds that the operation is asynchronous and queues rather than returns results, which is useful context, but says nothing about the next step (polling status) or what the approval gate enforces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the key qualifier (asynchronous, approved) front-loaded and no wasted words. Its brevity comes at the cost of parameter coverage, but the sentence itself is well-formed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations carry the safety profile. However, with 0% schema coverage on five parameters and an approval-based workflow, the description leaves the idempotency key, region default, and prepare-to-submit handoff undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter burden, yet it explains none of the five parameters. "Approved" faintly hints at approval_id, but region (default 225), idempotency_key, and response_format are entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (queue), resource (Yandex SERP request), and mode (asynchronous), which tells the agent this submits rather than fetches. It does not distinguish itself from yandex_serp_prepare or yandex_serp_get_result, so sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word "approved" implies a prior approval step (likely yandex_serp_prepare) and that this is the enqueue stage, but it never names the alternative tools or states when to call this versus prepare/status/get_result. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_setup_toolsetsA
Pick Yandex platforms (direct, metrika, webmaster, audience, wordstat, serp, maps, manage) or a preset (direct-only, analytics, seo, everything) and tool_loading eager|lazy -> YANDEX_TOOLSETS + token cost. write=true saves to mcp.local.json (stdio). No secrets.
| Name | Required | Description | Default |
|---|---|---|---|
| write | No | ||
| preset | No | ||
| platforms | No | ||
| tool_loading | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark it non-read-only, non-destructive, and non-idempotent, so the safety profile is partly carried there. The description adds the key side-effect detail the annotations don't: write=true persists to mcp.local.json (stdio), plus the 'No secrets' assurance and the output shape (YANDEX_TOOLSETS + token cost). It is not strictly destructive, which is consistent with destructiveHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Highly compact with arrow notation and no filler; the output consequence is front-loaded after the input choices. The terseness is efficient but borders on shorthand, which slightly reduces readability without being wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be detailed, and the config-file write behavior is covered. However, gaps remain for a 4-parameter setup tool: default behavior when nothing is passed, precedence between platforms and preset, and any preconditions are unstated. Adequate but with clear omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must supply parameter meaning and it largely does: it enumerates platform values (direct, metrika, webmaster, audience, wordstat, serp, maps, manage), preset values (direct-only, analytics, seo, everything), tool_loading modes (eager|lazy), and write=true semantics. It does not explain the defaults or whether platforms and preset are mutually exclusive, leaving a small gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: pick Yandex platforms or a preset plus tool_loading mode, producing YANDEX_TOOLSETS and a token cost. It singles itself out from the sibling platform tools, which are the tools being selected rather than the selector. The telegraphic 'Pick ... ->' phrasing is clear but not fully fleshed out as a sentence, so it lands just below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied — this is a setup/configuration tool to be run when choosing which toolsets to load — but the description never says when to call it (e.g. before using platform tools) or how platforms and preset interact if both are supplied. No explicit when-not or alternative is given. Only implied context, so a 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_wordstat_dynamicsBRead-only
Get Wordstat demand over time using UTC dates YYYY-MM-DD and the server budget gate.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | PERIOD_MONTHLY | |
| phrase | Yes | ||
| devices | No | ||
| regions | No | ||
| to_date | No | ||
| from_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only safety, open-world access, non-idempotency, and non-destructiveness. The description adds two useful behavioral notes: UTC date handling and a 'server budget gate' that hints at quota or cost constraints, but it does not explain what happens when the gate is hit 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately compact, though 'server budget gate' is terse to the point of being unclear, which slightly reduces its effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter tool with no parameter descriptions in the schema, the description is too sparse. It covers date format and hints at a budget constraint, but omits usage guidance and the semantics of period, devices, and regions, leaving the agent under-informed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and six parameters, the description only partly compensates by specifying UTC YYYY-MM-DD dates for the date parameters. It says nothing about period values, device values, region values, or phrase semantics, leaving most parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get Wordstat demand') and adds the temporal dimension ('over time'), which naturally distinguishes it from sibling tools like yandex_wordstat_get_top and yandex_wordstat_regions. It also names the expected date format, making the scope clear without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as yandex_wordstat_get_top or yandex_wordstat_regions. It does not mention exclusions, prerequisites beyond a vague 'server budget gate', or any decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_wordstat_get_topCRead-only
Wordstat top requests + associations; num_phrases 1..2000; devices DEVICE_* list.
| Name | Required | Description | Default |
|---|---|---|---|
| phrase | Yes | ||
| devices | No | ||
| regions | Yes | ||
| num_phrases | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/non-idempotent/non-destructive, so the safety profile is covered. The description adds a useful constraint (num_phrases 1..2000) and the DEVICE_* value family, but says nothing about what is returned or how results are scoped by phrase/regions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact fragments, front-loaded with the operation, with zero filler. It is slightly clipped to the point of under-specification, but it never wastes a sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, but the definition still omits when-to-use routing against sibling Wordstat tools and the required format/source for 'regions'. For a 4-param read tool whose schema has 0% description coverage, this leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the burden; it supplies a real range for num_phrases and hints at the allowed device token family, which the schema lacks. However, the required 'phrase' and 'regions' parameters get no format or source guidance (e.g. that regions come from yandex_wordstat_regions), so compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'Wordstat top requests + associations' names the resource and implies a top/associations retrieval, but never states a verb or that it operates on a given search phrase. It does not distinguish itself from its close siblings yandex_wordstat_dynamics or yandex_wordstat_regions, so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the three sibling Wordstat tools that would be the natural alternatives. The agent is left to guess when top-requests is the right call versus dynamics or regions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_wordstat_regionsBRead-only
Get Wordstat demand by region for the last 30 days through the server budget gate.
| Name | Required | Description | Default |
|---|---|---|---|
| phrase | Yes | ||
| region | No | REGION_ALL | |
| devices | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly=true, destructive=false, openWorld=true). The description adds two useful traits not in the annotations: a fixed 30-day window and consumption of a server-side budget, which implies cost/rate-limit behavior. However, it never explains what happens when the budget is exhausted or how the gate is triggered, so the disclosure is suggestive rather than actionable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding or repetition. The 'server budget gate' clause is somewhat cryptic but is at least placed where it will be read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be described. Still, for a tool with 0% parameter documentation the description leaves the region and devices inputs unexplained and gives no guidance on the budget gate's failure mode, which an agent needs in order to call it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and three parameters exist, so the description must compensate. It only hints that results can be segmented 'by region' and says nothing about the 'devices' array, valid region identifiers, or the REGION_ALL default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get Wordstat demand by region') plus a fixed scope ('last 30 days'), which is enough to separate it from yandex_wordstat_get_top and yandex_wordstat_dynamics. It doesn't explicitly name those siblings or clarify its relationship to yandex_wordstat_regions_tree, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of when to prefer this over the other Wordstat siblings (get_top, dynamics, regions_tree). The only contextual hint is the unexplained 'server budget gate' phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yandex_wordstat_regions_treeBRead-only
Get the Wordstat region tree through Cloud credentials and the server budget gate.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false. The description adds two useful facts beyond that: the call requires Cloud credentials and passes through a budget gate, implying possible quota consumption. It does not explain the non-idempotent hint or any retry behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding. The trailing clause about Cloud credentials and the budget gate is slightly jargon-heavy but still earns its place as constraint disclosure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and with no parameters the description's remaining burden is light. The main gap is the absence of when-to-use routing, which keeps it short of a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There are no argument semantics for the description to clarify or omit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (Wordstat region tree), which cleanly separates it from yandex_wordstat_get_top and yandex_wordstat_dynamics. However, it never explicitly frames itself against those siblings, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus yandex_wordstat_regions or the other Wordstat tools, and no prerequisites or exclusions. The phrase 'server budget gate' hints at a constraint but does not tell the agent when the tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
81 tool updates
v0.7.0- Added
audience_create_geo_circle - Added
audience_create_geo_polygon - Added
audience_create_pixel - Added
audience_create_pixel_viewers - Added
audience_get_pixel - Added
audience_get_segment - Added
audience_list_pixels - Added
audience_list_segments - Added
audience_manage_apply - Added
audience_manage_prepare - Added
audience_manage_read - Added
audience_manage_reconcile - Added
audience_reconcile_create - Added
audience_validate_create - Added
direct_apply_write - Added
direct_check_changes - Added
direct_deduplicate_keywords - Added
direct_get_bid_modifiers - Added
direct_get_bids - Added
direct_get_client - Added
direct_get_dictionaries - Added
direct_get_goal_statistics - Added
direct_get_keyword_bids - Added
direct_list_ad_extensions - Added
direct_list_ad_images - Added
direct_list_ad_videos - Added
direct_list_agency_clients - Added
direct_list_audience_targets - Added
direct_list_businesses - Added
direct_list_creatives - Added
direct_list_dynamic_feed_ad_targets - Added
direct_list_dynamic_text_ad_targets - Added
direct_list_feeds - Added
direct_list_leads - Added
direct_list_negative_keyword_sets - Added
direct_list_retargeting_lists - Added
direct_list_sitelinks - Added
direct_list_smart_ad_targets - Added
direct_list_strategies - Added
direct_list_turbo_pages - Added
direct_prepare_write - Added
metrika_get_offline_conversion_upload - Added
metrika_list_offline_conversion_uploads - Added
metrika_logs_cleanup - Added
metrika_logs_create - Added
metrika_logs_download_part - Added
metrika_logs_evaluate - Added
metrika_logs_get - Added
metrika_logs_list - Added
metrika_manage_apply - Added
metrika_manage_prepare - Added
metrika_manage_read - Added
metrika_manage_reconcile - Added
metrika_upload_offline_conversions - Added
metrika_validate_offline_conversions - Added
webmaster_get_feed - Added
webmaster_get_feed_problems - Added
webmaster_get_important_url_history - Added
webmaster_get_owners - Added
webmaster_get_pro_export_status - Added
webmaster_get_pro_limits - Added
webmaster_get_search_events_history - Added
webmaster_get_sqi_history - Added
webmaster_list_feeds - Added
webmaster_list_important_urls - Added
webmaster_list_pro_dates - Added
webmaster_list_regions - Added
webmaster_list_search_events - Added
webmaster_manage_apply - Added
webmaster_manage_prepare - Added
webmaster_manage_read - Added
webmaster_manage_reconcile - Added
webmaster_query_analytics - Added
webmaster_start_pro_export - Added
yandex_auth_finish - Added
yandex_auth_start - Added
yandex_auth_status - Added
yandex_check_update - Added
yandex_setup_toolsets - Changed
yandex_wordstat_dynamics4 fields changed- added
Input schema / properties / to_date / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / to_date / defaultAdded value: +null - removed
Input schema / properties / to_date / typeRemoved value: -"string" - changed
Input schema / requiredPrevious value: -[ - "phrase", - "from_date", - "to_date" -]New value: +[ + "phrase", + "from_date" +]
- Changed
yandex_wordstat_get_top1 field changed- added
Input schema / properties / devicesAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null +}
1 tool update
v0.3.0- Added
metrika_report
47 tool updates
v0.2.0- First observed
direct_apply_changes - First observed
direct_get_campaign - First observed
direct_get_inventory - First observed
direct_get_statistics - First observed
direct_keyword_forecast - First observed
direct_list_campaigns - First observed
direct_prepare_changes - First observed
direct_write - First observed
metrika_apply_goal - First observed
metrika_get_statistics - First observed
metrika_list_counters - First observed
metrika_list_goals - First observed
webmaster_apply_recrawl - First observed
webmaster_apply_sitemap - First observed
webmaster_get_broken_links_history - First observed
webmaster_get_diagnostics - First observed
webmaster_get_external_links_history - First observed
webmaster_get_host - First observed
webmaster_get_indexing_history - First observed
webmaster_get_query_history - First observed
webmaster_get_recrawl_quota - First observed
webmaster_get_recrawl_task - First observed
webmaster_get_search_urls_history - First observed
webmaster_get_sitemap - First observed
webmaster_get_summary - First observed
webmaster_get_user - First observed
webmaster_get_verification - First observed
webmaster_list_broken_links - First observed
webmaster_list_external_links - First observed
webmaster_list_hosts - First observed
webmaster_list_indexing_samples - First observed
webmaster_list_popular_queries - First observed
webmaster_list_recrawl_queue - First observed
webmaster_list_search_urls - First observed
webmaster_list_sitemaps - First observed
webmaster_list_user_sitemaps - First observed
webmaster_prepare_recrawl - First observed
webmaster_prepare_sitemap - First observed
webmaster_reconcile_action - First observed
yandex_serp_get_result - First observed
yandex_serp_prepare - First observed
yandex_serp_status - First observed
yandex_serp_submit - First observed
yandex_wordstat_dynamics - First observed
yandex_wordstat_get_top - First observed
yandex_wordstat_regions - First observed
yandex_wordstat_regions_tree
TDQS
Scored across 127 tools
Many tools have near-overlapping purposes: generic readers like direct_get_inventory and *_manage_read duplicate specific list/get tools, while direct_prepare_write, direct_prepare_changes, direct_write, and direct_apply_changes create multiple write paths. Rich descriptions help, but with 127 tools the boundaries remain hard to keep straight.
Names are overwhelmingly snake_case with verb+noun patterns grouped by service (direct_*, metrika_*, webmaster_*, audience_*). Deviations such as the yandex_* prefix for Wordstat/SERP/auth/setup and occasional noun-style names (e.g., yandex_wordstat_dynamics) are minor but prevent a perfect score.
127 tools is an extreme mismatch for a single MCP server; it far exceeds the 50-tool threshold and will cause context bloat and selection errors. Even accounting for the multi-platform scope, the count is unreasonable.
Coverage across Direct, Metrika, Webmaster, Audience, and Wordstat is extensive, with read, write, approval, and reconciliation paths. Minor gaps remain: no maps tools appear despite being referenced in setup, and destructive operations are intentionally omitted or routed through approvals.
Maintenance
Related MCP Connectors
MCP servers for Yandex APIs: Wordstat, Search, Webmaster, Metrika, Direct. Open source, by Seyka AI.
168MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
MCP for Yandex Direct: manage ad campaigns & analytics from Claude or ChatGPT
Yandex Direct, Metrika & Wordstat MCP for Russian digital marketing.
Related MCP Servers
- AlicenseCqualityDmaintenanceMCP server for Yandex Metrika analytics, enabling AI assistants to access traffic, content, demographics, conversion, e-commerce, and drill-down reports.3123 PyPI2MIT
- AlicenseBqualityCmaintenanceMCP server for managing Yandex Direct advertising, Yandex Metrica analytics, Wordstat keyword research, and Yandex Webmaster SEO tools, with self-configuring OAuth; provides 153 tools for complete ad and search workflows from AI assistants.1006 npm3MIT
- AlicenseNot gradedqualityFmaintenanceMCP server for Yandex Direct, Metrika, Wordstat, and Webmaster APIs, providing 132 tools to manage advertising campaigns, analytics, keyword research, and reporting through any MCP-compatible client.58MIT
- AlicenseAqualityAmaintenanceMCP server for Yandex Metrica analytics: query web analytics metrics, goals, conversions, and raw API data using natural language from AI clients like Claude and Cursor.870 npm4MIT