Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Avito Ads MCP

NPM · MCP-AVITO-ADS

MCP server for the Avito Ads API: campaigns, ad groups, creatives, statistics and balances.

Available components

+1 this week 82 Trust /100

Last scanned (2 hours ago)

Scores higher than 73% of npm servers

Category Marketing and SEO

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability67
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 7279 tokens (~279/item across 26 items; 26 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 27 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 17 Oct 26 +2
    • Stability: 0.83 → pass security
  • 16 Oct 26 −2
    • Stability: pass → 0.83 functional
  • 15 Oct 26 0
    • Stability: 0.97 → pass security
  • 14 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
  • 11 Oct 26 0
    • Security disclosure: fail → unverified ▼ functional
  • 4 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Oct 26 −2
    • Security disclosure: unverified → fail ▼ functional
    • Stability: pass → 0.80 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 17 Oct 2026 · Analysed npm/mcp-avito-ads@1.2.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 93 packages
Packages resolved 93
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 26 exposed · ~6,777 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_user ~140

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

NameTypeReqDescription
rolestringyesadmin — полный доступ, включая пользователей, переводы денег и правки кампаний; viewer — только чтение.
userIdintegeryesЧисловой id пользователя Авито, которому выдаётся доступ, например 94235311.

No output schema declared.

No examples provided.

auth_status ~141

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

campaign_stats ~318

Статистика ОДНОЙ кампании за период дат с разбивкой по группам и креативам: {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, поэтому один широкий период предпочтительнее многих узких вызовов.

NameTypeReqDescription
campaignIdintegeryesКампания, по которой строится отчёт. Id можно найти через list_campaigns.
dateFromstringyesПервый день периода, включительно (YYYY-MM-DD).
dateTostringyesПоследний день периода, включительно (YYYY-MM-DD). Должен быть >= dateFrom, а период — не длиннее 100 дней.

No output schema declared.

No examples provided.

change_group_budget ~177

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

NameTypeReqDescription
budgetnumberyesНовый бюджет в рублях, не меньше 1. Заменяет текущее значение.
groupIdintegeryesId изменяемой группы объявлений, из list_groups.

No output schema declared.

No examples provided.

change_group_price ~206

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

NameTypeReqDescription
groupIdintegeryesId изменяемой группы объявлений, из list_groups.
pricenumberyesНовая ставка в рублях, не меньше 1. Заменяет текущее значение.

No output schema declared.

No examples provided.

create_advertiser ~410

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

NameTypeReqDescription
actualAddressstringyesФактический (почтовый) адрес; если он совпадает с legalAddress, повторяется тот же.
innstringyesИНН: 10 цифр для юрлица (ul), 12 для ИП (ip).
kppstring–КПП. Только для юрлиц (ul); для ip опускается.
legalAddressstringyesЮридический адрес.
legalRolestringyesРоль контрагента по ОРД: rd (рекламодатель), ra (агентство), rr (распространитель).
legalTypestringyesТип юридического лица: ul (юрлицо) или ip (ИП).
longNamestringyesПолное юридическое наименование, например "Общество с ограниченной ответственностью Реклама".
ogrnstringyesГосударственный регистрационный номер (ОГРН для ul, ОГРНИП для ip).
shortNamestringyesКраткое юридическое наименование, например "ООО Реклама".

No output schema declared.

No examples provided.

create_child_account ~209

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

NameTypeReqDescription
isSelfAdvertisingEnabledbooleanyesМожет ли новый аккаунт вести саморекламу (рекламировать собственные товары и услуги). Обязательное поле — значение указывается явно, флаг уходит в API при каждом создании.
shortNamestringyesОтображаемое название нового дочернего аккаунта, например "ООО Ромашка".

No output schema declared.

No examples provided.

create_contract ~519

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

NameTypeReqDescription
advertiserIdintegeryesРекламодатель, с которым заключён договор (клиент). Id даёт list_advertisers.
cidstring–Внешний идентификатор договора (со стороны ERID). Обязателен для типа external, для остальных отклоняется.
counterpartyTypestringyesТип контрагента — уходит в API в поле `description`: direct_with_advertiser или advertiser_intermediary.
datestring–Дата договора, YYYY-MM-DD. Обязательна для service и intermediary.
intermediaryobject–Юридические реквизиты исполнителя (посредника). Обязательны, если не задан parentId.
isFundsAllocationToPrincipalboolean–Распределяются ли средства в пользу принципала. Обязательно для intermediary.
isReportingRequiredboolean–Нужны ли по договору акты и отчёты. Обязательно для service и intermediary.
numberstring–Номер договора. Обязателен для service и intermediary.
objectstring–Действие по договору, поле API `object`: distribution, conclude, commercial, other. Обязательно для intermediary.
parentIdinteger–Id родительского договора. Задаётся, чтобы зарегистрировать дополнительное соглашение; тогда intermediary опускается.
subjectstring–Предмет договора: org-distribution, mediation, distribution, representation, other. Обязателен для service и intermediary.
typestringyesТип договора: service (оказание услуг), intermediary (посреднический), external (заключён вне Авито, определяется по cid).

No output schema declared.

No examples provided.

create_sandbox_account ~420

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

NameTypeReqDescription
actualAddressstringyesФактический почтовый адрес; может совпадать с legalAddress.
contactobjectyesКонтактное лицо аккаунта; передаётся в API как есть и не может быть пустым, например {"name":"Иван Иванов","email":"ivan@example.com","phone":"+79001234567"}.
innstringyesИНН тестовой компании: 10 цифр для юрлица, 12 для ИП.
kppstring–КПП. Есть у юрлиц (legalType ul); у ИП его нет — тогда поле опускается.
legalAddressstringyesЮридический адрес.
legalTypestring–Организационно-правовая форма: ul — юрлицо, ip — ИП.
longNamestringyesПолное юридическое наименование, например "Общество с ограниченной ответственностью Ромашка".
ogrnstringyesГосударственный регистрационный номер (ОГРН для юрлица, ОГРНИП для ИП).
shortNamestringyesКраткое юридическое наименование, например "ООО Ромашка".

No output schema declared.

No examples provided.

creative_stats ~358

Статистика по перечисленным креативам одной кампании: плоский массив, по записи на креатив ({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, поэтому один широкий период предпочтительнее многих узких вызовов.

NameTypeReqDescription
campaignIdintegeryesКампания, креативы которой попадают в отчёт. Id можно найти через list_campaigns.
creativeIdsarrayyesId креативов для отчёта, например [9001]. Обязательное поле; id даёт list_creatives, а по всей кампании отчитывается campaign_stats.
dateFromstringyesПервый день периода, включительно (YYYY-MM-DD).
dateTostringyesПоследний день периода, включительно (YYYY-MM-DD). Должен быть >= dateFrom, а период — не длиннее 100 дней.

No output schema declared.

No examples provided.

delete_user ~97

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

NameTypeReqDescription
userIdintegeryesЧисловой id пользователя Авито, которого нужно убрать из аккаунта, как его возвращает list_users.

No output schema declared.

No examples provided.

get_account ~141

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_balance ~85

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

group_stats ~347

Статистика по перечисленным группам одной кампании: плоский массив, по записи на группу объявлений ({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, поэтому один широкий период предпочтительнее многих узких вызовов.

NameTypeReqDescription
campaignIdintegeryesКампания, группы которой попадают в отчёт. Id можно найти через list_campaigns.
dateFromstringyesПервый день периода, включительно (YYYY-MM-DD).
dateTostringyesПоследний день периода, включительно (YYYY-MM-DD). Должен быть >= dateFrom, а период — не длиннее 100 дней.
groupIdsarrayyesId групп объявлений для отчёта, например [101, 102]. Обязательное поле; id даёт list_groups, а по всей кампании отчитывается campaign_stats.

No output schema declared.

No examples provided.

list_advertisers ~219

Возвращает одну страницу рекламодателей, зарегистрированных под аккаунтом: {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.

NameTypeReqDescription
filterobject–Фильтр страницы. Без него возвращаются все рекламодатели.
limitinteger–Размер страницы, 1..100. По умолчанию 20.
pageinteger–Номер страницы, нумерация с 1. По умолчанию 1.

No output schema declared.

No examples provided.

list_campaigns ~529

Перечисляет рекламные кампании аккаунта постранично. Возвращает {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 для группы объявлений.

NameTypeReqDescription
additionalAgreementIdsarray–Оставить кампании по этим дополнительным соглашениям (по id).
advertisersarray–Оставить кампании этих рекламодателей (по id).
campaignTypesarray–Оставить только эти типы кампаний: textImage, HTML, video.
contractIdsarray–Оставить кампании по этим договорам (по id).
createdAtobject–Оставить кампании, созданные в этом диапазоне: {from, to}, YYYY-MM-DD.
filterobject–Универсальный фильтр: дополнительные ключи, которые подмешиваются в фильтр запроса как есть (в написании API). При конфликте побеждают именованные поля выше.
idsarray–Оставить кампании с этими id.
limitinteger–Размер страницы, 1..100. По умолчанию 20.
managersarray–Оставить кампании этих менеджеров — пользователей аккаунта (по id).
pageinteger–Номер страницы, нумерация с 1. По умолчанию 1.
paymentModelsarray–Оставить только эти модели оплаты: CPM, CPC.
statusesarray–Оставить кампании с этими статусами: draft, in_moderation, moderation_failed, partial_moderation, active, paused, stopped, finished, archived.
timeFrameobject–Оставить кампании, период размещения которых попадает в этот диапазон: {from, to}, YYYY-MM-DD.

No output schema declared.

No examples provided.

list_child_accounts ~137

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_child_accounts_with_balances ~96

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_contracts ~220

Возвращает одну страницу договоров, зарегистрированных под аккаунтом: {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.

NameTypeReqDescription
filterobject–Фильтр страницы. Без него возвращаются все договоры.
limitinteger–Размер страницы, 1..100. По умолчанию 20.
pageinteger–Номер страницы, нумерация с 1. По умолчанию 1.

No output schema declared.

No examples provided.

list_creatives ~472

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

NameTypeReqDescription
advertisersarray–Оставить креативы этих рекламодателей (по id).
campaignIdsarray–Оставить креативы этих кампаний (по id).
campaignTypesarray–Оставить только эти типы кампаний: textImage, HTML, video.
filterobject–Универсальный фильтр: дополнительные ключи, которые подмешиваются в фильтр запроса как есть (в написании API). При конфликте побеждают именованные поля выше.
groupIdsarray–Оставить креативы этих групп объявлений (по id).
idsarray–Оставить креативы с этими id.
limitinteger–Размер страницы, 1..100. По умолчанию 20.
managersarray–Оставить креативы этих менеджеров — пользователей аккаунта (по id).
pageinteger–Номер страницы, нумерация с 1. По умолчанию 1.
paymentModelsarray–Оставить только эти модели оплаты: CPM, CPC.
statusesarray–Оставить креативы с этими статусами: draft, ready_for_moderation, in_moderation, moderation_failed, erir_registration, active, paused, stopped, finished, archived.
timeFrameobject–Оставить креативы, период размещения которых попадает в этот диапазон: {from, to}, YYYY-MM-DD.

No output schema declared.

No examples provided.

list_groups ~470

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

NameTypeReqDescription
advertisersarray–Оставить группы этих рекламодателей (по id).
campaignIdsarray–Оставить группы этих кампаний (по id).
filterobject–Универсальный фильтр: дополнительные ключи, которые подмешиваются в фильтр запроса как есть (в написании API). При конфликте побеждают именованные поля выше.
idsarray–Оставить группы объявлений с этими id.
limitinteger–Размер страницы, 1..100. По умолчанию 20.
managersarray–Оставить группы этих менеджеров — пользователей аккаунта (по id).
pacesarray–Оставить группы с этими режимами распределения бюджета. Значения произвольные: фиксированного словаря для этого фильтра в SDK нет.
pageinteger–Номер страницы, нумерация с 1. По умолчанию 1.
paymentModelsarray–Оставить только эти модели оплаты: CPM, CPC.
statusesarray–Оставить группы с этими статусами: draft, in_moderation, moderation_failed, will_launch_soon, active, will_stop_soon, pausing, paused, unpausing, stopped, finished, archived.
timeFrameobject–Оставить группы, период размещения которых попадает в этот диапазон: {from, to}, YYYY-MM-DD.

No output schema declared.

No examples provided.

list_users ~108

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

raw_request ~400

Универсальный запрос к любому пути 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 (остаток недельных баллов).

NameTypeReqDescription
bodyobject–Тело запроса в JSON, например {"filter":{},"limit":20,"page":1} для эндпоинта списка.
confirmWriteboolean–Для POST и DELETE должен быть true. Установка флага ��одтверждает, что путь может писать: funds-transfer и delete-user — такие же POST/DELETE, как и любое чтение списка.
methodstring–HTTP-метод. По умолчанию GET.
pathstringyesПуть API, например "v1/account/{accountID}/groups" или "v1/account/{accountID}/campaigns/123/stats".

No output schema declared.

No examples provided.

set_user_role ~125

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

NameTypeReqDescription
rolestringyesadmin — полный доступ, включая пользователей, переводы денег и правки кампаний; viewer — только чтение.
userIdintegeryesЧисловой id пользователя Авито, как его возвращает list_users.

No output schema declared.

No examples provided.

transfer_bonus ~193

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

NameTypeReqDescription
accountIdTointegeryesId аккаунта назначения — того, кто ПОЛУЧАЕТ бонусы. Отправитель — всегда настроенный аккаунт.
amountnumberyesСумма в бонусных рублях. Минимум 1; меньшее значение отклоняется.

No output schema declared.

No examples provided.

transfer_funds ~240

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

NameTypeReqDescription
accountIdTointegeryesId аккаунта назначения — того, кто ПОЛУЧАЕТ деньги. Отправитель — всегда настроенный аккаунт, и его нельзя переопределить. Id дочерних аккаунтов даёт list_child_accounts.
amountnumberyesСумма в рублях. Минимум 1; меньшее значение отклоняется.

No output schema declared.

No examples provided.

Install

How do I install the Avito Ads MCP server?

Avito Ads MCP runs locally as an npm package, launched with npx -y mcp-avito-ads. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · mcp-avito-ads

# add to Claude Code
claude mcp add a1-x-tech-mcp-avito-ads -- npx -y mcp-avito-ads
Common questions

What is the Avito Ads MCP server?

Avito Ads MCP is listed in the public MCP registry as io.github.A1-x-Tech/mcp-avito-ads. MCP server for the Avito Ads API: campaigns, ad groups, creatives, statistics and balances. This page covers its npm package (mcp-avito-ads).

Is the Avito Ads MCP server safe to use?

Avito Ads MCP scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 17 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Avito Ads MCP server expose?

Avito Ads MCP exposes 26 tools: auth_status, get_account, get_balance, create_sandbox_account, list_child_accounts, and 21 more. Their descriptions and schemas cost roughly 6,777 tokens of context every time the server is loaded.

Is the Avito Ads MCP server still maintained?

Avito Ads MCP is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Avito Ads MCP server under?

Avito Ads MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.