Avito Ads MCP
Manage and analyze an Avito Ads ad account through natural language — read campaigns, groups, creatives, statistics, balances, agency sub-accounts, ORD documents and users, plus a narrow set of write operations (group budget/price, money transfers, access management, raw API).
Diagnostics: check server readiness/credentials (
auth_status) and account legal details (get_account).Balances: read account balance and bonus balance (
get_balance); list agency child accounts with or without their balances.Reporting: list campaigns, ad groups and creatives with rich filters and pagination.
Statistics: per-campaign, per-group and per-creative stats for up to 100-day ranges (views, clicks, CTR, spend, CPM, CPC, video quartiles, VTR) with daily rows and totals.
Group changes (only writable ad fields): set a group's budget (
change_group_budget) or bid/price (change_group_price); campaigns, groups and creatives cannot be created, paused or deleted.Money movement (destructive): transfer real funds (
transfer_funds) or bonus rubles (transfer_bonus) to another account.ORD documents: create and list advertisers and contracts (service/intermediary/external).
Account provisioning: create a sandbox account (sandbox only) and create child accounts without payment rights (returns one-time API credentials).
User access: list users, grant access (
add_user), change role (set_user_role), revoke access (delete_user, destructive).Escape hatch:
raw_requestfor any other Avito Ads API path, withconfirmWriterequired for POST/DELETE.Quota awareness: every response includes
apiPointBalance; weekly API points refill Mondays 00:00 UTC.
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., "@Avito Ads MCP Show me the campaigns of my Avito account and last week's spend per group."
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.
Avito Ads MCP
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
apiPointBalanceremaining 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.
Add the server to your AI app.
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 listclaude 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 listOpen 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 | 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
Open the Avito Ads account as a user with the administrator role.
Create an API app and copy the Client Key and Client Secret.
Copy the advertising account ID.
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 |
| Yes | Client Key of the API app. |
| Yes | Client Secret of the API app. |
| Yes | Advertising account ID. |
| No |
|
| No | Request timeout; defaults to |
| No | 429 retries; defaults to |
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
apiPointBalancewith every result.Transient errors. On 429, the error returns
Retry-Afterand 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
MCP capabilities catalog — pages by user task for each tool.
Support
Found a bug or missing a scenario? Create an issue or write to Telegram.
Available Tools
26 toolsadd_userВыдать пользователю доступAIdempotent
Выдаёт существующему пользователю Авито доступ к рекламному аккаунту с указанной ролью. userId — числовой id пользователя Авито; пригласить по почте или телефону и создать аккаунт Авито этот инструмент не может. Если доступ уже есть, роль меняется через set_user_role. Возвращает подтверждение API плюс apiPointBalance.
Inputs: role (required), userId (required).
auth_statusСтатус подключения к Авито РекламеARead-onlyIdempotent
Показывает, готов ли сервер работать: заданы ли AVITO_ADS_CLIENT_ID, AVITO_ADS_CLIENT_SECRET и AVITO_ADS_ACCOUNT_ID, нет ли среди них испорченного значения, какое окружение выбрано (production или sandbox) и какой адрес API используется. Ничего не отправляет в сеть и не возвращает ни client secret, ни токен. Вызовите это первым, если инструменты отвечают, что учётных данных нет или что аккаунт не найден: ответ называет конкретную переменную и что с ней не так, вместо повторения одной и той же ошибки на каждом вызове.
Inputs: no named parameters.
campaign_statsСтатистика кампанииARead-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Изменить бюджет группы объявленийAIdempotent
Задаёт бюджет одной группы объявлений в рублях (не меньше 1). Значение заменяет текущий бюджет, а не прибавляется к нему, поэтому повторный вызов безопасен. Принимают его только группы с ручным управлением ставками, остальным API отказывает. Возвращает подтверждение API плюс apiPointBalance. Изменить бюджет кампании, ставку (для неё есть change_group_price) или статус группы нельзя — приостановить, возобновить или удалить группу этот API вообще не умеет. Текущий бюджет стоит сначала посмотреть через list_groups.
Inputs: budget (required), groupId (required).
change_group_priceИзменить ставку группы объявленийAIdempotent
Задаёт ставку одной группы объявлений (в 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Статистика креативовARead-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Отозвать доступ пользователяADestructive
Отзывает доступ пользователя к рекламному аккаунту. Операция разрушительная: вернуть доступ можно только через add_user с явно указанной ролью. Аккаунт Авито этого человека, его кампании и историю расходов не удаляет. Возвращает подтверждение API плюс apiPointBalance.
Inputs: userId (required).
get_accountРеквизиты аккаунтаARead-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Баланс аккаунтаARead-onlyIdempotent
Возвращает текущий баланс настроенного рекламного аккаунта в рублях: balance (реальные деньги) и bonusBalance (бонусные рубли, которые можно тратить только на рекламу). Аргументов не принимает. Это срез на текущий момент, а не история — расход за период дают инструменты статистики. Аккаунт не пополняет.
Inputs: no named parameters.
group_statsСтатистика групп объявленийARead-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Список рекламодателейARead-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Список рекламных кампанийARead-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Дочерние аккаунтыARead-onlyIdempotent
Перечисляет дочерние (суб-)аккаунты настроенного агентского аккаунта. Каждая запись — {account:{id,shortName}, contract}. Балансов здесь НЕТ, для них есть list_child_accounts_with_balances. Возвращает всех дочерних за один вызов: без постраничной выдачи, фильтров и поиска. apiPointBalance в любом ответе этого сервера — остаток баллов API на текущую неделю (квота пополняется по понедельникам в 00:00 UTC); по нему и стоит рассчитывать частоту вызовов.
Inputs: no named parameters.
list_child_accounts_with_balancesДочерние аккаунты с балансамиARead-onlyIdempotent
Тот же список, что и list_child_accounts, плюс баланс каждого дочернего аккаунта: {balance, bonusBalance} в рублях и бонусных рублях. Позволяет увидеть, у кого кончились деньги, перед transfer_funds / transfer_bonus и убедиться, что перевод дошёл. Показывает только балансы дочерних аккаунтов — баланс родительского даёт get_balance.
Inputs: no named parameters.
list_contractsСписок договоровARead-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Список креативовARead-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Список групп объявленийARead-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Пользователи аккаунтаARead-onlyIdempotent
Перечисляет пользователей с доступом к рекламному аккаунту — по одной записи {id, role, hasLoggedIn} на пользователя, где role это admin или viewer, а hasLoggedIn показывает, входил ли приглашённый хоть раз. Эти id принимают set_user_role и delete_user. Работает в пределах настроенного аккаунта: пользователей дочернего аккаунта не покажет. Вместе с данными возвращает apiPointBalance (остаток недельных баллов).
Inputs: no named parameters.
raw_requestПрямой вызов API Авито РекламыADestructive
Универсальный запрос к любому пути 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Изменить роль пользователяAIdempotent
Меняет роль пользователя, у которого уже есть доступ к рекламному аккаунту. Назначение той же роли, что стоит сейчас, ничего не меняет. Доступ не выдаёт (для этого add_user) и не отзывает (для этого delete_user). Возвращает подтверждение API плюс apiPointBalance.
Inputs: role (required), userId (required).
transfer_bonusПеревести бонусные рубли на другой аккаунтADestructive
Переводит бонусные рубли (bonusBalance — промо-средства, которыми можно оплачивать рекламу, но нельзя вывести деньгами) с настроенного аккаунта на другой: amount бонусных рублей, минимум 1. Правила те же, что у transfer_funds: через этот API перевод необратим, пустой объект data означает, что он прошёл, а после сетевой или серверной ошибки следует проверить list_child_accounts_with_balances, а не повторять вызов. Переводит только бонусы — реальные деньги идут через transfer_funds.
Inputs: amount (required), accountIdTo (required).
transfer_fundsПеревести деньги на другой аккаунтADestructive
Переводит РЕАЛЬНЫЕ ДЕНЬГИ с настроенного аккаунта на другой (обычно на один из дочерних): 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
Scored across 26 tools
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.
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.
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.
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
Related MCP Connectors
Google Ads MCP server — manage campaigns, keywords, and metrics.
MCP for Yandex Direct: manage ad campaigns & analytics from Claude or ChatGPT
Hosted MCP server for Google Ads and LinkedIn Ads analysis.
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Related MCP Servers
- AlicenseBqualityBmaintenanceMCP server for VK Ads API enabling management of campaigns, ads, statistics, targeting, and budgets through natural language.812 npm5MIT
- AlicenseAqualityBmaintenanceMCP server for VK Ads API: manage ad plans, ad groups, banners, and statistics.23273 npm12MIT
- AlicenseAqualityCmaintenanceA local MCP server that connects Yandex Direct advertising reports and safe campaign creation to AI agents, enabling natural-language analytics and protected campaign setup.82MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that gives AI agents direct access to the Yandex Direct API to manage campaigns, groups, ads, keywords, bids, and reports via natural language.117 npm6Apache 2.0