Server has 10 tools with complete schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention well (get_*, add_*, start_*, save_*). Descriptions are present but often generic or lack actionable context. Parameters have types and descriptions, but many lack constraints (enums, ranges). Error handling returns JSON with error codes but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Output schemas are not formally documented. The server accepts opaque IDs (host_id format 'https:example.com:443') without accepting human-friendly alternatives, forcing extra lookup calls.
Add a new site to Yandex Webmaster.
Get detailed information about a site including SQI (quality index).
Get list of all sites added to Yandex Webmaster.
Get aggregated search query statistics over time (all queries by day).
Get TOP-3000 popular search queries with clicks, impressions, and positions.
Get samples of pages currently appearing in Yandex search results (up to 50,000).
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). LLMs cannot distinguish safe reads from destructive writes without explicit hints. add_host and save_token modify state but lack destructiveHint.
Parameters lack enums and range constraints. order_by accepts 'TOTAL_SHOWS' or 'TOTAL_CLICKS' but is a free-form string; device_type_indicator accepts 'ALL|DESKTOP|MOBILE|PHONE|TABLET' but no enum constraint. LLMs hallucinate invalid values.
Opaque host_id format (https:example.com:443) required as parameter. No tool accepts human-friendly site names or URLs. Agents must call get_hosts first to discover IDs, forcing extra round-trips.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Get authenticated Yandex Webmaster user ID.
Save a Yandex OAuth token obtained from the browser authorization flow. Call this after completing the start_auth browser flow and copying your token from the browser.
Get step-by-step instructions to create a Yandex OAuth app for this MCP server.
Generate a Yandex OAuth authorization URL. Open it in your browser to approve access. Saves client_id to client_secret.json so it is available for re-authentication when the token expires. After approving in the browser, copy the token from the redirect page and call save_token.
Error responses return JSON with error_code and message but lack recovery guidance. 'AUTH_ERROR' tells the agent nothing about next steps. Should suggest 'Call start_auth() to re-authenticate' or similar.
Output schemas not formally documented. Tools return JSON but LLMs cannot see field types, required fields, or nested structure. Agents must infer from examples.