yaseo
The server provides an SEO toolkit for auditing websites, researching keywords, tracking rankings, and assessing AI search visibility.
Configuration: check
whoamifor key sources, missing keys, database path, and default domain.Keyword research: expand seed phrases with Wordstat (
research_keywords), get frequencies/competition (get_keyword_metrics), and propose tracking pool candidates (expand_query_pool).SERP analysis: fetch live Yandex results (
get_serp_results), find recurring competitors (find_serp_competitors), and analyze why queries are competitive (get_competition).Content briefs: research top results, formats, gaps, and related queries before writing (
build_brief).Position tracking: manage tracked queries (
track_query), run ranking snapshots (run_tracking), view current positions (get_positions), history (get_position_history), and competitor keyword gaps (get_competitor_keywords).Site audits: crawl and audit technical SEO, indexing, metadata, canonical URLs, markup, and internal linking (
audit_site).Articles: check which article ranks for its target query and detect cannibalization (
check_articles,get_article_effectiveness).AI search readiness: check llms.txt, robots.txt bot access, JSON-LD, and FAQ markup (
geo_readiness).AI search visibility: ask AI providers whether they cite the site, with cost estimates and confirmation (
geo_check_visibility,geo_history), and inspect configured providers (geo_providers).Action plan: generate prioritized SEO fix plan with evidence, instructions, and verification steps (
get_action_plan).Storage stats: inspect accumulated database data (
get_storage_stats).
Provides AI-search visibility checks for OpenAI, verifying whether a site is cited in OpenAI's generative answers and identifying cited URLs and competing sites.
Provides AI-search visibility checks for Perplexity, verifying whether a site is cited in Perplexity's generative answers and identifying cited URLs and competing sites.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yaseoCheck example.ru's AI search visibility"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Русский · English
yaseo
Напишите Claude «Проверь сайт example.ru» и получите план: что поправить на сайте, в каком порядке и на каком основании.
Бесплатный плагин yaseo для Claude Code показывает сайт с двух сторон: каким его видит Яндекс и каким его видят ИИ-поиски. Сделан для маркетологов и владельцев бизнеса, которые уже работают в Claude Code.

Первая проверка без ключей
Для первой проверки не нужны ни ключи, ни карта.
Поставьте Claude Code и uv.
В Claude Code введите по очереди две команды:
/plugin marketplace add https://github.com/novyiblog-tech/yaseo.git/plugin install yaseo@yaseoНапишите 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 (это предел) пять.
инструмент | что делает | тратит |
| откуда взяты ключи, чего не хватает, где база, какой домен по умолчанию | нет |
| расширить 1–5 фраз через Wordstat: частотность и связанные запросы | Wordstat, 1 на фразу |
| частотность и конкурентность, до 25 запросов | Wordstat и Search API, по 1 на запрос |
| живая выдача Яндекса по запросу | Search API, по страницам глубины |
| кто повторяется в выдаче по набору до 10 запросов | Search API, 1 на запрос |
| конкурентность с разбором по факторам и доказательствами | Search API, 1 на запрос |
| разведка перед статьёй: топ, форматы, разрывы, подзапросы | Wordstat 1, Search API по страницам глубины |
| кандидаты в пул отслеживания с причиной; запись при | Wordstat, 1 |
| поставить запросы на отслеживание или снять | нет |
| снять позиции и записать в историю. Останавливается до первого запроса, если обращений выйдет больше потолка | Search API, до 3 снимков на запрос × страницы глубины (для топ-10 одно обращение на снимок) |
| текущие позиции и изменение к прошлому замеру | нет |
| история позиций по запросу, динамика конкурентности | нет |
| где конкурент в топе, а вас нет, по накопленным снимкам | нет |
| технический аудит сайта; только http/https, внутренние адреса только с | нет |
| вышла ли по запросу именно эта статья блога. Останавливается до первого запроса, если обращений выйдет больше потолка | Search API, по страницам глубины на каждый уникальный запрос; общий запрос нескольких статей оплачивается один раз |
| отчёт по статьям и список каннибализаций | нет |
| что накоплено в базе | нет |
| план правок по приоритету: доказательство, инструкция для Claude, способ проверки | нет: ходит только на сам сайт, остальное берёт из базы |
| готовность сайта к ИИ-поиску; только http/https, внутренние адреса только с | нет |
| какие ИИ-провайдеры настроены и каких ключей не хватает | нет |
| цитирует ли ИИ-поиск сайт; без | только с |
| история проверок: доля цитирований, частые конкуренты | нет |
Смету в самом коде считают три инструмента. 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) строит список правок из того, что уже измерено или проверяется бесплатно: технического аудита, готовности к ИИ-поиску, истории позиций, выгрузок Вебмастера, реестра статей и накопленных снимков выдачи. Платных запросов он не делает. Если каких-то данных нет, план называет инструмент, который их даст, и сколько это стоит.
Общего балла нет, порядок задают правила:
Индексация. Критичные находки аудита: страница не отдаётся, битая внутренняя ссылка, цепочка редиректов, noindex или Disallow у адреса из sitemap.xml. Сюда же robots.txt, который не отдаётся.
Быстрые выигрыши. Запрос уже показывается, но не на верхних местах: по Вебмастеру средняя позиция 4–15, по трекеру позиция 4–10 (трекер снимает топ-10, и спрос по запросу должен быть известен). Страницу доводят под запрос, текущие title и H1 приводятся цитатой.
Сниппет. Не меньше 30 показов, ноль кликов, позиция не ниже 10-й.
Каннибализация. Две страницы сайта претендуют на один запрос.
ИИ-поиск. robots.txt закрывает ботов ИИ-поиска, нет
llms.txt, нет JSON-LD. Запрет для Google-Extended на Google Поиск не влияет, и план об этом пишет.Разрывы с конкурентами. Конкурент есть в накопленной выдаче по запросу с известной частотностью, а у сайта страницы под этот запрос нет.
Остальное. Прочие находки аудита, по одному пункту на каждый вид.
В каждом пункте указаны страница, что сейчас (цитата или число, источник, дата замера), что сделать, блок «Инструкция для Claude» для своего Claude или разработчика, как проверить результат и когда ждать эффекта. Позиции план предлагает переснимать не раньше срока из настроек трекера.
Параметры: domain, url (адрес для аудита), max_pages (по умолчанию 30), sections (какие разделы собрать), limit (по умолчанию 10 пунктов, остальные сворачиваются в счётчик по разделам) и fresh_audit. Если аудита в базе нет или ему больше 7 дней, он проводится заново и сохраняется.
Как разобрать план и выполнять его по пункту, описано в скилле improve-positions.
Настройки
переменная | что задаёт | по умолчанию |
| домен сайта для «наших» позиций | не задан; если в базе один проект, берётся его домен |
| путь к базе SQLite |
|
| свой файл с ключами | не задан |
|
|
|
| потолок обращений к Search API за один прогон позиций |
|
| сколько суток выжидать между прогонами по одному домену ( |
|
| файл настроек трекера |
|
| потолок обращений к Search API за прогон |
|
|
|
|
| свой файл тарифов для сметы | встроенный |
| цена одного обращения в рублях, для сметы | из |
Если заданы 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 toolsaudit_siteB
Технический аудит сайта: индексация, метаданные, заголовки, канонические адреса, разметка, перелинковка. Каждая находка с доказательством.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | адрес сайта, например https://example.ru | |
| max_pages | No | предел обхода, по умолчанию 30, не больше 200 |
TDQS
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.
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.
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.
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.
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.
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, повторяющиеся форматы заголовков, разрывы и связанные запросы. Вызывать до того, как писать бриф копирайтеру.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | глубина выдачи, по умолчанию 10, не больше 50; каждые 10 документов — отдельное платное обращение | |
| query | Yes | целевой запрос статьи | |
| region | No | ||
| our_domain | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | глубина топа, по умолчанию 30 — иначе не видно «на подходе»; не больше 50 | |
| region | No | ||
| project_id | No | id проекта, без него — все статьи |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | Yes | ||
| apply | No | записать в пул, по умолчанию false | |
| limit | No | сколько взять, по умолчанию 20 | |
| region | No | ||
| min_freq | No | порог частотности, по умолчанию 30 | |
| project_id | No |
TDQS
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.
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.
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.
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.
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.
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) — поисковые конкуренты с разделением на сайты и крупные площадки.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | ||
| queries | Yes |
TDQS
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.
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.
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.
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.
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.
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 тратит деньги и пишет результат в историю.
| Name | Required | Description | Default |
|---|---|---|---|
| match | No | site — весь сайт с поддоменами (по умолчанию), host — ровно этот хост | |
| domain | Yes | домен сайта, например example.ru | |
| confirm | No | true — выполнить и потратить; без него только смета | |
| queries | Yes | 1–10 запросов так, как их задал бы человек | |
| repeats | No | сколько раз повторить каждый запрос, по умолчанию 1 | |
| providers | No | кого спросить; по умолчанию все настроенные |
TDQS
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.
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.
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.
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.
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.
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
История проверок видимости в ИИ-ответах по домену или запросу: сколько раз процитирован, доля, частые конкуренты. Ничего не тратит.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | сколько последних строк взять, по умолчанию 50 | |
| query | No | точный текст запроса | |
| domain | No | домен сайта | |
| provider | No |
TDQS
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.
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.
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.
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.
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.
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), каких ключей не хватает и где их взять, сколько стоит вызов. Ничего не тратит. Вызывать первым перед проверкой видимости.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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-версии страниц. Каждая находка — с доказательством и тем, что сделать. Ничего не тратит.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | адрес сайта, например https://example.ru | |
| pages | No | сколько внутренних страниц проверить кроме главной, по умолчанию 2 |
TDQS
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.
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.
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.
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.
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.
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 к самому сайту) и из того, что уже лежит в базе: позиции, выгрузки Вебмастера, статьи, снимки выдачи. Платных запросов не делает; чего нет в базе, того нет в плане — вместо этого называет инструмент и смету.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | адрес для аудита, по умолчанию https://<domain> | |
| limit | No | сколько пунктов показать, по умолчанию 10, не больше 200; остальное — счётчиком по разделам | |
| domain | No | домен сайта; по умолчанию YASEO_DOMAIN или домен единственного проекта | |
| sections | No | какие разделы собрать, по умолчанию все | |
| max_pages | No | предел обхода аудита, по умолчанию 30, не больше 200 | |
| fresh_audit | No | true — новый обход; false — последний аудит из базы. По умолчанию новый, если в базе аудита нет или ему больше 7 дней |
TDQS
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.
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.
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.
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.
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.
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 не делает.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No |
TDQS
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.
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.
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.
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.
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.
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
Конкурентность запросов с полным разбором по факторам и доказательствами. Использовать, когда нужно понять, ПОЧЕМУ запрос сложный.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| region | No | ||
| queries | No |
TDQS
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.
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.
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.
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.
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.
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 не делает.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | домен конкурента | |
| region | No | ||
| our_domain | No | наш домен для сравнения |
TDQS
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.
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.
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.
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.
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.
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). Конкурентность считается по составу выдачи Яндекса, ссылочный вес не учитывается.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | по умолчанию 225 | |
| keywords | Yes | ||
| with_competition | No | считать конкурентность, по умолчанию true |
TDQS
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.
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.
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.
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.
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.
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
История позиций домена по одному запросу и динамика конкурентности этого запроса.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| domain | No | ||
| region | No |
TDQS
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.
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.
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.
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.
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.
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 не делает.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | ||
| region | No |
TDQS
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.
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.
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.
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.
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.
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, число страниц домена по теме.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | сколько документов, по умолчанию 10, не больше 50 | |
| query | Yes | ||
| region | No |
TDQS
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.
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.
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.
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.
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.
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: снимки, замеры позиций, история конкурентности, самые частые домены выдачи.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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: частотность и связанные запросы по РФ. Основной инструмент подбора семантики.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | сколько расширений на seed, по умолчанию 40 | |
| seeds | Yes | 1–5 seed-фраз | |
| region | No | код региона Яндекса, по умолчанию 225 (Россия) | |
| min_freq | No | отсечка по частотности, по умолчанию 30 |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| now | No | true — снять срок между прогонами (YASEO_TRACKING_MIN_INTERVAL_DAYS) на этот один раз, по умолчанию false | |
| domain | No | основной домен; по умолчанию YASEO_DOMAIN или домен единственного проекта | |
| region | No | ||
| queries | No | разовый набор вместо отслеживаемых | |
| competitors | No | домены конкурентов для замера |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| region | No | ||
| remove | No | снять с отслеживания вместо добавления | |
| queries | No |
TDQS
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.
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.
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.
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.
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.
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: откуда взяты ключи, каких не хватает и где их взять, путь к базе, домен по умолчанию. Ничего не тратит. Вызывать первым, прежде чем тратить запросы.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
22 tool updates
v0.1.2- First observed
audit_site - First observed
build_brief - First observed
check_articles - First observed
expand_query_pool - First observed
find_serp_competitors - First observed
geo_check_visibility - First observed
geo_history - First observed
geo_providers - First observed
geo_readiness - First observed
get_action_plan - First observed
get_article_effectiveness - First observed
get_competition - First observed
get_competitor_keywords - First observed
get_keyword_metrics - First observed
get_position_history - First observed
get_positions - First observed
get_serp_results - First observed
get_storage_stats - First observed
research_keywords - First observed
run_tracking - First observed
track_query - First observed
whoami
TDQS
Scored across 22 tools
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.
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.
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.
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
Related MCP Connectors
SEO, GEO & AI Visibility — research, write, optimize, publish & monitor content. 121 tools.
Web search, page reading and structured extraction for AI agents, with strong RU coverage
- VibeSEOOAuthdev.vibeseo
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
Full-cycle SEO automation for AI agents: technical audits, SEO articles, machine-readable pricing.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables 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.-
- AlicenseAqualityDmaintenanceProvides tools for web, image, generative search, and Wordstat keyword statistics via Yandex Search API.75 npm1MIT

marketscore-seo-mcpofficial
AlicenseNot gradedqualityCmaintenanceConnects 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- AlicenseNot gradedqualityBmaintenanceEnables 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