Skip to main content
Glama
askads

Yandex Direct MCP

Список объявлений

list_ads
Read-onlyIdempotent

Retrieve ads from Yandex Direct by campaign, ad group, or ad IDs, then narrow results with state and moderation status filters and paginate through all pages.

Instructions

Возвращает список объявлений. Нужно передать campaignIds, adGroupIds или ids — API Яндекс Директа требует хотя бы один из них; states и statuses только сужают выборку.

Input Schema

NameRequiredDescriptionDefault
idsNoФильтр по id объявлений.
limitNoМаксимум объектов на страницу.
offsetNoСмещение постраничной выдачи (сколько объектов пропустить).
statesNoФильтр по состояниям объявлений.
statusesNoФильтр по статусам модерации.
adGroupIdsNoФильтр по id групп объявлений.
fieldNamesNoКакие поля объявления вернуть. Тексты и ссылки (Title, Title2, Text, Href, …) приходят в объекте TextAd.
campaignIdsNoФильтр по id кампаний.
autoPaginateNoЗабрать все страницы, идя по LimitedBy (limit тогда не ограничивает общий объём).
client_loginNoЛогин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.11.0
    • changedInput schema / properties / fieldNames / description
      Previous value: -"Какие поля объявления вернуть."New value: +"Какие поля объявления вернуть. Тексты и ссылки (Title, Title2, Text, Href, …) приходят в объекте TextAd."
    • addedInput schema / properties / fieldNames / items / enum
      Added value: +[
      +  "AdCategories",
      +  "AgeLabel",
      +  "AdGroupId",
      +  "CampaignId",
      +  "Id",
      +  "State",
      +  "Status",
      +  "StatusClarification",
      +  "Type",
      +  "Subtype",
      +  "Title",
      +  "Title2",
      +  "Text",
      +  "Href",
      +  "FinalUrl",
      +  "DisplayDomain",
      +  "DisplayUrlPath",
      +  "Mobile",
      +  "SitelinkSetId",
      +  "VCardId",
      +  "AdImageHash",
      +  "AdExtensions",
      +  "TurboPageId",
      +  "BusinessId",
      +  "ErirAdDescription"
      +]
  2. Changed1 schema field changedv1.6.0
    • addedInput schema / properties / client_login
      Added value: +{
      +  "description": "Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.",
      +  "pattern": "^[A-Za-z0-9][A-Za-z0-9._@-]{0,99}$",
      +  "type": "string"
      +}
  3. Changed9 schema fields changedv1.5.1
    • changedInput schema / properties / adGroupIds / description
      Previous value: -"Filter by ad group ids."New value: +"Фильтр по id групп объявлений."
    • changedInput schema / properties / autoPaginate / description
      Previous value: -"Fetch all pages by following LimitedBy (ignores limit as a total cap)."New value: +"Забрать все страницы, идя по LimitedBy (limit тогда не ограничивает общий объём)."
    • changedInput schema / properties / campaignIds / description
      Previous value: -"Filter by campaign ids."New value: +"Фильтр по id кампаний."
    • changedInput schema / properties / fieldNames / description
      Previous value: -"Ad fields to return."New value: +"Какие поля объявления вернуть."
    • changedInput schema / properties / ids / description
      Previous value: -"Filter by ad ids."New value: +"Фильтр по id объявлений."
    • changedInput schema / properties / limit / description
      Previous value: -"Max objects per page."New value: +"Максимум объектов на страницу."
    • changedInput schema / properties / offset / description
      Previous value: -"Pagination offset (objects to skip)."New value: +"Смещение постраничной выдачи (сколько объектов пропустить)."
    • changedInput schema / properties / states / description
      Previous value: -"Filter by ad states."New value: +"Фильтр по состояниям объявлений."
    • changedInput schema / properties / statuses / description
      Previous value: -"Filter by moderation statuses."New value: +"Фильтр по статусам модерации."
  4. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description's added value is the API-level rule that a filter id is mandatory despite the schema marking zero required params. That is a meaningful behavioral constraint an agent cannot infer from structured fields. It does not describe result shape or pagination behavior, keeping it at 4.

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

Conciseness5/5

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

Two sentences, zero filler, with the core requirement and the narrowing behavior front-loaded. Every clause earns its place.

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

Completeness4/5

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

For a 10-parameter read tool with full schema coverage and annotations, the description supplies the one thing the schema omits (the mandatory filter). Minor gaps around autoPaginate/limit interaction and client_login precedence are already covered by the schema text.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3, but the description adds semantics beyond the schema by grouping campaignIds/adGroupIds/ids as the required selector set and framing states/statuses as narrowing filters. This helps the agent understand parameter relationships rather than read each field in isolation.

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

Purpose4/5

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

The first sentence states a specific verb and resource ('Возвращает список объявлений'), which is unambiguous and distinguishes it from sibling listers such as list_campaigns and list_ad_groups. It does not explicitly name alternatives to route against, so it falls short of a 5.

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

Usage Guidelines4/5

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

The description gives an explicit precondition — at least one of campaignIds, adGroupIds or ids must be supplied because the Yandex Direct API demands it — and clarifies that states/statuses only narrow the result. That is real when-to-use guidance, though it does not discuss alternatives like raw_request or get_creatives.

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