Skip to main content
Glama

Avito Ads MCP

npm CI Glama License: MIT

A1 Avito Ads MCP connects an AI app to your Avito Ads advertising account. It helps you review campaigns and statistics, manage a group's budget and bid, and work with agency balances, access rights, and ORD documents — in natural language.

This is not the Avito seller API: the server does not work with items, messaging, orders, or seller ad promotion. It works only with display and performance campaigns in the Avito Ads advertising account.

  • 25 tools. Campaigns, groups, creatives, statistics, balance, child accounts, users, and ORD documents.

  • Narrow campaign changes. The API only allows changing a group's budget and bid; you cannot create, edit, pause, or delete campaigns, groups, or creatives.

  • Irreversible operations are visible. Money or bonus transfers, user deletion, and raw API requests are marked as destructive.

  • Weekly API budget. Every call spends points; the server returns the apiPointBalance remaining with each result.

Start with a request that only reads data:

Show me the campaigns in my Avito account and last week's spend by ad group.

Connect the server · See scenarios · Open technical documentation


See it work in a minute

You: Show me the campaigns in my Avito account and last week's spend by ad group.

Assistant: Shows campaigns, groups, spend, clicks, and impressions. Nothing changes.

You: Prepare a bid change for group 101 to 350 rubles.

Assistant: Shows the account, group, current and new bid, then asks for confirmation.

You: Confirmed.

Assistant: Changes the bid for that group only. The campaign, creatives, and other groups are unchanged.

Related MCP server: VK Ads MCP

Contents

Quick start

You need Node.js 20+, a Client Key, a Client Secret, and the Avito Ads advertising account ID. An account administrator role is required to issue access.

  1. Get access.

  2. Add the server to your AI app.

  3. Send the safe first request above.

In Settings → Plugins → MCP servers, click Add server, then add npx -y mcp-avito-ads@latest with AVITO_ADS_CLIENT_ID, AVITO_ADS_CLIENT_SECRET, and AVITO_ADS_ACCOUNT_ID.

codex mcp add avito-ads \
  --env AVITO_ADS_CLIENT_ID=your_client_key \
  --env AVITO_ADS_CLIENT_SECRET=your_client_secret \
  --env AVITO_ADS_ACCOUNT_ID=your_account_id \
  -- npx -y mcp-avito-ads@latest
codex mcp list

Codex MCP documentation

claude mcp add \
  --env AVITO_ADS_CLIENT_ID=your_client_key \
  --env AVITO_ADS_CLIENT_SECRET=your_client_secret \
  --env AVITO_ADS_ACCOUNT_ID=your_account_id \
  --transport stdio --scope user avito-ads \
  -- npx -y mcp-avito-ads@latest
claude mcp list

Claude Code MCP documentation

Open Settings → Developer → Edit Config and add:

{"mcpServers":{"avito-ads":{"command":"npx","args":["-y","mcp-avito-ads@latest"],"env":{"AVITO_ADS_CLIENT_ID":"your_client_key","AVITO_ADS_CLIENT_SECRET":"your_client_secret","AVITO_ADS_ACCOUNT_ID":"your_account_id"}}}}

If Edit Config is unavailable, edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows. Claude Desktop MCP documentation

Add {"mcpServers":{"avito-ads":{"type":"stdio","command":"npx","args":["-y","mcp-avito-ads@latest"],"env":{"AVITO_ADS_CLIENT_ID":"your_client_key","AVITO_ADS_CLIENT_SECRET":"your_client_secret","AVITO_ADS_ACCOUNT_ID":"your_account_id"}}}} to ~/.cursor/mcp.json on macOS/Linux or %USERPROFILE%\.cursor\mcp.json on Windows. Cursor MCP documentation

Run MCP: Open User Configuration and add:

{"servers":{"avito-ads":{"type":"stdio","command":"npx","args":["-y","mcp-avito-ads@latest"],"env":{"AVITO_ADS_CLIENT_ID":"${input:avito_client_id}","AVITO_ADS_CLIENT_SECRET":"${input:avito_client_secret}","AVITO_ADS_ACCOUNT_ID":"${input:avito_account_id}"}}},"inputs":[{"type":"promptString","id":"avito_client_id","description":"Avito Ads Client Key"},{"type":"promptString","id":"avito_client_secret","description":"Avito Ads Client Secret","password":true},{"type":"promptString","id":"avito_account_id","description":"ID рекламного аккаунта"}]}

Check the server with the MCP: List Servers command. VS Code MCP documentation

What you can delegate

  • Show campaigns, groups, creatives, statuses, and statistics for a period.

  • Compare spend, CTR, CPM, CPC, or VTR across groups and creatives.

  • Check the balance and child accounts of the agency.

  • Prepare a budget or bid change for a single group.

  • Create an advertiser and an ORD contract, first showing the details being sent.

  • Add a user, change their role, or revoke access after confirmation.

What can change

Operation

What happens

Confirmation boundary

Campaigns, groups, creatives, statistics, balance, users, and ORD

Reads account data

Changes nothing

Group budget or bid

Changes one of the two available API group fields

Changes the ad group

User and role

Grants access or changes a role

Changes account access

Advertiser, contract, child, or sandbox account

Creates a new record

Irreversibly creates an object

Money or bonus transfer, user deletion

Changes the balance or removes access

Destructive and irreversible

Raw API request

May change data with confirmWrite: true

Potentially destructive

Campaigns, groups, and creatives cannot be created, edited, paused, archived, or deleted through this API. Creatives and targeting are also not writable.

Getting access

  1. Open the Avito Ads account as a user with the administrator role.

  2. Create an API app and copy the Client Key and Client Secret.

  3. Copy the advertising account ID.

  4. Pass them as AVITO_ADS_CLIENT_ID, AVITO_ADS_CLIENT_SECRET, AVITO_ADS_ACCOUNT_ID.

The server obtains a Bearer token via OAuth2 client_credentials. Store the Client Secret like a password. The account ID is set by configuration: tools cannot accidentally switch to another account.

To rehearse writes, you can set AVITO_ADS_ENVIRONMENT=sandbox. The sandbox is not a full copy of production: for example, the balance is unavailable there.

Configuration

Variable

Required

Description

AVITO_ADS_CLIENT_ID

Yes

Client Key of the API app.

AVITO_ADS_CLIENT_SECRET

Yes

Client Secret of the API app.

AVITO_ADS_ACCOUNT_ID

Yes

Advertising account ID.

AVITO_ADS_ENVIRONMENT

No

production or sandbox; defaults to production.

AVITO_ADS_TIMEOUT_MS

No

Request timeout; defaults to 30000 ms.

AVITO_ADS_MAX_RETRIES

No

429 retries; defaults to 4.

Data, limits, and background work

  • Weekly point budget. Points are refilled on Monday at 00:00 UTC. One long report of up to 100 days is usually more economical than a series of short ones; the server shows apiPointBalance with every result.

  • Transient errors. On 429, the error returns Retry-After and the remaining points. Writes are not retried after a network or 5xx error, so money is not transferred twice.

  • No continuous monitoring. The server only runs when called. If the AI app supports scheduled jobs, it can periodically collect statistics and the point balance.

  • Anonymous telemetry. It never includes secrets, account data, arguments, or prompts; disable with ASKADS_TELEMETRY=0.

Technical documentation

Support

Found a bug or missing a scenario? Create an issue or write to Telegram.

Available Tools

26 tools
add_userВыдать пользователю доступA
Idempotent

Выдаёт существующему пользователю Авито доступ к рекламному аккаунту с указанной ролью. userId — числовой id пользователя Авито; пригласить по почте или телефону и создать аккаунт Авито этот инструмент не может. Если доступ уже есть, роль меняется через set_user_role. Возвращает подтверждение API плюс apiPointBalance.

Inputs: role (required), userId (required).

auth_statusСтатус подключения к Авито РекламеA
Read-onlyIdempotent

Показывает, готов ли сервер работать: заданы ли AVITO_ADS_CLIENT_ID, AVITO_ADS_CLIENT_SECRET и AVITO_ADS_ACCOUNT_ID, нет ли среди них испорченного значения, какое окружение выбрано (production или sandbox) и какой адрес API используется. Ничего не отправляет в сеть и не возвращает ни client secret, ни токен. Вызовите это первым, если инструменты отвечают, что учётных данных нет или что аккаунт не найден: ответ называет конкретную переменную и что с ней не так, вместо повторения одной и той же ошибки на каждом вызове.

Inputs: no named parameters.

campaign_statsСтатистика кампанииA
Read-onlyIdempotent

Статистика ОДНОЙ кампании за период дат с разбивкой по группам и креативам: {campaign, groups[], creatives[]}. У каждой сущности есть data[] (по строке на день, с отметкой timestamp) и totalData (итог за период). Метрики в строке: views (показы), clicks (клики), ctr, spend (расход), spendBonus, cpm, cpc, а для видеокампаний ещё videoViews25/50/75/100, q25/q50/q75 и vtr; деньги в рублях, коэффициенты передаются как есть. Период включает обе границы, формат YYYY-MM-DD, длительность не больше 100 дней. Сводить несколько кампаний вместе не умеет, гранулярности мельче дня нет; campaignId даёт list_campaigns. Тратит недельные баллы API; apiPointBalance в ответе — остаток до пополнения квоты в понедельник в 00:00 UTC, поэтому один широкий период предпочтительнее многих узких вызовов.

Inputs: dateTo (required), dateFrom (required), campaignId (required).

change_group_budgetИзменить бюджет группы объявленийA
Idempotent

Задаёт бюджет одной группы объявлений в рублях (не меньше 1). Значение заменяет текущий бюджет, а не прибавляется к нему, поэтому повторный вызов безопасен. Принимают его только группы с ручным управлением ставками, остальным API отказывает. Возвращает подтверждение API плюс apiPointBalance. Изменить бюджет кампании, ставку (для неё есть change_group_price) или статус группы нельзя — приостановить, возобновить или удалить группу этот API вообще не умеет. Текущий бюджет стоит сначала посмотреть через list_groups.

Inputs: budget (required), groupId (required).

change_group_priceИзменить ставку группы объявленийA
Idempotent

Задаёт ставку одной группы объявлений (в API она называется price) в рублях (не меньше 1). Единица зависит от paymentModel группы: рубли за 1000 показов при CPM, рубли за клик при CPC. Значение заменяет текущую ставку, а не прибавляется к ней, поэтому повторный вызов безопасен. Принимают его только группы с ручным управлением ставками. Возвращает подтверждение API плюс apiPointBalance. Изменить бюджет (для него есть change_group_budget) или статус группы нельзя — приостановить, возобновить или удалить группу этот API вообще не умеет. Текущую ставку показывает поле price в list_groups.

Inputs: price (required), groupId (required).

create_advertiserЗарегистрировать рекламодателя (ОРД)A

Регистрирует рекламодателя (контрагента ОРД) под аккаунтом и возвращает {id} плюс apiPointBalance (остаток недельных баллов API). На этот id ссылаются кампании и договоры. Юридические реквизиты должны совпадать с госреестром: inn (10 цифр для ul, 12 для ip), ogrn и оба адреса; kpp — только для юрлиц (ul). legalRole задаёт роль по ОРД: rd (рекламодатель), ra (агентство), rr (распространитель). Эндпоинтов изменения и удаления нет: ошибочного рекламодателя можно только заместить новым, поэтому сначала стоит поискать готовую запись через list_advertisers.

Inputs: inn (required), ogrn (required), longName (required), legalRole (required), +5 more.

create_child_accountСоздать дочерний аккаунт без права оплатыA

Создаёт дочерний аккаунт без права оплаты под настроенным агентским аккаунтом и возвращает {accountID, clientKey, clientSecret} — собственные учётные данные API нового аккаунта, которые выдаются только здесь, поэтому сохранить их нужно сразу. Без права оплаты означает, что аккаунт не может пополнить свой баланс сам: деньги приходят из родительского через transfer_funds. Создать аккаунт с правом оплаты, переименовать или удалить аккаунт, а также прочитать секрет заново нельзя. Два вызова создают два аккаунта.

Inputs: shortName (required), isSelfAdvertisingEnabled (required).

create_contractЗарегистрировать договор (ОРД)A

Регистрирует договор ОРД между аккаунтом и рекламодателем и возвращает {id} плюс apiPointBalance (остаток недельных баллов API). Набор обязательных полей зависит от type: service требует subject, isReportingRequired, date и number (cid отклоняется); intermediary — всё то же плюс object и isFundsAllocationToPrincipal (cid отклоняется); external — только cid (parentId отклоняется). Юридические реквизиты исполнителя передаются в intermediary — они обязательны, если не задан parentId; с parentId запись становится дополнительным соглашением к тому договору, и intermediary в ней быть не должно. Эндпоинтов изменения и удаления нет, поэтому ошибочный договор остаётся на аккаунте навсегда.

Inputs: type (required), advertiserId (required), counterpartyType (required), cid, +8 more.

create_sandbox_accountСоздать аккаунт в песочницеA

ТОЛЬКО ПЕСОЧНИЦА: создаёт тестовый аккаунт рекламодателя и возвращает его accountID. Сервер отклоняет вызов, если не задано AVITO_ADS_ENVIRONMENT=sandbox, и такой отказ не стоит балла API. contact — непустой объект, например {"name":"Иван Иванов","email":"ivan@example.com","phone":"+79001234567"}; пустой отклоняется до отправки запроса. Два вызова создают два аккаунта. Изменить или удалить аккаунт нельзя, а сервер продолжает работать с AVITO_ADS_ACCOUNT_ID: новый id сам не подхватывается, для работы с ним его нужно прописать в конфигурации.

Inputs: inn (required), ogrn (required), contact (required), longName (required), +5 more.

creative_statsСтатистика креативовA
Read-onlyIdempotent

Статистика по перечисленным креативам одной кампании: плоский массив, по записи на креатив ({id, name, groupId, paymentModel, campaignType, data[] по дням, totalData за период}). Метрики те же, что у campaign_stats — views (показы), clicks (клики), ctr, spend (расход), spendBonus, cpm, cpc, квартили видео, vtr, — деньги в рублях. Поле creativeIds обязательно: инструмент сужает выборку, а не перечисляет её. Период включает обе границы, формат YYYY-MM-DD, длительность не больше 100 дней. Итогов по кампании не возвращает; чтобы охватить все креативы кампании, есть campaign_stats с той же разбивкой. Тратит недельные баллы API; apiPointBalance в ответе — остаток до пополнения квоты в понедельник в 00:00 UTC, поэтому один широкий период предпочтительнее многих узких вызовов.

Inputs: dateTo (required), dateFrom (required), campaignId (required), creativeIds (required).

delete_userОтозвать доступ пользователяA
Destructive

Отзывает доступ пользователя к рекламному аккаунту. Операция разрушительная: вернуть доступ можно только через add_user с явно указанной ролью. Аккаунт Авито этого человека, его кампании и историю расходов не удаляет. Возвращает подтверждение API плюс apiPointBalance.

Inputs: userId (required).

get_accountРеквизиты аккаунтаA
Read-onlyIdempotent

Возвращает юридические реквизиты рекламного аккаунта, к которому привязан сервер: inn, kpp, ogrn, shortName, longName, legalAddress, actualAddress и блоки contact / manager. Аргументов не принимает — аккаунт задан в AVITO_ADS_ACCOUNT_ID и не выбирается для отдельного вызова. Денежных сумм не содержит (для них get_balance), данных кампаний тоже. Как и у всех инструментов здесь, в ответе есть apiPointBalance: остаток баллов API на текущую неделю (квота пополняется по понедельникам в 00:00 UTC).

Inputs: no named parameters.

get_balanceБаланс аккаунтаA
Read-onlyIdempotent

Возвращает текущий баланс настроенного рекламного аккаунта в рублях: balance (реальные деньги) и bonusBalance (бонусные рубли, которые можно тратить только на рекламу). Аргументов не принимает. Это срез на текущий момент, а не история — расход за период дают инструменты статистики. Аккаунт не пополняет.

Inputs: no named parameters.

group_statsСтатистика групп объявленийA
Read-onlyIdempotent

Статистика по перечисленным группам одной кампании: плоский массив, по записи на группу объявлений ({id, name, paymentModel, campaignType, data[] по дням, totalData за период}). Метрики те же, что у campaign_stats — views (показы), clicks (клики), ctr, spend (расход), spendBonus, cpm, cpc, квартили видео, vtr, — деньги в рублях. Поле groupIds обязательно: инструмент сужает выборку, а не перечисляет её. Период включает обе границы, формат YYYY-MM-DD, длительность не больше 100 дней. Итогов по кампании не возвращает; чтобы охватить все группы кампании, есть campaign_stats с той же разбивкой. Тратит недельные баллы API; apiPointBalance в ответе — остаток до пополнения квоты в понедельник в 00:00 UTC, поэтому один широкий период предпочтительнее многих узких вызовов.

Inputs: dateTo (required), dateFrom (required), groupIds (required), campaignId (required).

list_advertisersСписок рекламодателейA
Read-onlyIdempotent

Возвращает одну страницу рекламодателей, зарегистрированных под аккаунтом: {total, items, page, limit, hasNextPage} плюс apiPointBalance (остаток недельных баллов API). В каждом элементе id, shortName, longName, inn, ogrn, kpp, legalAddress, actualAddress, legalType (ul|ip) и legalRole (rd|ra|rr). Сузить выдачу можно через filter.ids / filter.inns / filter.roles; полнотекстового поиска нет, совпадения по названиям придётся искать самостоятельно. limit — 1..100 (по умолчанию 20); нумерация page с 1.

Inputs: page, limit, filter.

list_campaignsСписок рекламных кампанийA
Read-onlyIdempotent

Перечисляет рекламные кампании аккаунта постранично. Возвращает {total, items, page, limit, hasNextPage} плюс apiPointBalance — остаток недельных баллов API, которые пополняются по понедельникам в 00:00 UTC. У каждой кампании есть id, name, status, budget (рубли), paymentModel (CPM/CPC), campaignType, startDate/endDate, advertiserId, contractId, managerID и отметки времени. Поля фильтра объединяются по И, и каждый список оставляет только перечисленные в нём значения. Через этот API нельзя создать, изменить, приостановить, возобновить, заархивировать или удалить кампанию и нельзя тронуть её таргетинг — единственные доступные где-либо изменения это change_group_budget и change_group_price для группы объявлений.

Inputs: ids, page, limit, filter, +9 more.

list_child_accountsДочерние аккаунтыA
Read-onlyIdempotent

Перечисляет дочерние (суб-)аккаунты настроенного агентского аккаунта. Каждая запись — {account:{id,shortName}, contract}. Балансов здесь НЕТ, для них есть list_child_accounts_with_balances. Возвращает всех дочерних за один вызов: без постраничной выдачи, фильтров и поиска. apiPointBalance в любом ответе этого сервера — остаток баллов API на текущую неделю (квота пополняется по понедельникам в 00:00 UTC); по нему и стоит рассчитывать частоту вызовов.

Inputs: no named parameters.

list_child_accounts_with_balancesДочерние аккаунты с балансамиA
Read-onlyIdempotent

Тот же список, что и list_child_accounts, плюс баланс каждого дочернего аккаунта: {balance, bonusBalance} в рублях и бонусных рублях. Позволяет увидеть, у кого кончились деньги, перед transfer_funds / transfer_bonus и убедиться, что перевод дошёл. Показывает только балансы дочерних аккаунтов — баланс родительского даёт get_balance.

Inputs: no named parameters.

list_contractsСписок договоровA
Read-onlyIdempotent

Возвращает одну страницу договоров, зарегистрированных под аккаунтом: {total, items, page, limit, hasNextPage} плюс apiPointBalance (остаток недельных баллов API). В каждом элементе id, type, number, date, subject, object (действие по договору), cid, description (тип контрагента), parentId (заполнен у дополнительных соглашений) и юридические реквизиты клиента и исполнителя. Сузить выдачу можно через filter.ids / filter.numbers / filter.clients (id рекламодателей) / filter.contractors. limit — 1..100 (по умолчанию 20); нумерация page с 1.

Inputs: page, limit, filter.

list_creativesСписок креативовA
Read-onlyIdempotent

Перечисляет креативы аккаунта — сами объявления — постранично. Возвращает {total, items, page, limit, hasNextPage} плюс apiPointBalance (остаток недельных баллов API). У каждого креатива есть id, name, title, description, buttonText, link, status, groupID, campaignID, advertiserID, paymentModel, campaignType и legalInfo (данные рекламного реестра / ERID). Только чтение: загрузить, изменить, отправить на модерацию, приостановить или удалить креатив через этот API нельзя — изменять можно только бюджет и ставку группы объявлений.

Inputs: ids, page, limit, filter, +8 more.

list_groupsСписок групп объявленийA
Read-onlyIdempotent

Перечисляет группы объявлений аккаунта постранично. Возвращает {total, items, page, limit, hasNextPage} плюс apiPointBalance (остаток недельных баллов API). Группа — тот уровень, на котором лежат деньги: в каждом элементе id, name, campaignID, status, budget и price (ставка) в рублях, paymentModel, campaignType, advertiserID, haveCreative и отметки времени. Эти два числа меняют change_group_budget / change_group_price — других изменяемых полей во всём дереве рекламных объектов нет. Создать, переименовать, приостановить, возобновить или удалить группу здесь нельзя, таргетинг групп не выведен.

Inputs: ids, page, limit, paces, +7 more.

list_usersПользователи аккаунтаA
Read-onlyIdempotent

Перечисляет пользователей с доступом к рекламному аккаунту — по одной записи {id, role, hasLoggedIn} на пользователя, где role это admin или viewer, а hasLoggedIn показывает, входил ли приглашённый хоть раз. Эти id принимают set_user_role и delete_user. Работает в пределах настроенного аккаунта: пользователей дочернего аккаунта не покажет. Вместе с данными возвращает apiPointBalance (остаток недельных баллов).

Inputs: no named parameters.

raw_requestПрямой вызов API Авито РекламыA
Destructive

Универсальный запрос к любому пути API Авито Рекламы — для эндпоинтов, у которых нет отдельного инструмента, например GET "v1/account/{accountID}/balance" или POST "v1/account/{accountID}/campaigns". Пути задаются относительно базы API и привязаны к аккаунту: подстановка {accountID} заменяется на настроенный id аккаунта, путь с другим аккаунтом отклоняется, как и путь, выходящий за базу API. body отправляется как JSON. Через него доступны все пишущие эндпоинты — funds-transfer, bonus-transfer, delete-user и create-, — причём без клиентских проверок, которые делают отдельные инструменты, и ничего из этого не отменить; когда специальный инструмент есть, лучше взять его: transfer_funds / delete_user / create_. confirmWrite=true — явное подтверждение того, что путь может писать, поэтому перед установкой флага путь стоит проверить: POST используется и для безобидных чтений — списков и статистики, — которым флаг тоже нужен. GET выполняется без ограничений. Возвращает сырой ответ плюс apiPointBalance (остаток недельных баллов).

Inputs: path (required), body, method, confirmWrite.

set_user_roleИзменить роль пользователяA
Idempotent

Меняет роль пользователя, у которого уже есть доступ к рекламному аккаунту. Назначение той же роли, что стоит сейчас, ничего не меняет. Доступ не выдаёт (для этого add_user) и не отзывает (для этого delete_user). Возвращает подтверждение API плюс apiPointBalance.

Inputs: role (required), userId (required).

transfer_bonusПеревести бонусные рубли на другой аккаунтA
Destructive

Переводит бонусные рубли (bonusBalance — промо-средства, которыми можно оплачивать рекламу, но нельзя вывести деньгами) с настроенного аккаунта на другой: amount бонусных рублей, минимум 1. Правила те же, что у transfer_funds: через этот API перевод необратим, пустой объект data означает, что он прошёл, а после сетевой или серверной ошибки следует проверить list_child_accounts_with_balances, а не повторять вызов. Переводит только бонусы — реальные деньги идут через transfer_funds.

Inputs: amount (required), accountIdTo (required).

transfer_fundsПеревести деньги на другой аккаунтA
Destructive

Переводит РЕАЛЬНЫЕ ДЕНЬГИ с настроенного аккаунта на другой (обычно на один из дочерних): amount рублей, минимум 1. Через этот API перевод необратим — нет ни отмены, ни отката, ни журнала переводов; вернуть деньги можно только встречным переводом, а для него аккаунт-получатель должен уметь отправлять средства. При успехе возвращается пустой объект data: любой ответ без ошибки означает, что перевод выполнен, и повторять вызов нельзя. После сетевой или серверной ошибки исход неизвестен — прежде чем повторять, следует проверить list_child_accounts_with_balances, иначе деньги уйдут дважды.

Inputs: amount (required), accountIdTo (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 26 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose, even those with similar themes (e.g., list_child_accounts vs. list_child_accounts_with_balances, or the three stats tools) are explicitly differentiated by their descriptions, which highlight what each returns and when to use it. The generic raw_request is deliberately scoped for endpoints without dedicated tools, so it does not conflict with the specialized ones.

    Naming Consistency5/5

    All tool names follow a consistent snake_case verb_noun pattern (list_*, get_*, create_*, change_*, transfer_*, set_*, delete_*, add_*, etc.). Even less standard names like raw_request and auth_status are consistent in style and clearly convey their function, with no mixing of conventions.

    Tool Count4/5

    With 26 tools, the count is slightly above the typical 3-15 range but is appropriate given the broad scope of the Avito Ads API, covering account management, user access, advertisers, contracts, campaigns, groups, creatives, transfers, and statistics. The tools are not redundant; each covers a distinct aspect, and the count feels justified rather than bloated.

    Completeness5/5

    The tool set covers the core lifecycle and management operations for the advertising domain, including CRUD where supported, listing, statistics, and financial transfers. The inclusion of raw_request provides access to any additional API endpoints, ensuring no dead ends or missing operations that would cause agent failures. The only gaps (e.g., lack of dedicated update/delete for some resources) are bypassed by raw_request.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      B
      maintenance
      MCP server for VK Ads API enabling management of campaigns, ads, statistics, targeting, and budgets through natural language.
      8
      12 npm
      5
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      MCP server for VK Ads API: manage ad plans, ad groups, banners, and statistics.
      23
      273 npm
      12
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      A local MCP server that connects Yandex Direct advertising reports and safe campaign creation to AI agents, enabling natural-language analytics and protected campaign setup.
      8
      2
      MIT