Avito Ads MCP

A1 Авито Реклама MCP

An MCP for the Avito Ads account: campaigns, stats, group budget and bid, balance, access and ORD documents, 25 tools

MCP server

High risk

We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.

Why this level

  • Changes an ad group's budget and bid
  • Can transfer money and bonuses between child accounts, and these operations are flagged as irreversible
All reasons and checks
Russian stack

a1-x-tech/mcp-avito-ads

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/a1-avito-reklama-mcp

Detects the agents on your machine, checks the risk and pins the version.

Other ways to install

This entry is high risk, so there is no one-click install. Review the code and add the config by hand.

Run in a terminal

claude mcp add --transport stdio --env 'AVITO_ADS_CLIENT_ID=<your AVITO_ADS_CLIENT_ID>' --env 'AVITO_ADS_CLIENT_SECRET=<your AVITO_ADS_CLIENT_SECRET>' --env 'AVITO_ADS_ACCOUNT_ID=<AVITO_ADS_ACCOUNT_ID value>' mcp-avito-ads -- npx -y mcp-avito-ads@1.2.0

Or add to the file .mcp.json, in the project

{
  "mcpServers": {
    "mcp-avito-ads": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-avito-ads@1.2.0"
      ],
      "env": {
        "AVITO_ADS_CLIENT_ID": "<your AVITO_ADS_CLIENT_ID>",
        "AVITO_ADS_CLIENT_SECRET": "<your AVITO_ADS_CLIENT_SECRET>",
        "AVITO_ADS_ACCOUNT_ID": "<AVITO_ADS_ACCOUNT_ID value>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

AVITO_ADS_CLIENT_IDsecret, required
OAuth2 client id of your Avito application (grant_type=client_credentials).
AVITO_ADS_CLIENT_SECRETsecret, required
OAuth2 client secret of your Avito application. Treat it as a secret.
AVITO_ADS_ACCOUNT_IDrequired
Ad account id (positive integer) every request is scoped to.
AVITO_ADS_ENVIRONMENToptional
Which API to talk to: production or sandbox.
AVITO_ADS_API_BASEoptional
API root override, replacing host and environment prefix (e.g. a local mock).
AVITO_ADS_TIMEOUT_MSoptional
Per-request timeout in milliseconds.
AVITO_ADS_MAX_RETRIESoptional
Retries on 429 (always) and on 5xx / network errors for reads only.
AVITO_ADS_TOKEN_LEEWAY_SECONDSoptional
Refresh the OAuth2 token this many seconds before it expires.

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.cursor/mcp.json, for all projects

{
  "mcpServers": {
    "mcp-avito-ads": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-avito-ads@1.2.0"
      ],
      "env": {
        "AVITO_ADS_CLIENT_ID": "<your AVITO_ADS_CLIENT_ID>",
        "AVITO_ADS_CLIENT_SECRET": "<your AVITO_ADS_CLIENT_SECRET>",
        "AVITO_ADS_ACCOUNT_ID": "<AVITO_ADS_ACCOUNT_ID value>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.

Keys and settings

AVITO_ADS_CLIENT_IDsecret, required
OAuth2 client id of your Avito application (grant_type=client_credentials).
AVITO_ADS_CLIENT_SECRETsecret, required
OAuth2 client secret of your Avito application. Treat it as a secret.
AVITO_ADS_ACCOUNT_IDrequired
Ad account id (positive integer) every request is scoped to.
AVITO_ADS_ENVIRONMENToptional
Which API to talk to: production or sandbox.
AVITO_ADS_API_BASEoptional
API root override, replacing host and environment prefix (e.g. a local mock).
AVITO_ADS_TIMEOUT_MSoptional
Per-request timeout in milliseconds.
AVITO_ADS_MAX_RETRIESoptional
Retries on 429 (always) and on 5xx / network errors for reads only.
AVITO_ADS_TOKEN_LEEWAY_SECONDSoptional
Refresh the OAuth2 token this many seconds before it expires.

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Run in a terminal

code --add-mcp '{"name":"mcp-avito-ads","type":"stdio","command":"npx","args":["-y","mcp-avito-ads@1.2.0"],"env":{"AVITO_ADS_CLIENT_ID":"<your AVITO_ADS_CLIENT_ID>","AVITO_ADS_CLIENT_SECRET":"<your AVITO_ADS_CLIENT_SECRET>","AVITO_ADS_ACCOUNT_ID":"<AVITO_ADS_ACCOUNT_ID value>"}}'

Or add to the file .vscode/mcp.json, in the project

{
  "servers": {
    "mcp-avito-ads": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-avito-ads@1.2.0"
      ],
      "env": {
        "AVITO_ADS_CLIENT_ID": "<your AVITO_ADS_CLIENT_ID>",
        "AVITO_ADS_CLIENT_SECRET": "<your AVITO_ADS_CLIENT_SECRET>",
        "AVITO_ADS_ACCOUNT_ID": "<AVITO_ADS_ACCOUNT_ID value>"
      }
    }
  }
}

If the file already exists, add the server inside the servers key.

Keys and settings

AVITO_ADS_CLIENT_IDsecret, required
OAuth2 client id of your Avito application (grant_type=client_credentials).
AVITO_ADS_CLIENT_SECRETsecret, required
OAuth2 client secret of your Avito application. Treat it as a secret.
AVITO_ADS_ACCOUNT_IDrequired
Ad account id (positive integer) every request is scoped to.
AVITO_ADS_ENVIRONMENToptional
Which API to talk to: production or sandbox.
AVITO_ADS_API_BASEoptional
API root override, replacing host and environment prefix (e.g. a local mock).
AVITO_ADS_TIMEOUT_MSoptional
Per-request timeout in milliseconds.
AVITO_ADS_MAX_RETRIESoptional
Retries on 429 (always) and on 5xx / network errors for reads only.
AVITO_ADS_TOKEN_LEEWAY_SECONDSoptional
Refresh the OAuth2 token this many seconds before it expires.

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Run in a terminal

codex mcp add mcp-avito-ads --env 'AVITO_ADS_CLIENT_ID=<your AVITO_ADS_CLIENT_ID>' --env 'AVITO_ADS_CLIENT_SECRET=<your AVITO_ADS_CLIENT_SECRET>' --env 'AVITO_ADS_ACCOUNT_ID=<AVITO_ADS_ACCOUNT_ID value>' -- npx -y mcp-avito-ads@1.2.0

Or add to the file ~/.codex/config.toml, for all projects

[mcp_servers.mcp-avito-ads]
command = "npx"
args = ["-y", "mcp-avito-ads@1.2.0"]
env = { AVITO_ADS_CLIENT_ID = "<your AVITO_ADS_CLIENT_ID>", AVITO_ADS_CLIENT_SECRET = "<your AVITO_ADS_CLIENT_SECRET>", AVITO_ADS_ACCOUNT_ID = "<AVITO_ADS_ACCOUNT_ID value>" }

If the file already exists, append the block to the end.

Keys and settings

AVITO_ADS_CLIENT_IDsecret, required
OAuth2 client id of your Avito application (grant_type=client_credentials).
AVITO_ADS_CLIENT_SECRETsecret, required
OAuth2 client secret of your Avito application. Treat it as a secret.
AVITO_ADS_ACCOUNT_IDrequired
Ad account id (positive integer) every request is scoped to.
AVITO_ADS_ENVIRONMENToptional
Which API to talk to: production or sandbox.
AVITO_ADS_API_BASEoptional
API root override, replacing host and environment prefix (e.g. a local mock).
AVITO_ADS_TIMEOUT_MSoptional
Per-request timeout in milliseconds.
AVITO_ADS_MAX_RETRIESoptional
Retries on 429 (always) and on 5xx / network errors for reads only.
AVITO_ADS_TOKEN_LEEWAY_SECONDSoptional
Refresh the OAuth2 token this many seconds before it expires.

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.gemini/settings.json, for all projects

{
  "mcpServers": {
    "mcp-avito-ads": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-avito-ads@1.2.0"
      ],
      "env": {
        "AVITO_ADS_CLIENT_ID": "<your AVITO_ADS_CLIENT_ID>",
        "AVITO_ADS_CLIENT_SECRET": "<your AVITO_ADS_CLIENT_SECRET>",
        "AVITO_ADS_ACCOUNT_ID": "<AVITO_ADS_ACCOUNT_ID value>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

AVITO_ADS_CLIENT_IDsecret, required
OAuth2 client id of your Avito application (grant_type=client_credentials).
AVITO_ADS_CLIENT_SECRETsecret, required
OAuth2 client secret of your Avito application. Treat it as a secret.
AVITO_ADS_ACCOUNT_IDrequired
Ad account id (positive integer) every request is scoped to.
AVITO_ADS_ENVIRONMENToptional
Which API to talk to: production or sandbox.
AVITO_ADS_API_BASEoptional
API root override, replacing host and environment prefix (e.g. a local mock).
AVITO_ADS_TIMEOUT_MSoptional
Per-request timeout in milliseconds.
AVITO_ADS_MAX_RETRIESoptional
Retries on 429 (always) and on 5xx / network errors for reads only.
AVITO_ADS_TOKEN_LEEWAY_SECONDSoptional
Refresh the OAuth2 token this many seconds before it expires.

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.config/devin/mcp_config.json, for all projects

{
  "mcpServers": {
    "mcp-avito-ads": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-avito-ads@1.2.0"
      ],
      "env": {
        "AVITO_ADS_CLIENT_ID": "<your AVITO_ADS_CLIENT_ID>",
        "AVITO_ADS_CLIENT_SECRET": "<your AVITO_ADS_CLIENT_SECRET>",
        "AVITO_ADS_ACCOUNT_ID": "<AVITO_ADS_ACCOUNT_ID value>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.

Keys and settings

AVITO_ADS_CLIENT_IDsecret, required
OAuth2 client id of your Avito application (grant_type=client_credentials).
AVITO_ADS_CLIENT_SECRETsecret, required
OAuth2 client secret of your Avito application. Treat it as a secret.
AVITO_ADS_ACCOUNT_IDrequired
Ad account id (positive integer) every request is scoped to.
AVITO_ADS_ENVIRONMENToptional
Which API to talk to: production or sandbox.
AVITO_ADS_API_BASEoptional
API root override, replacing host and environment prefix (e.g. a local mock).
AVITO_ADS_TIMEOUT_MSoptional
Per-request timeout in milliseconds.
AVITO_ADS_MAX_RETRIESoptional
Retries on 429 (always) and on 5xx / network errors for reads only.
AVITO_ADS_TOKEN_LEEWAY_SECONDSoptional
Refresh the OAuth2 token this many seconds before it expires.

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Formerly Windsurf.

Add to the file cline_mcp_settings.json, for all projects

{
  "mcpServers": {
    "mcp-avito-ads": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-avito-ads@1.2.0"
      ],
      "env": {
        "AVITO_ADS_CLIENT_ID": "<your AVITO_ADS_CLIENT_ID>",
        "AVITO_ADS_CLIENT_SECRET": "<your AVITO_ADS_CLIENT_SECRET>",
        "AVITO_ADS_ACCOUNT_ID": "<AVITO_ADS_ACCOUNT_ID value>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.

Keys and settings

AVITO_ADS_CLIENT_IDsecret, required
OAuth2 client id of your Avito application (grant_type=client_credentials).
AVITO_ADS_CLIENT_SECRETsecret, required
OAuth2 client secret of your Avito application. Treat it as a secret.
AVITO_ADS_ACCOUNT_IDrequired
Ad account id (positive integer) every request is scoped to.
AVITO_ADS_ENVIRONMENToptional
Which API to talk to: production or sandbox.
AVITO_ADS_API_BASEoptional
API root override, replacing host and environment prefix (e.g. a local mock).
AVITO_ADS_TIMEOUT_MSoptional
Per-request timeout in milliseconds.
AVITO_ADS_MAX_RETRIESoptional
Retries on 429 (always) and on 5xx / network errors for reads only.
AVITO_ADS_TOKEN_LEEWAY_SECONDSoptional
Refresh the OAuth2 token this many seconds before it expires.

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file .roo/mcp.json, in the project

{
  "mcpServers": {
    "mcp-avito-ads": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-avito-ads@1.2.0"
      ],
      "env": {
        "AVITO_ADS_CLIENT_ID": "<your AVITO_ADS_CLIENT_ID>",
        "AVITO_ADS_CLIENT_SECRET": "<your AVITO_ADS_CLIENT_SECRET>",
        "AVITO_ADS_ACCOUNT_ID": "<AVITO_ADS_ACCOUNT_ID value>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

AVITO_ADS_CLIENT_IDsecret, required
OAuth2 client id of your Avito application (grant_type=client_credentials).
AVITO_ADS_CLIENT_SECRETsecret, required
OAuth2 client secret of your Avito application. Treat it as a secret.
AVITO_ADS_ACCOUNT_IDrequired
Ad account id (positive integer) every request is scoped to.
AVITO_ADS_ENVIRONMENToptional
Which API to talk to: production or sandbox.
AVITO_ADS_API_BASEoptional
API root override, replacing host and environment prefix (e.g. a local mock).
AVITO_ADS_TIMEOUT_MSoptional
Per-request timeout in milliseconds.
AVITO_ADS_MAX_RETRIESoptional
Retries on 429 (always) and on 5xx / network errors for reads only.
AVITO_ADS_TOKEN_LEEWAY_SECONDSoptional
Refresh the OAuth2 token this many seconds before it expires.

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

A fork of Roo Code, same .roo folders.

Add to the file opencode.json, in the project

{
  "mcp": {
    "mcp-avito-ads": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mcp-avito-ads@1.2.0"
      ],
      "environment": {
        "AVITO_ADS_CLIENT_ID": "<your AVITO_ADS_CLIENT_ID>",
        "AVITO_ADS_CLIENT_SECRET": "<your AVITO_ADS_CLIENT_SECRET>",
        "AVITO_ADS_ACCOUNT_ID": "<AVITO_ADS_ACCOUNT_ID value>"
      }
    }
  }
}

If the file already exists, add the server inside the mcp key.

Keys and settings

AVITO_ADS_CLIENT_IDsecret, required
OAuth2 client id of your Avito application (grant_type=client_credentials).
AVITO_ADS_CLIENT_SECRETsecret, required
OAuth2 client secret of your Avito application. Treat it as a secret.
AVITO_ADS_ACCOUNT_IDrequired
Ad account id (positive integer) every request is scoped to.
AVITO_ADS_ENVIRONMENToptional
Which API to talk to: production or sandbox.
AVITO_ADS_API_BASEoptional
API root override, replacing host and environment prefix (e.g. a local mock).
AVITO_ADS_TIMEOUT_MSoptional
Per-request timeout in milliseconds.
AVITO_ADS_MAX_RETRIESoptional
Retries on 429 (always) and on 5xx / network errors for reads only.
AVITO_ADS_TOKEN_LEEWAY_SECONDSoptional
Refresh the OAuth2 token this many seconds before it expires.

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.config/zed/settings.json, for all projects

{
  "context_servers": {
    "mcp-avito-ads": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-avito-ads@1.2.0"
      ],
      "env": {
        "AVITO_ADS_CLIENT_ID": "<your AVITO_ADS_CLIENT_ID>",
        "AVITO_ADS_CLIENT_SECRET": "<your AVITO_ADS_CLIENT_SECRET>",
        "AVITO_ADS_ACCOUNT_ID": "<AVITO_ADS_ACCOUNT_ID value>"
      }
    }
  }
}

If the file already exists, add the server inside the context_servers key.

Keys and settings

AVITO_ADS_CLIENT_IDsecret, required
OAuth2 client id of your Avito application (grant_type=client_credentials).
AVITO_ADS_CLIENT_SECRETsecret, required
OAuth2 client secret of your Avito application. Treat it as a secret.
AVITO_ADS_ACCOUNT_IDrequired
Ad account id (positive integer) every request is scoped to.
AVITO_ADS_ENVIRONMENToptional
Which API to talk to: production or sandbox.
AVITO_ADS_API_BASEoptional
API root override, replacing host and environment prefix (e.g. a local mock).
AVITO_ADS_TIMEOUT_MSoptional
Per-request timeout in milliseconds.
AVITO_ADS_MAX_RETRIESoptional
Retries on 429 (always) and on 5xx / network errors for reads only.
AVITO_ADS_TOKEN_LEEWAY_SECONDSoptional
Refresh the OAuth2 token this many seconds before it expires.

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file .codeassistant/mcp.json, in the project

{
  "mcpServers": {
    "mcp-avito-ads": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-avito-ads@1.2.0"
      ],
      "env": {
        "AVITO_ADS_CLIENT_ID": "<your AVITO_ADS_CLIENT_ID>",
        "AVITO_ADS_CLIENT_SECRET": "<your AVITO_ADS_CLIENT_SECRET>",
        "AVITO_ADS_ACCOUNT_ID": "<AVITO_ADS_ACCOUNT_ID value>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

AVITO_ADS_CLIENT_IDsecret, required
OAuth2 client id of your Avito application (grant_type=client_credentials).
AVITO_ADS_CLIENT_SECRETsecret, required
OAuth2 client secret of your Avito application. Treat it as a secret.
AVITO_ADS_ACCOUNT_IDrequired
Ad account id (positive integer) every request is scoped to.
AVITO_ADS_ENVIRONMENToptional
Which API to talk to: production or sandbox.
AVITO_ADS_API_BASEoptional
API root override, replacing host and environment prefix (e.g. a local mock).
AVITO_ADS_TIMEOUT_MSoptional
Per-request timeout in milliseconds.
AVITO_ADS_MAX_RETRIESoptional
Retries on 429 (always) and on 5xx / network errors for reads only.
AVITO_ADS_TOKEN_LEEWAY_SECONDSoptional
Refresh the OAuth2 token this many seconds before it expires.

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

You will need: Node.js

Checked against the repository on Sep 25, 2026, commit 7bb5392.

Text for your agent

Get the Avito Ads account's Client Key and Client Secret from an administrator, then add the server with claude mcp add --env AVITO_ADS_CLIENT_ID=... --env AVITO_ADS_CLIENT_SECRET=... --env AVITO_ADS_ACCOUNT_ID=... --transport stdio --scope user avito-ads -- npx -y mcp-avito-ads@latest.

Other ways from the author
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

The command from the README for Claude Code.

This is third-party code. Review the repository files before installing.

What it does

The server connects an agent to the Avito Ads advertiser account, not the Avito seller API: it does not work with items, messaging or seller listing promotion. 25 tools cover campaigns, groups, creatives, statistics, balance, child accounts, users and ORD documents. Through the API only a group's budget and bid can be changed; creating, editing, pausing or deleting campaigns, groups and creatives is not possible. Irreversible operations like transferring money or bonuses, deleting a user, and raw API requests are flagged as destructive. Every call spends points from a weekly API budget, and the server returns the remaining apiPointBalance with each result.

Who it is for. For people running Avito Ads campaigns who want to read statistics and make targeted budget and bid changes through an agent.

Good fit when

  • You need campaign and ad group statistics for a period
  • You need to make a targeted budget or bid change for a specific group with confirmation before the change
  • You need balance, child account and ORD document data in one place

Not a fit when

  • You need to work with items, messaging or seller listing promotion: that is the separate Avito seller API, not this server
  • You need to create or delete campaigns and creatives: the ads account API does not allow this

Example request

Show my Avito Ads account campaigns and last week's spend by ad group

Limitations

The ads account API only allows changing a group's budget and bid; all structural changes to campaigns, groups and creatives must be made in the Avito Ads interface. There is a weekly API points budget spent by every call. It needs your own advertiser account Client Key and Client Secret, issued by someone with an administrator role.

How to disable. Remove the avito-ads server from your MCP client config, for example with claude mcp remove avito-ads.

MCP

Transport
stdio
Authentication
API key
Environment variables
Environment variables
AVITO_ADS_CLIENT_ID
required, secret
The Avito Ads account's Client Key.
AVITO_ADS_CLIENT_SECRET
required, secret
The Avito Ads account's Client Secret.
AVITO_ADS_ACCOUNT_ID
required
The ID of the ads account the server connects to.

Security check

  • Changes an ad group's budget and bid
  • Can transfer money and bonuses between child accounts, and these operations are flagged as irreversible

README in short

The README describes the server as natural-language access to the Avito Ads account, gives an example dialog with a bid-change confirmation, connection instructions for Codex, Claude Code, Claude Desktop and Cursor with ready commands, a section on getting access with an administrator role, and an explanation of the weekly API points budget.

FAQ

Can I create a new campaign through the server?

No, the Avito Ads account API only allows changing a group's budget and bid; creating or deleting campaigns is not available.

What happens when I change a group's bid?

The server first shows the account, group, current and new bid and asks for confirmation, changing only that group after you agree.

Official

Official DataLens (Yandex) skills for Claude Code, Codex and OpenCode: SDK, HTML reports and RLS resolution

SkillMedium riskRussian stackNo VPN needed12Repository stars
Editors’ pick

A Yandex Metrika MCP server generated from the API spec: 108 methods, 10 tools declared by default, transparent filters and response metadata

MCP serverMedium riskRussian stackNo VPN needed2Repository stars
Official

An open MCP server and agent skill set for SEO: keyword research, competitors, backlinks and site audits powered by DataForSEO

MCP serverMedium risk21.5KRepository stars

A Claude Code plugin for SEO audits: technical SEO, E-E-A-T, schema, local and AI search via parallel subagents

PluginHigh risk17.9KRepository stars
Foxx AIAvito Ads MCP

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.