Skip to main content
Glama

Русский · English

yaseo

Напишите Claude «Проверь сайт example.ru» и получите план: что поправить на сайте, в каком порядке и на каком основании.

Бесплатный плагин yaseo для Claude Code показывает сайт с двух сторон: каким его видит Яндекс и каким его видят ИИ-поиски. Сделан для маркетологов и владельцев бизнеса, которые уже работают в Claude Code.

Claude Code проверяет сайт через yaseo и отдаёт план правок

Первая проверка без ключей

Для первой проверки не нужны ни ключи, ни карта.

  1. Поставьте Claude Code и uv.

  2. В Claude Code введите по очереди две команды:

    /plugin marketplace add https://github.com/novyiblog-tech/yaseo.git
    /plugin install yaseo@yaseo
  3. Напишите Claude:

    Проверь сайт example.ru

Claude обойдёт до 30 страниц, посмотрит, пускает ли сайт ботов ИИ-поиска, и соберёт план правок. Денег это не стоит: yaseo обращается только к вашему сайту.

Если терминал для вас в новинку, есть инструкция с проверкой после каждого шага: docs/INSTALL.md.

Related MCP server: yandex-searchapi-mcp

Что вы получите

План правок

Ради него всё и затевалось. В каждом пункте плана есть страница, что на ней сейчас (цитата или число с датой замера), что сделать, готовая инструкция для Claude или разработчика и способ проверить результат. Порядок задают правила: сначала всё, что мешает индексации, потом страницы, которым до верха выдачи осталось немного. Роста позиций план не обещает.

Если у Claude есть доступ к коду сайта, он выполнит пункт сразу. Сначала покажет, что поменяет, и сохранит только после вашего согласия.

Каким вас видит Яндекс

  • Технический аудит: индексация, битые ссылки, редиректы, title и description, canonical, разметка, перелинковка.

  • Позиции по вашим запросам с историей замеров: что выросло и что просело.

  • Спрос по Wordstat и подбор запросов для раздела сайта.

  • Живая выдача, конкуренты в топе и запросы, по которым они есть в выдаче, а вас там нет.

  • Бриф статьи по составу топа. Проверка, та ли страница сайта вышла по запросу статьи.

  • Показы и клики из Вебмастера, поведение из Метрики. Эти отчёты пока запускаются из терминала.

Каким вас видят ИИ-поиски

  • Готовность сайта: пускает ли robots.txt ботов ИИ-поиска, есть ли llms.txt и разметка JSON-LD. Бесплатно, без ключей.

  • Цитирование: ссылаются ли на ваш сайт генеративный ответ Яндекса, Perplexity, OpenAI, Gemini и Claude, каким адресом и кого называют вместо вас. Проверки копятся в истории.

Когда нужны ключи

Аудит, готовность к ИИ-поиску и план работают без ключей. Позиции, выдачу, Wordstat и генеративный ответ yaseo берёт из официального Yandex Search API. Для них нужен ключ Yandex AI Studio с привязанной картой. Как его получить: INSTALL.md, шаг 5. Где лежат ключи и как их сменить: docs/KEYS.md.

Ключи вписываются одной командой в терминале:

uvx --from git+https://github.com/novyiblog-tech/yaseo@v0.1.3 yaseo init

За обращения платите вы, по прайсу Яндекса: https://aistudio.yandex.ru/ru/docs/search-api/pricing. Перед платным шагом Claude называет, сколько будет обращений, и ждёт вашего «да». Дороже всего генеративный ответ Яндекса: на 16.09.2026 это 5 080 ₽ за 1 000 запросов. Ключи Perplexity, OpenAI, Gemini и Claude добавляются по желанию, платите по своему тарифу у провайдера.

Сам yaseo бесплатный. Код открыт, лицензия MIT.

О чём можно попросить

Проверь сайт example.ru
Дай план, как поднять позиции example.ru
Собери семантику для раздела «ремонт квартир»
Подготовь бриф статьи под запрос «как выбрать ламинат»
Какие у нас позиции и что изменилось?
Цитирует ли ИИ-поиск example.ru по запросу «где заказать ремонт»?

Дальше подробности для тех, кому интересно, как всё устроено.

Как устроен

  • Данные Яндекса приходят от самого Яндекса, через официальный Yandex Search API. Регион по умолчанию: вся Россия.

  • Выдача по одному запросу скачет: три запроса подряд могут дать 11, 6 и 5 место. Поэтому запрос, который уже бывал в топе, трекер снимает три раза и записывает медиану. Запрос, которого в топе не было, снимается один раз: ещё два «нет в топе» ничего бы не добавили. Трекер смотрит топ-10.

  • У каждого вывода есть доказательство. Если источник промолчал, yaseo пишет «нет данных» и число не подставляет.

  • Всё накопленное лежит у вас, в локальной базе SQLite.

  • MCP-сервер написан на Python и обходится стандартной библиотекой, внешних зависимостей нет.

Другие способы установки

Плагин из раздела выше подключает MCP-сервер yaseo и семь скиллов: yaseo-setup, seo-site-check, keyword-research, position-tracking, content-brief, improve-positions, ai-visibility. Сервер запускается командой uvx --from git+https://github.com/novyiblog-tech/yaseo@v0.1.3 yaseo-mcp, поэтому без uv он не поднимется.

Только MCP-сервер

Для Claude Code без плагина:

claude mcp add --transport stdio yaseo -- uvx --from git+https://github.com/novyiblog-tech/yaseo@v0.1.3 yaseo-mcp

В другом MCP-клиенте укажите команду uvx с аргументами --from git+https://github.com/novyiblog-tech/yaseo@v0.1.3 yaseo-mcp.

Команда yaseo в терминале насовсем:

uv tool install git+https://github.com/novyiblog-tech/yaseo@v0.1.3
yaseo --help

Из исходников

git clone https://github.com/novyiblog-tech/yaseo
cd yaseo
uv run yaseo --help
uv run yaseo-mcp < /dev/null   # сервер стартует и сразу выходит: так проверяется запуск

Список инструментов вручную:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | uv run yaseo-mcp

Инструменты MCP

В колонке «тратит» сказано, к какому платному API обращается инструмент и сколько раз за вызов. «Нет» значит, что инструмент читает локальную базу или ходит только на ваш сайт. Глубина выдачи набирается страницами по 10 результатов: топ-10 стоит одно обращение, топ-30 три, топ-50 (это предел) пять.

инструмент

что делает

тратит

whoami

откуда взяты ключи, чего не хватает, где база, какой домен по умолчанию

нет

research_keywords

расширить 1–5 фраз через Wordstat: частотность и связанные запросы

Wordstat, 1 на фразу

get_keyword_metrics

частотность и конкурентность, до 25 запросов

Wordstat и Search API, по 1 на запрос

get_serp_results

живая выдача Яндекса по запросу

Search API, по страницам глубины n (для топ-10 одно)

find_serp_competitors

кто повторяется в выдаче по набору до 10 запросов

Search API, 1 на запрос

get_competition

конкурентность с разбором по факторам и доказательствами

Search API, 1 на запрос

build_brief

разведка перед статьёй: топ, форматы, разрывы, подзапросы

Wordstat 1, Search API по страницам глубины n (для топ-10 одно)

expand_query_pool

кандидаты в пул отслеживания с причиной; запись при apply=true

Wordstat, 1

track_query

поставить запросы на отслеживание или снять

нет

run_tracking

снять позиции и записать в историю. Останавливается до первого запроса, если обращений выйдет больше потолка YASEO_TRACKING_MAX_CALLS или домен мерили недавно (с now=true снимает всё равно)

Search API, до 3 снимков на запрос × страницы глубины (для топ-10 одно обращение на снимок)

get_positions

текущие позиции и изменение к прошлому замеру

нет

get_position_history

история позиций по запросу, динамика конкурентности

нет

get_competitor_keywords

где конкурент в топе, а вас нет, по накопленным снимкам

нет

audit_site

технический аудит сайта; только http/https, внутренние адреса только с YASEO_ALLOW_PRIVATE=1

нет

check_articles

вышла ли по запросу именно эта статья блога. Останавливается до первого запроса, если обращений выйдет больше потолка articles_max_calls / YASEO_ARTICLES_MAX_CALLS

Search API, по страницам глубины на каждый уникальный запрос; общий запрос нескольких статей оплачивается один раз

get_article_effectiveness

отчёт по статьям и список каннибализаций

нет

get_storage_stats

что накоплено в базе

нет

get_action_plan

план правок по приоритету: доказательство, инструкция для Claude, способ проверки

нет: ходит только на сам сайт, остальное берёт из базы

geo_readiness

готовность сайта к ИИ-поиску; только http/https, внутренние адреса только с YASEO_ALLOW_PRIVATE=1

нет

geo_providers

какие ИИ-провайдеры настроены и каких ключей не хватает

нет

geo_check_visibility

цитирует ли ИИ-поиск сайт; без confirm возвращает только смету

только с confirm=true и списком providers

geo_history

история проверок: доля цитирований, частые конкуренты

нет

Смету в самом коде считают три инструмента. run_tracking и check_articles останавливаются до первого платного запроса, если выходят за потолок. geo_check_visibility без confirm=true ничего не тратит. Остальные платные инструменты (get_keyword_metrics, get_serp_results, find_serp_competitors, get_competition, build_brief, research_keywords, expand_query_pool) тратят сразу при вызове, и смету перед ними называет Claude по инструкции из скилла.

Провайдер yandex в geo_check_visibility означает генеративный ответ YandexGPT по результатам Поиска (POST /v2/gen/search в Yandex Search API). С «Нейро» и Алисой его путать не стоит. У каждого источника в ответе есть признак used, и показанный источник не всегда использован: в прогоне 16.09.2026 из пяти источников в ответ пошли три. Процитированным yaseo считает сайт, только если его источник использован.

Как собирается план

get_action_plan (в терминале yaseo plan --domain example.ru) строит список правок из того, что уже измерено или проверяется бесплатно: технического аудита, готовности к ИИ-поиску, истории позиций, выгрузок Вебмастера, реестра статей и накопленных снимков выдачи. Платных запросов он не делает. Если каких-то данных нет, план называет инструмент, который их даст, и сколько это стоит.

Общего балла нет, порядок задают правила:

  1. Индексация. Критичные находки аудита: страница не отдаётся, битая внутренняя ссылка, цепочка редиректов, noindex или Disallow у адреса из sitemap.xml. Сюда же robots.txt, который не отдаётся.

  2. Быстрые выигрыши. Запрос уже показывается, но не на верхних местах: по Вебмастеру средняя позиция 4–15, по трекеру позиция 4–10 (трекер снимает топ-10, и спрос по запросу должен быть известен). Страницу доводят под запрос, текущие title и H1 приводятся цитатой.

  3. Сниппет. Не меньше 30 показов, ноль кликов, позиция не ниже 10-й.

  4. Каннибализация. Две страницы сайта претендуют на один запрос.

  5. ИИ-поиск. robots.txt закрывает ботов ИИ-поиска, нет llms.txt, нет JSON-LD. Запрет для Google-Extended на Google Поиск не влияет, и план об этом пишет.

  6. Разрывы с конкурентами. Конкурент есть в накопленной выдаче по запросу с известной частотностью, а у сайта страницы под этот запрос нет.

  7. Остальное. Прочие находки аудита, по одному пункту на каждый вид.

В каждом пункте указаны страница, что сейчас (цитата или число, источник, дата замера), что сделать, блок «Инструкция для Claude» для своего Claude или разработчика, как проверить результат и когда ждать эффекта. Позиции план предлагает переснимать не раньше срока из настроек трекера.

Параметры: domain, url (адрес для аудита), max_pages (по умолчанию 30), sections (какие разделы собрать), limit (по умолчанию 10 пунктов, остальные сворачиваются в счётчик по разделам) и fresh_audit. Если аудита в базе нет или ему больше 7 дней, он проводится заново и сохраняется.

Как разобрать план и выполнять его по пункту, описано в скилле improve-positions.

Настройки

переменная

что задаёт

по умолчанию

YASEO_DOMAIN

домен сайта для «наших» позиций

не задан; если в базе один проект, берётся его домен

YASEO_DB

путь к базе SQLite

~/.local/share/yaseo/yaseo.db

YASEO_ENV_FILE

свой файл с ключами

не задан

YASEO_USE_PROXY

1: ходить к Яндексу через системный прокси

0, к Яндексу напрямую

YASEO_TRACKING_MAX_CALLS

потолок обращений к Search API за один прогон позиций

1000

YASEO_TRACKING_MIN_INTERVAL_DAYS

сколько суток выжидать между прогонами по одному домену (yaseo track --run и run_tracking); снять ограничение на один раз: --сейчас в терминале, now=true в MCP

13

YASEO_TRACKING_FILE

файл настроек трекера

~/.config/yaseo/tracking.json

YASEO_ARTICLES_MAX_CALLS

потолок обращений к Search API за прогон check_articles / yaseo articles --check

100

YASEO_ALLOW_PRIVATE

1: пускать аудит и проверку готовности на внутренние адреса (localhost, 10.0.0.0/8, 192.168.0.0/16 и подобные); у yaseo audit и yaseo plan для этого есть флаг --allow-private

0, отказ

YASEO_RATES

свой файл тарифов для сметы

встроенный rates.json

YASEO_RATE_SEARCH_API, YASEO_RATE_WORDSTAT

цена одного обращения в рублях, для сметы

из rates.json

Если заданы XDG_DATA_HOME и XDG_CONFIG_HOME, каталоги данных берутся оттуда.

Безопасность

Что заложено в код:

  • Содержимое сайтов и ответы ИИ-провайдеров выводятся отдельным подписанным блоком как данные. Инструкции внутри них Claude не выполняет.

  • Запросы с ключом или токеном идут только по https и не следуют за перенаправлениями, так что ключ не уедет на чужой домен. За этим следит общий сетевой слой net.py.

  • Сканер ходит только по http и https. На localhost и внутренние адреса (10.0.0.0/8, 192.168.0.0/16 и подобные) он пойдёт только с вашего разрешения: YASEO_ALLOW_PRIVATE=1 или флаг --allow-private у yaseo audit и yaseo plan. Адреса-числа вроде 127.0.0.1, [::1] и 10.0.0.5 отсекаются всегда. Имена сайтов проверяются по адресу, который вернул DNS. За прокси в режиме fake-ip (адреса 198.18.0.0/15) такая проверка бессильна: любое имя получает подставной адрес.

Приватность

Куда уходят данные:

  • Яндекс (searchapi.api.cloud.yandex.net): ваши запросы для Wordstat, выдачи и генеративного ответа, вместе с вашим ключом.

  • Яндекс ID, Вебмастер и Метрика (oauth.yandex.ru, api.webmaster.yandex.net, api-metrika.yandex.net), если вы подключили OAuth. Проверка токена yaseo yandex --check заодно спрашивает API Директа (api.direct.yandex.com), открыт ли он этому токену.

  • ИИ-провайдеры (api.perplexity.ai, api.openai.com, generativelanguage.googleapis.com, api.anthropic.com), если вы положили их ключ, выбрали провайдера и подтвердили проверку. Уходит текст запроса. Ссылки-переадресации в источниках Gemini yaseo раскрывает запросом HEAD.

  • Сайты, которые вы проверяете: аудит и проверка готовности читают их страницы.

Телеметрии нет. Кроме перечисленных адресов, yaseo никуда ничего не отправляет. Это видно по коду: все сетевые обращения идут через net.py, а зовут его только yandex_serp.py, wordstat_client.py, yandex_auth.py, audit.py, geo/providers.py и geo/readiness.py.

Что хранится у вас:

  • ключи: ~/.config/yaseo/.env, доступ только у владельца;

  • база: ~/.local/share/yaseo/yaseo.db: снимки выдачи, позиции, статьи, ответы ИИ-провайдеров (текст и исходный ответ API);

  • снапшоты Wordstat и отчёты: там же, в ~/.local/share/yaseo/.

Ключи ни в каком выводе не печатаются целиком.

Ограничения

  • Ссылок yaseo не видит, поэтому конкурентность считается только по составу выдачи.

  • Глубже топ-50 выдача не снимается. Для задач пакета дальние места ничего не решают, а каждые 10 мест стоят ещё одного платного обращения.

  • Wordstat принимает 100 запросов в час, большие списки придётся делить.

  • Ноль в Wordstat ещё не значит, что спроса нет: редкие формулировки Wordstat может не показать.

  • Генеративный ответ Яндекса дорогой и принимает не больше одного запроса в секунду.

  • Ответы ИИ меняются от раза к разу. Один прогон даёт снимок, картину дают повторы и история.

  • Вебмастер и Метрика пока доступны только из терминала.

  • Лимиты и цены Яндекса меняются, сверяйтесь с https://aistudio.yandex.ru/ru/docs/search-api/concepts/limits и https://aistudio.yandex.ru/ru/docs/search-api/pricing.

Лицензия

MIT, см. LICENSE.

Available Tools

22 tools
audit_siteB

Технический аудит сайта: индексация, метаданные, заголовки, канонические адреса, разметка, перелинковка. Каждая находка с доказательством.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesадрес сайта, например https://example.ru
max_pagesNoпредел обхода, по умолчанию 30, не больше 200

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It partially meets it by stating that every finding comes with evidence and by enumerating audit areas. However, it does not disclose whether the tool only reads the site, how it behaves under crawl limits, or what operational constraints apply; 'audit' implies read-only, but much behavior is left to inference.

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

Conciseness5/5

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

The description is two compact sentences with no filler; the audit areas are front-loaded and the evidence guarantee follows immediately. Every clause adds useful information, and it is appropriately sized for a tool with only two schema-covered parameters.

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

Completeness2/5

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

The tool has no output schema and no annotations, so the description should clarify what the returned findings look like; 'each finding with evidence' is vague about evidence structure and categories. It also omits practical constraints such as crawl time, error conditions, or how results are organized. The schema covers input limits, but an agent still lacks enough detail to interpret the output confidently.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The schema already documents url and max_pages, including the default and maximum values, and the description adds no parameter-specific meaning beyond the general audit scope. It does not explain how max_pages affects the depth or completeness of the audit.

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

Purpose4/5

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

The description clearly states a specific action and resource: a technical site audit, and lists audited areas (indexing, metadata, headings, canonical URLs, markup, internal linking). This distinguishes it from the sibling keyword/tracking tools. It could be sharper by naming a concrete output artifact, but the purpose is unambiguous.

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

Usage Guidelines2/5

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

The description gives no explicit when-to-use guidance, no prerequisites, and no mention of alternatives or exclusions. The only usage signal is the generic 'technical audit' phrase, so an agent is not told when to choose this over other SEO tools like get_action_plan or get_competition.

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

build_briefA

Разведка перед написанием статьи: частотность, конкурентность, состав топ-10, повторяющиеся форматы заголовков, разрывы и связанные запросы. Вызывать до того, как писать бриф копирайтеру.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoглубина выдачи, по умолчанию 10, не больше 50; каждые 10 документов — отдельное платное обращение
queryYesцелевой запрос статьи
regionNo
our_domainNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral-transparency burden. It does communicate that the tool is investigative reconnaissance and lists what it analyzes, implying a read-only operation. However, it does not explicitly state safety, data sources, limitations, cost behavior, or output format; only the 'n' schema description mentions paid calls.

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

Conciseness5/5

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

Two compact sentences with no filler. The first sentence front-loads what the tool does, and the second gives the key usage instruction. Every phrase earns its place.

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

Completeness3/5

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

The description covers the tool's analysis dimensions and when to call it, but the context is incomplete: there is no output schema, no annotations, two undocumented parameters, and no differentiation from closely related sibling tools. An agent knows the intent but lacks enough detail to confidently supply 'region' or 'our_domain' or to predict the returned structure.

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

Parameters2/5

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

Schema description coverage is only 50%: 'query' and 'n' have descriptions, while 'region' and 'our_domain' have none. The tool description does not compensate for the undocumented parameters or add meaning to the schema. The mention of 'целевой запрос' restates the query parameter rather than adding new semantic value.

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

Purpose4/5

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

The description names a concrete activity ('Разведка перед написанием статьи') and enumerates specific outputs: частотность, конкурентность, состав топ-10, форматы заголовков, разрывы, связанные запросы. This is a clear verb+resource statement, though it does not explicitly distinguish itself from sibling research tools such as research_keywords or get_serp_results.

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

Usage Guidelines4/5

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

The second sentence gives explicit workflow guidance: 'Вызывать до того, как писать бриф копирайтеру.' This tells an agent when in the process to invoke the tool. It does not mention when not to use it or point to alternatives, so it misses the exclusions part of a 5.

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

check_articlesB

Снять позиции статей блога по их целевым запросам: вышла ли ИМЕННО эта статья, или вместо неё другая наша страница (каннибализация), или ничего. Здесь тратятся запросы к Search API.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoглубина топа, по умолчанию 30 — иначе не видно «на подходе»; не больше 50
regionNo
project_idNoid проекта, без него — все статьи

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It discloses that the tool spends Search API requests (cost) and defines the output concept (three outcomes). It does not mention rate limits, response structure, or whether it is read-only (implied by 'check'). Missing details like error conditions or pagination.

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

Conciseness4/5

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

Two sentences, front-loaded with the primary purpose, then outcome types, and a cost warning. Efficient and well-ordered, though the cannibalization explanation could be slightly condensed. No wasted words.

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

Completeness3/5

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

The description covers the core concept and outcome types, which is sufficient for understanding the tool's function. However, with no output schema and no explanation of the return format (e.g., list of articles with status), an agent may not know how to interpret the result. It also does not clarify how depth, region, or project_id affect results beyond schema definitions.

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

Parameters2/5

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

Schema coverage is 67%: depth and project_id have descriptions, region does not. The description adds no parameter-specific information beyond what the schema already provides. It fails to compensate for the undocumented 'region' parameter, leaving the agent without clarity on its role or required format.

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

Purpose4/5

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

The description clearly states the tool gets positions of blog articles by their target queries and explains the three possible outcomes (article ranks, cannibalization by another page, or nothing). The verb 'снять' (get) and resource 'позиции статей' are specific. It does not explicitly differentiate from sibling tools like get_positions, but the cannibalization focus makes it distinct.

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

Usage Guidelines3/5

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

The description implies this is for checking article-specific rankings and warns that Search API requests are consumed, which is a cost consideration. However, it does not explicitly state when to prefer this over sibling tools (e.g., get_positions) or exclude use cases. The cost note is useful but not a full usage guideline.

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

expand_query_poolA

Предложить новые запросы в пул отслеживания по seed-фразе через Wordstat. По умолчанию показывает кандидатов с причиной по каждому; записывает при apply=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedYes
applyNoзаписать в пул, по умолчанию false
limitNoсколько взять, по умолчанию 20
regionNo
min_freqNoпорог частотности, по умолчанию 30
project_idNo

TDQS

A3.6/5.0
Behavior4/5

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

The description discloses key behavioral traits: it shows candidates by default and writes only when apply=true, including that each candidate comes with a reason. This is beyond what annotations (none provided) offer. However, it does not disclose potential side effects of writing (e.g., what happens to existing pool entries), rate limits, or authentication needs. For a write-capable tool, this is decent but not exhaustive.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the primary purpose and then the key behavioral distinction (default vs apply=true). Every word contributes; no fluff or redundancy. It is well-structured for quick comprehension.

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

Completeness2/5

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

The tool has 6 parameters, no output schema, and no annotations. The description does not explain the return format (what 'candidates with a reason' means), error handling, prerequisites for writing (e.g., is project_id required?), or the meaning of region. For a complex tool that can write, this is inadequate. It leaves an agent guessing on several critical aspects.

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

Parameters3/5

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

The description adds meaning to seed (via 'seed-фраза') and apply (via 'записывает при apply=true'), but it does not clarify limit, region, min_freq, or project_id. With schema coverage at 50% (only apply, limit, min_freq have descriptions), the description partially compensates but leaves half the parameters unexplained. It adds some value but not enough to cover the gaps.

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

Purpose5/5

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

The description clearly states the tool's action: 'Предложить новые запросы в пул отслеживания по seed-фразе через Wordstat' – proposing new queries to the tracking pool based on a seed phrase via Wordstat. It specifies the resource (pool), the input (seed phrase), and the data source (Wordstat), making it distinct from siblings like research_keywords or track_query. No tautology or ambiguity.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives. It only states the purpose but does not mention exclusions, prerequisites, or contrast with sibling tools such as research_keywords or track_query. An agent must infer the use case from the purpose alone, with no explicit routing.

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

find_serp_competitorsC

Кто повторяется в выдаче по набору запросов (до 10) — поисковые конкуренты с разделением на сайты и крупные площадки.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNo
queriesYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions output categories (sites vs. large platforms) but does not describe any side effects, permissions, data limits beyond the 10-query cap, or output format. This is a significant gap for a tool that lacks annotation support.

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

Conciseness4/5

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

The description is a single, concise sentence in Russian that conveys the core function without fluff. It is front-loaded with the primary purpose. However, it could be structured into bullet points for clarity, but as is, it is appropriately brief.

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

Completeness2/5

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

For a two-parameter tool with no annotations and no output schema, the description is incomplete. It does not explain the parameters, the return value structure, or when to invoke this tool relative to competitors. An agent would lack crucial information to call it correctly.

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

Parameters1/5

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

The schema has two parameters (region and queries) with 0% description coverage. The description only mentions the query count limit (up to 10) but does not explain the meaning of 'region' or the exact format/content of 'queries'. Since the schema provides no defaults or descriptions, the description must compensate, but it fails to do so.

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

Purpose4/5

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

The description states a specific purpose: identifying search competitors that recur across a set of queries (up to 10), and distinguishes them into sites and large platforms. It is clear about the resource (SERP competitors) and the action (find), but it does not explicitly name sibling tools or contrast with them, so it falls short of a top score.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like get_competitor_keywords or get_competition. The description implies a use case (analyzing repeat competitors across queries) but gives no explicit context, conditions, or exclusions.

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

geo_check_visibilityA

Цитирует ли ИИ-поиск сайт: задаёт запросы провайдерам и смотрит, есть ли домен среди источников ответа, каким адресом и на каком месте, кого цитируют вместо. Без confirm=true возвращает только смету (Яндекс 5,08 ₽ за запрос, зарубежные — по тарифу аккаунта). С confirm=true тратит деньги и пишет результат в историю.

ParametersJSON Schema
NameRequiredDescriptionDefault
matchNosite — весь сайт с поддоменами (по умолчанию), host — ровно этот хост
domainYesдомен сайта, например example.ru
confirmNotrue — выполнить и потратить; без него только смета
queriesYes1–10 запросов так, как их задал бы человек
repeatsNoсколько раз повторить каждый запрос, по умолчанию 1
providersNoкого спросить; по умолчанию все настроенные

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full transparency burden. It discloses that the tool sends queries to providers, that without confirm it returns only an estimate, and that with confirm it spends money and writes results to history. It even quotes a specific cost (Yandex 5.08 ₽ per query), which is strong 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.

Conciseness5/5

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

Two sentences, front-loaded with the core purpose, then the cost/confirm caveat. Every phrase contributes information: what the tool does, what the estimate costs, what confirm changes, and what is recorded. Zero filler.

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

Completeness4/5

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

The tool has no output schema and no annotations, so the description must explain outcomes. It does — it states the check returns whether the domain appears among sources, with address, position, and who is cited instead, plus the cost estimate behavior. This is sufficient for an agent to call it correctly, though minor details like what 'history' contains are left implicit.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value beyond the schema by explaining the estimate/paid distinction tied to confirm, the default provider behavior (all configured), and the kind of output produced (address, position, alternatives). These details help an agent understand parameter effects without opening the schema.

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

Purpose5/5

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

The description answers a specific question — 'does AI search cite the site?' — and explicitly describes the mechanism: sends queries to providers and checks whether the domain appears among sources, with address, position, and alternatives. This clearly distinguishes it from siblings like get_serp_results (classic SERP) and geo_providers (provider configuration).

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

Usage Guidelines4/5

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

The description clearly explains the two modes (estimate without confirm, paid run with confirm) and the cost implications, giving an agent enough context to decide when to invoke it. However, it does not explicitly name alternative tools or exclusion criteria, so it falls short of providing full when-not-to-use guidance.

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

geo_historyA

История проверок видимости в ИИ-ответах по домену или запросу: сколько раз процитирован, доля, частые конкуренты. Ничего не тратит.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoсколько последних строк взять, по умолчанию 50
queryNoточный текст запроса
domainNoдомен сайта
providerNo

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does add value by stating 'Ничего не тратит' (spends nothing) and using 'История' to imply a read-only historical view. It does not cover data freshness or limits, but the cost-free/read-only behavior is meaningfully disclosed.

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

Conciseness5/5

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

Two short sentences with no filler. The core purpose and output are front-loaded, and the cost note is compact and useful.

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

Completeness3/5

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

The description is adequate for a simple historical query tool: it states the purpose, the filter dimensions, the key metrics, and the no-cost behavior. However, without annotations or an output schema, it leaves provider semantics and filter combination ambiguous, and it does not say when to choose this over related geo tools.

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

Parameters3/5

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

Schema coverage is 75%, covering limit, query, and domain; provider is left as an enum without explanation. The description adds that domain or query can act as filters and describes the result contents, but it does not clarify how provider interacts with the other filters or whether they combine.

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

Purpose5/5

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

The description clearly identifies the resource: history of visibility checks in AI answers, scoped by domain or query. It also lists the returned metrics (citation count, share, frequent competitors), which distinguishes it from siblings like get_position_history and geo_check_visibility.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool instead of related geo tools. The phrase 'по домену или запросу' only describes filtering, and 'Ничего не тратит' implies safe usage but does not route the agent between alternatives.

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

geo_providersA

Какие провайдеры ИИ-ответов настроены (Яндекс, Perplexity, OpenAI, Gemini, Claude), каких ключей не хватает и где их взять, сколько стоит вызов. Ничего не тратит. Вызывать первым перед проверкой видимости.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

The description discloses that the tool 'ничего не тратит' (spends nothing), which is a behavioral guarantee beyond the schema. It also implies it is a read-only configuration check. However, with no annotations provided, the description carries the burden; it could add more detail about what exactly is returned (e.g., list of providers vs. statuses), but the cost-free and non-destructive nature is clearly conveyed.

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

Conciseness5/5

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

The description is compact and front-loaded: it states the main purpose first, then the cost implication, then the usage instruction. Every sentence adds value, and there is no redundancy or filler.

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

Completeness4/5

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

For a zero-parameter, read-only informational tool, the description is nearly complete. It explains what the tool does, that it is free, and when to call it. The only minor gap is that it doesn't specify the exact output format or whether it returns a list of providers with statuses, but given the simplicity and no output schema, this is a minor omission.

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

Parameters4/5

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

The tool has zero parameters, so the schema is trivially complete. The description adds context about what the tool reports (providers, missing keys, cost), which is useful even though there are no parameters to explain. Baseline 4 is appropriate for a no-parameter tool.

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

Purpose5/5

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

The description clearly states the tool's purpose: it lists configured AI answer providers (Yandex, Perplexity, OpenAI, Gemini, Claude), missing keys, where to get them, and call cost. It uses a specific verb ('Какие провайдеры настроены') and resource ('провайдеры ИИ-ответов'), and it is distinguishable from siblings like geo_check_visibility or get_storage_stats.

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

Usage Guidelines5/5

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

The description explicitly says to call this tool first before checking visibility ('Вызывать первым перед проверкой видимости'), giving clear usage context. It also states that it costs nothing, which helps an agent decide when to invoke it without risk.

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

geo_readinessB

Готовность сайта к ИИ-поиску без ключей: llms.txt по спецификации llmstxt.org, llms-full.txt, доступ ИИ-ботов в robots.txt (GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot, Google-Extended, YandexAdditional и др.), JSON-LD, FAQ-разметка, Markdown-версии страниц. Каждая находка — с доказательством и тем, что сделать. Ничего не тратит.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesадрес сайта, например https://example.ru
pagesNoсколько внутренних страниц проверить кроме главной, по умолчанию 2

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose that the tool 'doesn't spend anything' and that each finding includes evidence and recommended actions, which is useful context. However, it does not clarify whether it fetches pages, whether it modifies anything, or what limits apply.

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

Conciseness4/5

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

Two sentences, with the core purpose and checklist front-loaded. The second sentence adds value about output format and side-effect behavior. Slightly dense as a run-on list, but no wasted words.

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

Completeness3/5

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

The description covers what is checked and what the output looks like, which is adequate for a read-only audit. It lacks guidance on parameter usage, how many pages are checked by default, and how it relates to sibling tools, leaving some gaps for an agent deciding when to invoke it.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no extra meaning about the url or pages parameters, but it does not need to because the schema is self-sufficient.

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

Purpose4/5

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

The description clearly identifies the tool's focus: assessing a site's readiness for AI search without API keys, and lists concrete aspects (llms.txt, robots.txt AI bots, JSON-LD, FAQ markup, Markdown versions). It lacks a direct verb like 'check' or 'audit', but the resource and scope are specific enough to distinguish it from generic tools.

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

Usage Guidelines2/5

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

There is no explicit statement about when to use this tool versus alternatives such as geo_check_visibility, audit_site, or geo_history. The phrase 'without keys' implies a use case, but no exclusions, prerequisites, or sibling comparisons are provided.

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

get_action_planA

План правок сайта по приоритету: индексация, быстрые выигрыши (по Вебмастеру позиция 4–15, по трекеру 4–10: трекер снимает топ-10), сниппет (показы без кликов), каннибализация, ИИ-поиск, разрывы с конкурентами, остальное. Каждый пункт — с доказательством и датой замера, готовой инструкцией для Claude или разработчика, способом проверки и сроком, раньше которого эффект не проверять. Строится из аудита и проверки готовности (HTTP к самому сайту) и из того, что уже лежит в базе: позиции, выгрузки Вебмастера, статьи, снимки выдачи. Платных запросов не делает; чего нет в базе, того нет в плане — вместо этого называет инструмент и смету.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoадрес для аудита, по умолчанию https://<domain>
limitNoсколько пунктов показать, по умолчанию 10, не больше 200; остальное — счётчиком по разделам
domainNoдомен сайта; по умолчанию YASEO_DOMAIN или домен единственного проекта
sectionsNoкакие разделы собрать, по умолчанию все
max_pagesNoпредел обхода аудита, по умолчанию 30, не больше 200
fresh_auditNotrue — новый обход; false — последний аудит из базы. По умолчанию новый, если в базе аудита нет или ему больше 7 дней

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does a good job: it discloses that the tool performs an HTTP readiness check to the site itself, that it makes no paid requests, and that it only uses data already in the database—otherwise it names a tool and estimate rather than inventing data. This goes well beyond a generic 'get plan' description and gives important operational expectations.

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

Conciseness4/5

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

The description is dense but not bloated: two long sentences pack the priority categories, per-item contents, data sources, and key constraints. It is front-loaded with the main purpose and every clause adds useful information. Slightly over-long for trivial reading, but justified for a tool of this complexity.

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

Completeness4/5

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

Given no output schema and no annotations, the description explains the output structure well: each item has evidence, measurement date, instruction, verification method, and a deadline. It also covers data sources and the fallback behavior when data is missing. It would be more complete with explicit guidance on output JSON shape or when a fresh audit is triggered, but it is close to sufficient for safe selection.

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

Parameters3/5

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

The input schema has 100% description coverage, so the baseline is 3. The description does not explain individual parameters but does enrich the meaning of the `sections` values (e.g., quick wins defined by Webmaster positions 4–15 and tracker 4–10). Parameters like `limit`, `fresh_audit`, and `max_pages` remain adequately covered by the schema alone.

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

Purpose5/5

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

The description clearly states that the tool outputs a prioritized site-editing plan with named categories (indexing, quick wins, snippet, cannibalization, AI search, competitor gaps, etc.), which is distinct from sibling tools that return raw positions, audits, or keyword metrics. The verb/resource relationship is clear: it returns an action plan.

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

Usage Guidelines3/5

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

Usage context is implied rather than explicit: the description explains that the plan is built from an audit, readiness check, and existing database data, which suggests it is for synthesizing existing data into actionable tasks. However, it does not explicitly state when to use this tool over alternatives like audit_site, get_positions, or build_brief.

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

get_article_effectivenessA

Отчёт по статьям блога: вердикт и дельта по последнему замеру, отдельно список каннибализаций. Данные из истории, новых запросов к API не делает.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNo

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It explicitly states that no new API requests are made, indicating a read-only, historical operation, and describes the report contents. This is meaningful behavioral disclosure, though it lacks details on permissions or error behavior.

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

Conciseness5/5

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

The description is two concise sentences that immediately state the report's content and the historical, non-mutating nature of the call. Every word adds value, and it is efficiently front-loaded.

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

Completeness4/5

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

For a tool with a single parameter, no output schema, and no annotations, the description adequately conveys what the report contains and that it is historical. It does not detail the exact structure of the verdict or delta, but an agent can reasonably infer the expected output. Minor gaps remain, but it is nearly complete for its simplicity.

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

Parameters3/5

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

The sole parameter, project_id, is an integer with a self-explanatory name, and its meaning is clear from the schema even without description text. The description does not add any further explanation, but the parameter is simple enough that the schema name suffices; a baseline 3 is appropriate given the low schema coverage.

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

Purpose4/5

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

The description clearly states the tool returns a report on blog articles including a verdict, delta, and cannibalization list. It identifies the resource (blog articles) and the specific outputs, but does not explicitly distinguish it from sibling tools like check_articles, 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.

Usage Guidelines2/5

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

The description notes that data comes from history and that no new API requests are made, implying it is a lightweight read-only call. However, it provides no explicit guidance on when to choose this tool over alternatives, nor any exclusions or context for selection.

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

get_competitionC

Конкурентность запросов с полным разбором по факторам и доказательствами. Использовать, когда нужно понять, ПОЧЕМУ запрос сложный.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
regionNo
queriesNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description must carry transparency burden. It mentions 'with full breakdown by factors and evidence', giving some insight into output, but does not disclose side effects (likely read-only), data source, complexity, or rate limits. It is a read-like analysis tool, but without annotations, the absence leaves gaps.

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

Conciseness4/5

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

The description is two sentences, concise and front-loaded with the purpose, then the usage guidance. No fluff, each sentence earns its place.

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

Completeness2/5

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

Given 3 parameters, no annotations, no output schema, and 0% schema coverage, the description is insufficient. It does not explain input structure, output format, or how parameters relate, leaving an agent guessing on how to invoke it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameters. It provides no definition of 'query', 'region', or 'queries', and does not clarify that 'queries' is an array or how multiple queries are handled. The description is in Russian and may add language context, but for parameter semantics it adds nothing.

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

Purpose3/5

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

The description states the tool analyzes query competitiveness (Конкурентность запросов) and provides factor breakdown and evidence, which is a specific verb+resource. It explains when to use it (to understand why a query is complex), but does not clearly differentiate from siblings like research_keywords or get_serp_results, which may also relate to competition.

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

Usage Guidelines3/5

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

It says 'Use when you need to understand WHY a query is complex', which gives some usage context, but does not specify when NOT to use it or list alternatives. There is no guidance on choosing between this and similar tools like get_keyword_metrics or research_keywords.

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

get_competitor_keywordsA

По каким запросам конкурент выходит в топ и где нас рядом нет. Строится из накопленных снимков выдачи, новых запросов к API не делает.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesдомен конкурента
regionNo
our_domainNoнаш домен для сравнения

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and reveals an important trait: the tool performs no new API calls and relies on accumulated SERP snapshots, signaling a read-only, cache-based operation. It does not detail error behavior, authentication, or pagination, but the core operational 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.

Conciseness5/5

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

Two front-loaded sentences: the first states the tool's output clearly, the second discloses implementation behavior. No redundant words, and the information density is high for the tool's complexity.

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

Completeness3/5

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

The description explains core value and data source, but without output schema or annotations it does not fully describe result shape, the meaning of region, or how 'top' is defined. An agent could call it with just the required domain, yet some context about optional parameters and output format remains missing.

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

Parameters3/5

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

The description maps two parameters conceptually: 'competitor' refers to domain and 'нас' (us) implies our_domain for comparison, complementing the schema descriptions. However, the region parameter is left without any semantic explanation in either the schema or the description, and 67% schema coverage leaves a gap.

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

Purpose4/5

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

The description clearly identifies the tool's purpose: showing queries where a competitor ranks in the top and where our domain is absent. It also adds a differentiator by stating it is built from accumulated SERP snapshots and performs no new API requests, but it does not explicitly name a sibling tool or use an imperative verb.

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

Usage Guidelines3/5

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

The statement that the tool is based on accumulated snapshots and does not make new API requests implies when it is appropriate (using cached data) and when not (needing fresh results). However, it provides no explicit comparisons to alternatives or exclusion conditions, leaving usage inference to the agent.

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

get_keyword_metricsA

Частотность и конкурентность для списка запросов (до 25). Конкурентность считается по составу выдачи Яндекса, ссылочный вес не учитывается.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoпо умолчанию 225
keywordsYes
with_competitionNoсчитать конкурентность, по умолчанию true

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It usefully discloses the 25-query limit and the competition calculation basis, which is non-obvious. However, it does not mention output structure, error behavior, or whether the tool is read-only, so transparency is partial.

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

Conciseness5/5

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

The description is two short sentences with no filler. The core purpose is front-loaded, followed immediately by the key constraints and methodology. Every sentence earns its place.

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

Completeness3/5

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

For a simple metrics tool, the description covers purpose, query limit, and methodology. However, with no output schema and no annotations, it does not state the return format or any limit/error behavior, leaving a meaningful gap for an agent that needs to consume the result correctly.

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

Parameters4/5

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

The schema documents region and with_competition but not keywords. The description adds meaning to keywords by describing them as a list of queries limited to 25, and it explains what competition means for with_competition. Region remains only schema-documented, so the description does not fully compensate, but it adds real value.

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

Purpose4/5

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

The description opens with a specific action and resource: frequency and competitiveness for a list of queries, including a hard cap of 25. It also clarifies how competitiveness is calculated. However, it does not explicitly differentiate from sibling tools like get_competition or research_keywords.

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

Usage Guidelines4/5

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

The intended use case is clear: call this when you need frequency and competitiveness for up to 25 queries. The methodology note about Yandex SERP composition and ignoring link weight gives context that helps with tool selection, but it does not explicitly name alternatives or state when not to use this tool.

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

get_position_historyC

История позиций домена по одному запросу и динамика конкурентности этого запроса.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
domainNo
regionNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It only states that the tool returns history and competitiveness dynamics; it does not explain output format, time range, rate limits, or whether this is a read-only operation, which is a meaningful gap.

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

Conciseness5/5

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

The description is a single compact sentence with no filler or redundant phrasing. It opens with the core resource ('История позиций домена') and adds the secondary component ('динамика конкурентности') efficiently.

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

Completeness2/5

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

For a tool with three parameters, no annotations, and no output schema, the description omits too much operational context. An agent would not know how to set the region, what the returned history looks like, or how this differs behaviorally from close siblings like get_positions.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must clarify the parameters, but it only loosely references 'domain' and 'one query'. The required 'query' parameter is not explicitly explained, and the 'region' parameter is entirely absent from the description.

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

Purpose4/5

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

The description clearly identifies the tool's subject: a domain's position history for a single query, plus competitiveness dynamics for that query. It is specific enough to distinguish the core concept from current-position tools like get_positions, though it does not explicitly name any sibling or contrast them.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as get_positions, track_query, or geo_history. It implies a single-query historical scope but does not state that implication or provide any exclusion criteria.

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

get_positionsA

Текущие позиции домена с дельтой к прошлому замеру и списком выросших и просевших запросов. Данные из истории, новых запросов к API не делает.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNo
regionNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It goes beyond a simple getter by explicitly stating that no new API requests are made and data comes from history, which is valuable for avoiding unintended side effects. It doesn't mention errors, permissions, or response format, but the core non-obvious 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.

Conciseness5/5

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

Two short, front-loaded sentences with no filler. The first sentence communicates the core output, and the second delivers the crucial behavior about making no new API requests. Every word earns its place.

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

Completeness3/5

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

The description is adequate for a simple read-style endpoint, but with no output schema and no annotations, it leaves gaps around parameter meaning, required fields, and return structure. An agent can guess the intent but not fully know how to construct the call correctly, especially for 'region'.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain either parameter. 'domain' is inferable from context, but 'region' remains ambiguous as an integer (ID? country code? search region?). The tool relies entirely on parameter names, which is insufficient for an agent to know what values to provide.

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

Purpose5/5

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

Description states exactly what the tool returns: current domain positions, delta to the previous measurement, and lists of grown/fallen queries. This clearly distinguishes it from siblings like get_position_history, which would return historical series, and run_tracking, which triggers new tracking.

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

Usage Guidelines4/5

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

The phrase 'Данные из истории, новых запросов к API не делает' explicitly signals that this is for reading existing historical data without triggering new API work. It doesn't name specific alternatives or state when-not-to-use, but the context and sibling names imply the distinction.

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

get_serp_resultsC

Живая выдача Яндекса по одному запросу: позиции, домены, заголовки, глубина URL, число страниц домена по теме.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoсколько документов, по умолчанию 10, не больше 50
queryYes
regionNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It conveys that results are 'live' Yandex output, implying a read-only network fetch, but it does not disclose rate limits, caching behavior, failure modes, or whether results are snapshotted or transient. For a tool with zero annotation coverage, this is a notable gap.

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

Conciseness4/5

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

The description is a single efficient sentence that front-loads the core purpose and lists returned fields without fluff. It could be slightly more structured, but it earns its place and is appropriately sized.

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

Completeness2/5

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

Given that there is no output schema and no annotations, the description should provide enough operational context for an agent to call the tool correctly. It names outputs but leaves region semantics, relationship to the many sibling tools, and behavioral caveats unaddressed, so it is not complete enough.

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

Parameters2/5

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

Schema description coverage is only 33%: only 'n' is documented. The description mentions 'по одному запросу' but does not explain the 'query' or 'region' parameters, their formats, or how they affect results. With coverage this low, the description should compensate and does not.

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

Purpose4/5

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

The description states a specific verb and resource: it returns live Yandex SERP data for a single query, and enumerates the returned fields (positions, domains, titles, URL depth, page counts). It is clear enough to distinguish from sibling tools like get_position_history, though it does not explicitly name any sibling.

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

Usage Guidelines3/5

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

The phrase 'по одному запросу' implies this tool is for single-query live SERP retrieval, which gives some usage context. However, it does not explicitly state when to prefer this over siblings like get_positions, track_query, or find_serp_competitors, and offers no exclusions.

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

get_storage_statsB

Что накоплено в базе yaseo: снимки, замеры позиций, история конкурентности, самые частые домены выдачи.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must carry the full behavioral burden. It implies the tool reads already-accumulated data, but it does not explicitly state that it is read-only, what the response contains, or any freshness or scope limitations.

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

Conciseness5/5

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

The entire description is a single compact sentence, front-loading the database context and listing useful content categories without filler.

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

Completeness3/5

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

For a parameterless tool this is minimally adequate: the description names the data areas returned. However, with no output schema and no annotations, it leaves the return format and read-only nature implied rather than explicit, and it does not orient the agent among the many sibling data tools.

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

Parameters4/5

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

The tool has zero parameters and 100% schema coverage, so parameter documentation is unnecessary. The description still adds value by clarifying which stored-data categories the result covers.

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

Purpose4/5

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

The description names the resource (yaseo database) and enumerates the data categories it exposes: snapshots, position measurements, competition history, and frequent result domains. It does not explicitly state that it returns or aggregates these, and it overlaps conceptually with siblings like get_positions and get_competition, so it stops short of a full 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use get_storage_stats instead of related tools such as get_positions, get_competition, or get_serp_results. The list of content suggests an overview use case, but no when-to-use or when-not-to-use context is provided.

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

research_keywordsA

Расширить 1–5 seed-фраз через Wordstat: частотность и связанные запросы по РФ. Основной инструмент подбора семантики.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoсколько расширений на seed, по умолчанию 40
seedsYes1–5 seed-фраз
regionNoкод региона Яндекса, по умолчанию 225 (Россия)
min_freqNoотсечка по частотности, по умолчанию 30

TDQS

A4/5.0
Behavior4/5

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

No annotations are present, so the description carries the full behavioral burden. It discloses the execution mechanism (Wordstat), the scope (RF), and the output shape (frequency and related queries), which makes the tool's behavior predictable. It does not mention side effects, auth, or rate limits, but this is a research operation and there is no contradiction with any annotation.

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

Conciseness5/5

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

The description is a single compact sentence that front-loads the action and resource. The positioning clause 'Основной инструмент подбора семантики' adds useful context without wasted words.

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

Completeness4/5

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

For a tool with four parameters and no output schema, the description supplies the essential completion criteria: it expands seeds via Wordstat and returns frequency and related queries. It does not detail the exact response structure, but the schema coverage and the tool's simplicity make the description sufficiently complete.

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

Parameters3/5

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

The schema already describes all four parameters, so the baseline is 3. The description reinforces that seeds are 1–5 phrases and the region is RF, but it does not add substantial meaning beyond the existing parameter descriptions.

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

Purpose4/5

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

The description uses a specific verb, 'Расширить' (expand), names the resource (1–5 seed phrases via Wordstat), and states the output (frequency and related queries for RF). It also positions itself as the main semantic-research tool, though it does not explicitly distinguish itself from sibling expand_query_pool.

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

Usage Guidelines4/5

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

The description gives clear context: use this as the primary tool for keyword selection and seed expansion via Wordstat. It lacks explicit exclusions or when-not-to-use instructions for alternatives, but the stated primary-tool role provides enough guidance for an agent.

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

run_trackingA

Снять текущие позиции по отслеживаемым запросам и записать замер в историю. Здесь тратятся запросы к Search API. Прогон останавливается ДО первого запроса и ничего не тратит, если обращений вышло бы больше потолка (YASEO_TRACKING_MAX_CALLS) или домен уже мерили недавно (YASEO_TRACKING_MIN_INTERVAL_DAYS) — в обоих случаях ответ говорит, сколько нужно и как снять ограничение на этот раз (параметр now).

ParametersJSON Schema
NameRequiredDescriptionDefault
nowNotrue — снять срок между прогонами (YASEO_TRACKING_MIN_INTERVAL_DAYS) на этот один раз, по умолчанию false
domainNoосновной домен; по умолчанию YASEO_DOMAIN или домен единственного проекта
regionNo
queriesNoразовый набор вместо отслеживаемых
competitorsNoдомены конкурентов для замера

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries full behavioral disclosure. It reveals side effects: spending Search API calls and writing a history measurement. It also provides the important no-op guarantee: the run stops before the first request and spends nothing when limits would be exceeded, and it discloses the blocked-response behavior.

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

Conciseness5/5

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

Three sentences with no filler, front-loaded with purpose, then cost, then guardrails. Every sentence adds decision-relevant information.

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

Completeness4/5

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

Covers purpose, cost, failure modes, and the unblocking parameter despite having no output schema. The main omissions are success-return behavior and the meaning of region, but the description is nearly sufficient for a first correct invocation.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema already documents most parameters. The description adds a use-case link for now (how it lifts the restriction in blocked runs), but it does not materially extend domain/queries/competitors semantics. Region remains undescribed in both schema and description.

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

Purpose5/5

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

States a clear action: capture current positions for tracked queries and persist a measurement to history ("Снять текущие позиции по отслеживаемым запросам и записать замер в историю"). This distinguishes it from sibling tools like track_query or get_positions by emphasizing tracked-query scope plus the history write, and it also flags Search API cost.

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

Usage Guidelines4/5

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

Explains when running makes sense and the constraints: a run consumes Search API quota, and aborts before any request if it would exceed YASEO_TRACKING_MAX_CALLS or violate YASEO_TRACKING_MIN_INTERVAL_DAYS. It also tells the agent how to respond to blocks via the now parameter. It does not explicitly name sibling tools as alternatives, so no exclusions are given.

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

track_queryC

Поставить запросы на регулярное отслеживание позиций или снять их. Отслеживаемые запросы использует run_tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
regionNo
removeNoснять с отслеживания вместо добавления
queriesNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses the basic action (add/remove queries) but does not mention any side effects, such as whether removing a query deletes historical data, whether the operation requires specific permissions, or whether it is idempotent. It also does not state what happens on success or failure. For a state-mutating tool with zero annotation coverage, this is a significant transparency gap.

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

Conciseness4/5

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

The description is concise, just two sentences, and front-loads the core action (add/remove) before giving the run_tracking context. There is no fluff or repetition. It could be slightly more informative without losing efficiency, but it is well-structured for its length.

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

Completeness2/5

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

The tool has 4 parameters, no output schema, and no annotations, so the description must carry a lot of weight. It only explains the general purpose and the relationship to run_tracking, but it does not describe the parameters, expected return values, edge cases, or prerequisites (such as authentication via whoami). An agent would have to guess at the 'region' semantics and the response format, making the description inadequate for confident invocation.

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

Parameters2/5

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

Schema description coverage is only 25% (only the 'remove' parameter has a description). The tool description itself does not explain the meaning of the 'region' parameter, nor does it clarify the difference between the singular 'query' and the plural 'queries' (when to use one over the other). It repeats the general purpose but fails to add value beyond the schema for the three undocumented parameters, so it does not compensate for the low coverage.

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

Purpose4/5

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

The description clearly states the verb and resource: 'Поставить запросы на регулярное отслеживание позиций или снять их' – to put queries on regular position tracking or remove them. It also mentions that tracked queries are used by run_tracking, which helps place the tool in context. However, it does not explicitly differentiate from siblings like get_positions or run_tracking beyond the mention, so it stops short of a perfect score.

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

Usage Guidelines3/5

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

The description implies usage by stating 'Отслеживаемые запросы использует run_tracking' – tracked queries are used by run_tracking – which suggests you should use this tool to manage the set of queries before running tracking. However, it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives such as get_positions or get_position_history. It gives some context but no exclusions.

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

whoamiA

Проверить конфигурацию yaseo: откуда взяты ключи, каких не хватает и где их взять, путь к базе, домен по умолчанию. Ничего не тратит. Вызывать первым, прежде чем тратить запросы.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

The description states 'Ничего не тратит' (spends nothing), which is a behavioral disclosure that the tool has no side effects or resource consumption. While annotations are absent, this statement provides useful behavioral context. It doesn't detail what happens if config is missing, but the description covers the key behavioral trait.

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

Conciseness5/5

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

The description is concise, with two sentences that front-load the purpose and then add usage guidance. Every sentence earns its place: the first explains what it does, the second explains when to use it. No wasted words.

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

Completeness4/5

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

For a zero-parameter, no-output-schema tool, the description is quite complete. It explains what the tool checks, that it's free, and when to call it. It doesn't describe the output format, but with no output schema, that's a minor gap. The description gives enough for an agent to use it correctly.

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

Parameters4/5

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

The tool has zero parameters, so the schema provides no parameter information. The description compensates by explaining what the tool checks (keys, database path, default domain), which gives context about what the tool operates on. With 0 params, baseline is 4, and the description adds relevant context.

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

Purpose5/5

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

The description clearly states the tool's purpose: checking yaseo configuration, including key sources, missing keys, where to obtain them, database path, and default domain. It uses a specific verb ('Проверить') and resource ('конфигурацию yaseo'), making it distinct from sibling tools that perform actions like tracking, auditing, or research.

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

Usage Guidelines5/5

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

The description explicitly says to call this tool first before spending requests ('Вызывать первым, прежде чем тратить запросы'). This provides clear when-to-use guidance and implies it should be used before other tools, which is strong usage guidance.

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

Tool Schema Changelog

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

  1. 22 tool updatesv0.1.2
    • First observedaudit_site
    • First observedbuild_brief
    • First observedcheck_articles
    • First observedexpand_query_pool
    • First observedfind_serp_competitors
    • First observedgeo_check_visibility
    • First observedgeo_history
    • First observedgeo_providers
    • First observedgeo_readiness
    • First observedget_action_plan
    • First observedget_article_effectiveness
    • First observedget_competition
    • First observedget_competitor_keywords
    • First observedget_keyword_metrics
    • First observedget_position_history
    • First observedget_positions
    • First observedget_serp_results
    • First observedget_storage_stats
    • First observedresearch_keywords
    • First observedrun_tracking
    • First observedtrack_query
    • First observedwhoami

TDQS

B3.4/5.0

Scored across 22 tools

Disambiguation4/5

Most tools have clearly distinct purposes, with descriptions clarifying whether they operate on live data, history, or configuration. A few pairs like get_competition vs get_keyword_metrics both mention competition but differ in depth and batch size, making them distinguishable with careful reading. Overall, an agent can reliably select the right tool.

Naming Consistency4/5

The majority follow a get_* pattern for retrieval actions, but there are also action-oriented names like build_brief, track_query, run_tracking, and check_articles, plus a geo_* sub-family. This mixed convention is readable and generally predictable, though not perfectly uniform.

Tool Count3/5

At 22 tools, the server is on the heavier side, exceeding the typical well-scoped range of 3–15. However, each tool addresses a distinct SEO concern—from research to tracking to AI visibility—so the count is justifiable despite feeling dense.

Completeness5/5

The tool surface covers the full SEO lifecycle: keyword research, SERP analysis, position tracking, site audit, article performance, competitor analysis, AI search readiness, and an action plan. No critical operations appear missing for the server's stated purpose, making it a complete toolkit.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables keyword research and search trend analysis for the Russian market through Yandex Wordstat API. Provides access to popular search queries, search volume dynamics over time, and regional distribution data.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Provides tools for web, image, generative search, and Wordstat keyword statistics via Yandex Search API.
    7
    5 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Connects AI assistants to SEO data from Yandex Webmaster, Google Search Console, Yandex Metrica, and Topvisor, enabling natural language analysis of search performance, indexation, positions, and audits.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to work with Yandex Webmaster, Direct, and Metrika data through natural language, including managing sites, sitemaps, recrawls, ad campaigns with write-safety guards, and pulling traffic, conversion, and ad statistics.
    MIT