Skip to main content
Glama

avito-mcp

npm tests node MIT

Connect your AI client to your Avito account: read chats and statistics, prepare replies, and manage listings and orders.

Ask your AI client in plain language; it uses this MCP server to call the official Avito APIs. 148 tools across 18 APIs cover buyer chats, listings, statistics, promotion and orders. Run it on your computer or your own server.

You bring an AI client and an Avito account with API access. The client provides the model; this project provides the connection and tools. Automatic replies and scheduled reports need an agent or scheduler configured separately.

Русская версия → · Documentation · Client setup · Workflows · Troubleshooting

New in v2.1.1: step-by-step setup, complete English and Russian workflow and troubleshooting guides, and explicit demo versus live-account instructions. Release notes.

Your next step

Guide

See it work without an Avito account

Run the demo

Connect your own account

Quick start

Set up a client you already use

Client configurations

Deploy or contribute

Operations · Contributing

Try without Avito credentials

npx -y avito-mcp@2 --demo

The demo uses fictional data: 53 listings and 2 unread chats. It runs locally, needs no Avito keys and sends no requests to Avito. It walks through a report, a price preview, confirmation and a repeated request that changes the price only once. The first npx run downloads the npm package; from source, use npm run demo.

To use your own Avito account, follow the quick start and omit --demo. Normal server calls use your configured account; demo data never replaces it.

Local demo output: 53 fictional listings, 2 unread chats, and one confirmed price change despite a retry

Related MCP server: awesome-mineflayer-mcp

What you can do

Task

Start here

Result

Check how your listings are doing

Morning report, analytics profile

Balance, listing activity and spending, with dates and source IDs

Work through buyer messages

Unread-chat triage, messenger profile

Prioritised chats and draft replies; sending is a separate confirmed action

Change a listing price

Preview and confirm, seller profile

Request preview, pending action, then a result to check

Profiles use existing environment variables to expose a focused tool set. The recipes explain what to ask, which tools are involved, and how to check the result.

Quick start

1. Prepare your account

You need Node.js 22.12+, an MCP-capable AI client, and Avito API credentials for your account. Obtain Client_id, Client_secret, and numeric Profile_id through Avito's API account page. Available methods depend on your account's API access; installing this server does not grant additional Avito permissions.

2. Add the server to your client

For Claude Desktop, merge this into its MCP config using Settings → Developer → Edit Config. For Cursor, use your personal ~/.cursor/mcp.json. Replace the three placeholders locally and keep the filled config out of Git.

{
  "mcpServers": {
    "avito": {
      "command": "npx",
      "args": ["-y", "avito-mcp@2"],
      "env": {
        "Client_id": "YOUR_CLIENT_ID",
        "Client_secret": "YOUR_CLIENT_SECRET",
        "Profile_id": "YOUR_PROFILE_ID",
        "AVITO_MCP_MODE": "read_only"
      }
    }
  }
}

3. Check a real read

Restart the client and ask: “Use Avito to show my account balance and the first page of active listings. Do not change anything.” A successful answer should show your real balance and listing IDs, or an empty list if the account has no listings. The example starts in read_only; without this setting the server's default remains full_access.

VS Code, Zed, Codex and ChatGPT use their own setup formats. Copy the client-specific config, then try a workflow. The examples pin major version 2; pin an exact published version for controlled deployments.

Connect your AI client

Client

Ready-to-copy config

Claude Desktop

JSON + setup

Cursor

JSON + setup

VS Code / Copilot

servers JSON

Zed

context_servers JSON

Codex CLI / IDE extension

TOML

ChatGPT desktop

Settings → MCP servers or shared TOML

ChatGPT web

Remote plugin setup and limits

These are documented configurations, not a claim that every client/version has been tested against a live Avito account. Report compatibility results with the client version and operating system.

API coverage

Domain

Examples

Messenger

Chats, messages, images, subscriptions and webhook events

Listings and statistics

Listing details, prices, views, contacts and spending

Orders and stock

Delivery statuses, tracking, labels, marking codes and stock

Promotion

VAS, CPA bids, forecasts and promotion orders

Autoload

Feed uploads, reports and ID mapping

Account and other APIs

Balance, reviews, staff, tariffs and calls

Logistics partners

3PL delivery endpoints; most sellers do not need these

The bundled API snapshot covers 138 Swagger operations plus local and meta tools. The full manifest has 148 tools; default registration exposes 144, because token-returning tools and local image uploads require separate opt-ins. read_only exposes 80 before allowlist filtering. Inspect avito://manifest or build dist/manifest.json for exact names, schemas and risks.

Resources include the tool manifest, active configuration, rate limits, pending confirmations and webhook events. Five built-in prompts cover a daily overview, unread chats, promotion preparation, tool explanations and a safety report. Resource and prompt reference.

Safety and retries

  • read_only, guarded, and full_access, plus AVITO_MCP_ALLOW_TOOLS / AVITO_MCP_DENY_TOOLS, control which tools are available.

  • dryRun: true previews a destructive request without sending it. It does not reserve an action or validate the live account's permission to execute it.

  • Money and customer-visible actions use a two-call confirmation flow by default. The agent can make both calls: this is not proof of human approval. Use client-side approvals or the separate approval controls described in safety configuration.

  • An idempotencyKey deduplicates the same tool and arguments within the configured retention period. Reuse the same key for the same intended operation. If the outcome is uncertain, reconcile with Avito before retrying or choosing a new key.

  • Credentials go directly to Avito; there is no project-operated proxy or telemetry. Tool results are visible to your AI client and may be sent to its model provider under that client's settings.

Business calls use the real Avito account. Start with reads and previews. Ready-to-use safety configurations describe stronger approval controls, upload boundaries and recovery.

Remote MCP over HTTP (OAuth 2.1)

For a hosted agent or several clients, use Streamable HTTP on your own HTTPS domain. Set AVITO_MCP_TRANSPORT=http, AVITO_MCP_HTTP_PUBLIC_URL=https://mcp.example.com, and a strong AVITO_MCP_OAUTH_OWNER_PASSWORD, together with the Avito credentials.

Deployment, OAuth, Caddy and nginx configuration. bearer and none modes do not claim conformance with the MCP authorization specification; use OAuth for clients that discover authorization automatically.

Avito webhook receiver

The optional receiver buffers incoming Avito events and exposes them through a tool and a subscribable resource. An external agent must consume those events and decide whether to respond. Receiver setup.

Protocol and compatibility

Protocol revisions

AVITO_MCP_PROTOCOL_ERA selects legacy (default, MCP 2025-11-25), dual (both revisions), or modern (MCP 2026-07-28). A default stdio installation keeps serving the legacy revision; enabling the newer revision is explicit.

AVITO_MCP_HTTP_MAX_SESSIONS and AVITO_MCP_HTTP_SESSION_IDLE_SEC apply to legacy 2025-11-25 only. Modern HTTP uses AVITO_MCP_HTTP_MAX_INFLIGHT and AVITO_MCP_HTTP_MAX_STREAMS instead. Protocol details and limits.

Public tool names, documented valid arguments, environment variables, resource URIs and prompt names follow SemVer. See versioning details, migration from 1.3.x, and CHANGELOG.

Security

Token-returning tools and image uploads stay hidden until explicitly enabled. Tokens and runtime state are stored locally with restricted file permissions. Safety configuration, security policy and private reporting, and operational diagnostics describe the boundaries.

Install from source

git clone https://github.com/elchin92/avito-mcp.git
cd avito-mcp
npm ci
cp .env.example .env
# Fill in your credentials locally.
npm run build:release

Configure your client to run node /absolute/path/to/dist/server.js. Pass credentials through its env, or set AVITO_ENV_FILE to the absolute path of your filled .env file. Dockerfile and systemd installer are included; read operations and .env.example before deploying.

Contributors: CONTRIBUTING explains the shared tool factory and validation. Run npm run verify:release before a code PR. CI checks types, tests, coverage, package installation and deployment behavior; live Avito smoke tests are a separate, explicit check.

Not covered here

The Auction, Autostrategy, Autoteka, Jobs, Realty reports and Short-term rent API specifications are not bundled. This project also does not provide a model, a hosted agent service, or a scheduler. See the roadmap for concrete contribution opportunities.

Questions and bug reports: GitHub Issues · Support. Useful contributions include a reproducible bug, a tested client configuration, or a clearer workflow. If the project helps you, a GitHub star helps other Avito users find it.

MIT. Independent project; not affiliated with Avito. See NOTICE for the trademark and API-terms notice.

Available Tools

144 tools
autoload_create_or_update_profileAutoload: save profile (v1, deprecated)A
Destructive

Creates or updates (upsert) a v1 autoload profile with a single URL feed. Overwrites the existing profile settings on the Avito side; if no profile exists, it creates one. DEPRECATED: since 2024-12-23 the single upload_url has been replaced by the feeds_data array — use autoload_create_or_update_profile_v2 (supports multiple feeds). Prefer v2.

Inputs: schedule (required), upload_url (required), report_email (required), autoload_enabled (required), +3 more.

autoload_create_or_update_profile_v2Autoload: save profileA
Destructive

Creates or updates (upsert) an autoload profile (v2, current version). Overwrites the existing profile settings on the Avito side; if no profile exists, it creates one. Supports multiple feeds via feeds_data (unlike v1 with a single upload_url) — prefer this method. The uploads themselves run on the schedule, or manually via autoload_upload.

Inputs: schedule (required), feeds_data (required), report_email (required), autoload_enabled (required), +3 more.

autoload_get_ad_ids_by_avito_idsAutoload: Ad ID by Avito IDA
Read-onlyIdempotent

Returns the listing identifiers from the autoload file (ad_id) by their Avito identifiers (avito_id) — an avito_id → ad_id mapping. Read-only. Use it when you have Avito IDs and need to find the corresponding ID from the source feed. The reverse direction is autoload_get_avito_ids_by_ad_ids.

Inputs: query (required).

autoload_get_autoload_items_info_v2Autoload: listing infoA
Read-onlyIdempotent

Returns the current state of listings in autoload by their IDs from the file: avito_id, avito_status, report section, errors/warnings (messages), charge information, and processing date. Read-only, not tied to a specific report — returns the current status. Use it for targeted checks of selected listings (1-100 per request).

Inputs: query (required).

autoload_get_avito_ids_by_ad_idsAutoload: Avito ID by Ad IDA
Read-onlyIdempotent

Returns the Avito listing identifiers (avito_id) by their identifiers from the autoload file (ad_id) — an ad_id → avito_id mapping. Read-only. Use it when you have an ID from the feed and need to find the published listing on Avito. The reverse direction is autoload_get_ad_ids_by_avito_ids.

Inputs: query (required).

autoload_get_last_completed_reportAutoload: last report (v1, deprecated)A
Read-onlyIdempotent

Returns summary statistics of the last completed upload (v2 format): per-section counters (section_stats), charges (listing_fees), events, and the feed_url link. Read-only, no parameters. DEPRECATED: since 2024-12-23 the single feed_url has been replaced by feeds_urls — use autoload_get_last_completed_report_v3. Prefer v3.

Inputs: no named parameters.

autoload_get_last_completed_report_v3Autoload: last reportA
Read-onlyIdempotent

Returns summary statistics of the last completed upload (v3, current format): per-section counters (section_stats), charges (listing_fees), events, and the feeds_urls array of links. Read-only, no parameters. Use it after an upload has been processed (status success/success_warning/error); for a specific report use autoload_get_report_by_id_v3. v3 differs from v2 by supporting multiple feeds (feeds_urls instead of a single feed_url) — prefer v3.

Inputs: no named parameters.

autoload_get_profileAutoload: get profile (v1, deprecated)A
Read-onlyIdempotent

Returns the autoload profile settings (v1): autoload_enabled, report_email, the schedule, and the deprecated upload_url field. Read-only, no parameters. DEPRECATED: since 2024-12-23 the upload_url field has been replaced by feeds_data — use autoload_get_profile_v2, which returns an array of feeds. Prefer v2.

Inputs: no named parameters.

autoload_get_profile_v2Autoload: profileA
Read-onlyIdempotent

Returns the autoload profile settings (v2, current version): autoload_enabled, report_email, the schedule, and the feeds_data array of feeds (name + file link). Read-only, no parameters. Prefer this method over autoload_get_profile (v1): v2 returns feeds_data instead of the deprecated single upload_url.

Inputs: no named parameters.

autoload_get_report_by_id_v2Autoload: report by ID (v2, deprecated)A
Read-onlyIdempotent

Returns summary statistics of a specific upload by its report_id (v2 format): section_stats, listing_fees, events, status, and the feed_url link. Read-only. Get the report_id from autoload_get_reports_v2. DEPRECATED: since 2024-12-23 feed_url has been replaced by feeds_urls — use autoload_get_report_by_id_v3. Prefer v3.

Inputs: report_id (required).

autoload_get_report_by_id_v3Autoload: report by IDA
Read-onlyIdempotent

Returns summary statistics of a specific upload by its report_id (v3, current format): section_stats, listing_fees, events, status, and the feeds_urls array of links. Read-only. Get the report_id from autoload_get_reports_v2; for a line-by-line breakdown of listings use autoload_get_report_items_by_id. v3 differs from v2 by supporting multiple feeds (feeds_urls instead of a single feed_url) — prefer v3.

Inputs: report_id (required).

autoload_get_report_items_by_idAutoload: upload listingsA
Read-onlyIdempotent

Returns the processing result of each listing in a specific upload (by report_id): ad_id, avito_id, avito_status, report section, errors/warnings, and a link. Read-only, with pagination (the response contains meta with total/pages). Use it for a line-by-line breakdown of an upload; for an upload summary see autoload_get_report_by_id_v3. Get the list of available sections for the sections filter from the report's section_stats.

Inputs: report_id (required), page, query, per_page, +1 more.

autoload_get_report_items_fees_by_idAutoload: upload chargesA
Read-onlyIdempotent

Returns the placement charges for each listing in a specific upload (by report_id): ad_id, avito_id, charge type (single — from the wallet / package — from a package), and the amount or package ID. Read-only, with pagination (meta with total/pages). Use it to break down the cost of an upload; for listing processing/statuses use autoload_get_report_items_by_id.

Inputs: report_id (required), page, ad_ids, per_page, +1 more.

autoload_get_reports_v2Autoload: report listA
Read-onlyIdempotent

Returns a list of autoload reports (id, started_at, finished_at, status) with pagination and a filter by creation date. Sorted in descending order: the most recent report first. Read-only; the response contains a meta block with total/pages. Use it to find a report_id, then fetch details via autoload_get_report_by_id_v3 / autoload_get_report_items_by_id.

Inputs: page, date_to, per_page, date_from.

autoload_upload⚠️ Autoload: launch uploadA
Destructive

⚠️ Immediately LAUNCHES an unscheduled upload of listings from the feed at the URL specified in the profile settings (autoload_create_or_update_profile_v2). Side effect: publishes/updates/activates listings on Avito; the publication limits from the settings do NOT apply to this upload — all listings from the file will be processed. Limit: one upload per hour. Takes no business inputs — only the optional dryRun (preview without calling Avito) and idempotencyKey (duplicate protection). Returns only a launch confirmation; poll the result later via autoload_get_last_completed_report_v3.

Inputs: dryRun, idempotencyKey.

autoload_user_docs_node_fieldsAutoload: category fieldsA
Read-onlyIdempotent

Returns the fields (tags) of a specific category for filling out the feed: their types (input/select/checkbox), whether they are required, dependencies between fields, allowed values, and references to catalogs. Read-only. First find the category slug via autoload_user_docs_tree, then call this method. Use it when preparing the XML/Excel file to know which tags are required for a category.

Inputs: node_slug (required).

autoload_user_docs_treeAutoload: category treeA
Read-onlyIdempotent

Returns the full Avito category tree (an array of nodes with name, slug/id and nested children) for preparing an autoload feed. Read-only, no parameters. Use it to find the slug of the category you need, then pass it to autoload_user_docs_node_fields to get the fields. The reference is cacheable and changes rarely.

Inputs: no named parameters.

calltracking_get_call_by_idCall tracking: call by IDA
Read-onlyIdempotent

Returns metadata for a single call-tracking call by its callId (read-only): call time, talk and wait durations, buyer/seller phone numbers, the protective (virtual) number, and the listing itemId. Use this when you know a specific callId; to query calls over a time range use calltracking_get_calls, and for the conversation audio recording use calltracking_get_record_by_call_id.

Inputs: callId (required).

calltracking_get_callsCall tracking: list of callsA
Read-onlyIdempotent

Returns a list of call-tracking calls over a time range, filtered by call time (callTime), with pagination (read-only). Requires a time window in RFC3339 format. To fetch a single call by id use calltracking_get_call_by_id; for the conversation recording use calltracking_get_record_by_call_id.

Inputs: limit (required), offset (required), dateTimeFrom (required), dateTimeTo.

calltracking_get_record_by_call_idCall tracking: call audio recordingA
Read-onlyIdempotent

Downloads the call-tracking conversation audio recording for a specific callId (read-only). Returns a structured binary response {mimeType: "audio/mpeg" (or wav), sizeBytes, base64}; decode the base64 to save the file (it may be several MB). The recording becomes available with a delay of up to 30 minutes after the call and is retained for 3 months; if the recording is not ready yet, the API returns an error (HTTP 425, code 1005). For call metadata use calltracking_get_call_by_id, and for a list over a time range use calltracking_get_calls.

Inputs: callId (required).

cpa_auction_get_user_bidsCPA auction: my bidsA
Read-onlyIdempotent

Reads active and available CPA auction bids for the user's listings (read-only, does not change spending). For each listing returns the current bid pricePenny (in kopecks per action), its validity time expirationTime (RFC3339; absent — valid indefinitely), and the list of available bids availablePrices. Paginated via the fromItemID cursor. To change bids, use cpa_auction_save_item_bids. Limit 200 requests/min.

Inputs: batchSize, fromItemID.

cpa_auction_save_item_bids⚠️ CPA auction: save bidsA
Destructive

Saves (overwrites) CPA auction bids for listings. WARNING: affects auction spending (money) — a higher bid means a higher display position. pricePenny is in kopecks per action; expirationTime sets the validity period (omitted or null — indefinite). Up to 200 listings per request, limit 200 requests/min. For current and available bids see cpa_auction_get_user_bids.

Inputs: items (required), dryRun, idempotencyKey.

cpa_balance_info_v2CPA: balance (v2, deprecated)A
Read-onlyIdempotent

Returns the CPA wallet balance in kopecks: balance, debt, and the current month's advance (v2, deprecated). Read-only, spends no money. The request body is empty ({}). Deprecated — prefer cpa_balance_info_v3 (the current version). Limit: 1 request/min.

Inputs: no named parameters.

cpa_balance_info_v3CPA: balanceA
Read-onlyIdempotent

Returns the current balance of the user's CPA wallet in kopecks (v3 — current). Read-only, spends no money. The request body is empty ({}). v3 differs from v2 in having an updated response structure — prefer v3. Limit: 1 request/min.

Inputs: no named parameters.

cpa_chat_by_action_idCPA: chat by actionIdA
Read-onlyIdempotent

Returns the CPA chat model by target-action identifier (actionId). Read-only, spends no money. Use when you already have the actionId of a specific chat (from cpa_chats_by_time_v2); not for iterating by time. Limit: 3 requests/min.

Inputs: actionId (required).

cpa_chats_by_time_v1CPA: chats for a period (v1, deprecated)A
Read-onlyIdempotent

Returns a paginated list of target CPA chats created starting from the given moment (v1, deprecated). Read-only, spends no money. Deprecated — prefer cpa_chats_by_time_v2 (identical semantics, higher request limit: 40 vs 60/min for v1, but v2 is the current version).

Inputs: limit (required), offset (required), dateTimeFrom (required).

cpa_chats_by_time_v2CPA: chats for a periodA
Read-onlyIdempotent

Returns a paginated list of target CPA chats created starting from the given moment (by the date field) (v2 — current). Read-only, spends no money. Prefer this method over the deprecated cpa_chats_by_time_v1. The returned actionId values are then suitable for cpa_chat_by_action_id or filing a complaint. Limit: 40 requests/min.

Inputs: limit (required), offset (required), dateTimeFrom (required).

cpa_create_complaint_by_action_id⚠️ CPA: complaint by actionIdA
Destructive

⚠️ Files an external complaint with Avito about a CPA target action (call or chat) by its actionId — to dispute a charge for an off-target action. Irreversible record: a complaint cannot be withdrawn, so confirmation is required by default. Requires the actionId from a preceding call (cpa_chats_by_time_v2 / cpa_get_calls_by_time_v2). Preferred over cpa_post_create_complaint, since it covers both calls and chats. Limit: 3 requests/min.

Inputs: message (required), actionId (required), dryRun, idempotencyKey.

cpa_get_callCPA: call recording (v1, deprecated)A
Read-onlyIdempotent

Returns the recording (audio) of a CPA call by its identifier (v1, deprecated). Read-only, spends no money. Deprecated — prefer cpa_get_call_by_id_v2 (or calltracking get_record_by_call_id), which return the full call model together with the recording. Limit: 1 request/min.

Inputs: call_id (required).

cpa_get_call_by_id_v2CPA: call by callIdA
Read-onlyIdempotent

Returns the full CPA call model by callId, including a link to the recording (v2). Read-only, spends no money. Use when the callId is already known (from cpa_get_calls_by_time_v2). The current replacement for the deprecated cpa_get_call (v1).

Inputs: callId (required).

cpa_get_calls_by_time_v2CPA: calls for a periodA
Read-onlyIdempotent

Returns a paginated list of CPA calls created starting from the given moment (by startTime) (v2). Read-only, spends no money. Use to iterate over calls for a period; the returned callId/actionId values are then suitable for cpa_get_call_by_id_v2 or filing a complaint. Limit: 1 request/min.

Inputs: limit (required), dateTimeFrom (required), offset.

cpa_phones_info_from_chatsCPA: phone numbers from chatsA
Read-onlyIdempotent

Returns a paginated set of information on phone numbers extracted from target CPA chats starting from the given moment. Read-only, spends no money. Use to export customer contacts from correspondence over a period. Limit: 5 requests/min.

Inputs: limit (required), offset (required), dateTimeFrom (required).

cpa_post_create_complaint⚠️ CPA: complaint about a callA
Destructive

⚠️ Files an external complaint with Avito about a CPA call by its callId (action record) — e.g. when disputing a charge for an off-target call. Irreversible record: a complaint cannot be withdrawn, so confirmation is required by default. Requires the callId of a specific call from a preceding call (cpa_get_calls_by_time_v2). To file complaints about both calls and chats by a single actionId, use cpa_create_complaint_by_action_id. Limit: 1 request/min.

Inputs: callId (required), message (required), dryRun, idempotencyKey.

cpa_target_get_bidsTarget action: bidsA
Read-onlyIdempotent

Returns detailed information about current and available target-action bids for ONE listing: the active price/budget, the minimum/maximum/recommended values (all in kopecks), the selected strategy (manual/auto), and a target-action forecast with the advantage over competitors. Read-only — does not change spending. Use it before save_manual_bid/save_auto_bid to find the allowed min/max/recommended amounts. For multiple listings at once, use cpa_target_get_promotions_by_item_ids (batch up to 200). Limit: 20 requests/min.

Inputs: itemId (required).

cpa_target_get_promotions_by_item_idsTarget action: prices by listingA
Read-onlyIdempotent

Returns current target-action bids and budgets (in kopecks) for MULTIPLE listings at once (batch, up to 200 per request): for each listing — actionTypeID and the active manual or auto strategy with its price/limit/budget. Read-only — does not change spending. Use it to bulk-check current settings; for a single listing with full min/max/recommendations and a forecast, use cpa_target_get_bids. Limit: 400 requests/min.

Inputs: itemIDs (required).

cpa_target_remove_promotion⚠️ Target action: stopA
Destructive

⚠️ STOPS target-action promotion for a listing and switches it to the base price from the price list. WARNING: removes the active manual or auto bid — the settings are reset, and to resume promotion you will have to set them again (save_manual_bid/save_auto_bid). Does not reduce spending to zero: the listing keeps being charged at the base target-action price. Returns a text message about the switch. Limit: 300 requests/min.

Inputs: itemID (required), dryRun, idempotencyKey.

cpa_target_save_auto_bid⚠️ Target action: auto bidA
Destructive

⚠️ Enables the AUTOMATIC target-action bidding strategy: the system picks the price itself within the specified budget. WARNING: affects budget spending (money) — sets a spend of budgetPenny per budgetType period. Mutually exclusive with the manual bid: this call overwrites any previously set manual strategy for this listing. Use it when you want to delegate price management to Avito (rather than fixing the amount manually — use save_manual_bid for that). budgetPenny must fall within min/maxBudgetPenny from cpa_target_get_bids. Not available in the "Transport" category. Limit: 10 requests/min.

Inputs: itemID (required), budgetType (required), budgetPenny (required), actionTypeID (required), +2 more.

cpa_target_save_manual_bid⚠️ Target action: manual bidA
Destructive

⚠️ Sets a MANUAL (fixed) target-action bid for a listing (manual bid). WARNING: affects budget spending (money) — each target action is charged at bidPenny, and daily spending is capped by limitPenny. Mutually exclusive with the auto bid: this call overwrites any previously set auto strategy for this listing. Use it when you want to control the per-action price yourself (to delegate the choice to Avito, use save_auto_bid). bidPenny must be no lower than minBidPenny from cpa_target_get_bids. Limit: 20 requests/min.

Inputs: itemID (required), bidPenny (required), actionTypeID (required), dryRun, +2 more.

delivery_add_areas_sandboxDelivery: upload areas [sandbox]B

[SANDBOX] Uploads the areas where courier delivery/pickup is available for the specified tariff. The address classifier is Russian Post postal codes (1 postal code = all addresses belonging to it). For delivery-service partners only. The body is an array of areas directly.

Inputs: areas (required), tariff_id (required), dryRun, idempotencyKey.

delivery_add_sorting_centerDelivery: upload sorting centers [sandbox]A

[SANDBOX] Creates a task to upload your own sorting centers (hubs) with initial validation; returns a taskID — check the status via delivery_get_task. After uploading sorting centers you must assign tags with a separate request (delivery_add_tags_to_sorting_center). For delivery-service partners only. The body is an array of sorting centers directly.

Inputs: centers (required), dryRun, idempotencyKey.

delivery_add_tags_to_sorting_centerDelivery: sorting center tags [sandbox]A

[SANDBOX] Creates a task to assign direction tags to your own and/or third-party sorting centers within a tariff; returns a taskID — status via delivery_get_task. Within a single tariff each sorting center maps to exactly one tag, and re-binding is not possible. For delivery-service partners only. The body is an array directly.

Inputs: tagged (required), tariff_id (required), dryRun, idempotencyKey.

delivery_add_tariff_sandbox_v2Delivery: upload tariff [sandbox]A
Destructive

Creates or replaces a tariff. [SANDBOX v2] Uploads a tariff so the delivery service controls direction availability, delivery cost and terms. Returns 200 on accept. Limits: body up to 400MB, up to 1 million directions. For delivery-service PARTNERS only. Prefer this v2 over any v1 tariff endpoint. Pair with delivery_update_terms (term zones) and delivery_add_terminals_sandbox (pickup points) to complete the tariff.

Inputs: name (required), directions (required), termsZones (required), tariffZones (required), +4 more.

delivery_add_terminals_sandboxDelivery: upload pickup points [sandbox]A
Destructive

Replaces the tariff's terminal set. [SANDBOX] Uploads terminals (pickup points / parcel lockers) for one tariff. Auto-approves on accept (200); when a high share of the changes are critical the upload is queued for manual review instead. For delivery-service PARTNERS only. The request body is the terminals array directly (the tool wraps it for you).

Inputs: tariff_id (required), terminals (required), dryRun, idempotencyKey.

delivery_cancel_announcement_3plDelivery: cancel announcement [3PL]A
Destructive

[3PL] Cancels a previously created shipment announcement in the delivery service. Irreversibly cancels an announcement created via delivery_create_announcement_3pl. The method is implemented on the delivery-service side — on a regular seller account it returns 403/404.

Inputs: announcementID (required), dryRun, reason, idempotencyKey.

delivery_change_parcel_resultDelivery: parcel change resultA

[3PL] Sends Avito the outcome of a parcel change request previously sent via delivery_change_parcels: the delivery service reports whether the request was approved (approved) or rejected (declined). A production method on the delivery-service side — on a regular seller account it returns 403/404.

Inputs: id (required), status (required), dryRun, reason, +2 more.

delivery_change_parcelsDelivery: bulk update [sandbox]A

[SANDBOX] Queues a BATCH of parcel-property change requests on Avito's initiative (changeReceiver / extendParcelStorage / prohibitParcelReceive / prohibitParcelAcceptance / changeReceiverTerminalOnConfirmed, per the type enum). Use it for bulk changes; for a single parcel use delivery_v1_change_parcel. The call only QUEUES the requests — the delivery service reports each outcome back via delivery_change_parcel_result. Implemented on the delivery-service side, for delivery-service PARTNERS only (a regular seller account gets 403/404).

Inputs: type (required), applications (required), dryRun, idempotencyKey.

delivery_check_confirmation_codeDelivery: check code [sandbox]A
Read-onlyIdempotent

[SANDBOX] Verifies the confirmation code that the buyer shows at the pickup point upon handover. Returns the verification status (success / other). For delivery-service partners only; a same-named endpoint exists in the orders domain — this one applies to delivery parcels.

Inputs: parcelID (required), confirmCode (required).

delivery_create_announcement_3plDelivery: create announcement [3PL]A

[3PL] Creates an announcement of a planned shipment from one delivery service (sender) to another (receiver). The method is implemented on the delivery-service side — on a regular seller account it returns 403/404. Use it when you need to notify the receiving party about an upcoming parcel handover; unlike delivery_create_parcel this is a shipment announcement, not the creation of the parcel itself.

Inputs: date (required), sender (required), barcode (required), packages (required), +5 more.

delivery_create_parcel⚠️ Delivery: create parcel [3PL]A

[3PL] Production creation of a parcel on the delivery-service side (CreateParcelRequest). The method is implemented by the delivery-service partner — on a regular seller account it returns 403/404. orderID, parcelID, items, sender, receiver, payment are required. Unlike delivery_create_sandbox_parcel_v2 ([SANDBOX v2]), this is production, the creation of a real parcel.

Inputs: items (required), sender (required), orderID (required), payment (required), +8 more.

delivery_create_sandbox_parcel_v2Delivery: create parcel [sandbox]A

[SANDBOX v2] Creates a test parcel in the Sandbox (no real-world effect) and returns its parcelID — the entry point for the sandbox parcel lifecycle: feed that id into delivery_v1_get_parcel_info, delivery_v1_get_registered_parcel_id, delivery_v1_change_parcel and delivery_v1_cancel_parcel. Unlike delivery_create_parcel ([3PL] production creation), this has no consequences. For delivery-service PARTNERS testing only.

Inputs: tags, items, dryRun, sender, +3 more.

delivery_custom_area_scheduleDelivery: zone schedule [sandbox]A
Destructive

[SANDBOX] Sets the working schedule of a delivery zone for a specific day that differs from the regular schedule (for example, holidays/weekends). Re-uploading overwrites the previous schedule for those dates. For delivery-service partners only. The body is an array of schedules directly (no wrapper).

Inputs: schedules (required), dryRun, idempotencyKey.

delivery_get_sorting_centerDelivery: list sorting centers [sandbox]A
Read-onlyIdempotent

[SANDBOX] Returns the sorting centers (hubs) for the specified delivery services. For delivery-service partners only. Delivery-service codes: pochta (Russian Post), exmail, bb (Boxberry), pp (PickPoint), dpd, and others.

Inputs: deliveryProviders (required).

delivery_get_taskDelivery: task status [sandbox]A
Read-onlyIdempotent

[SANDBOX] Returns the status of an asynchronous task by the taskID obtained from upload operations (sorting centers, tags, areas, terms, tariff). Statuses: processing | success | . Processing usually takes 5–20 minutes. For delivery-service partners only.

Inputs: task_id (required).

delivery_prohibit_order_acceptanceDelivery: prohibit acceptance [sandbox]A
Destructive

[SANDBOX] Prohibits the delivery service from accepting a parcel from the sender — the parcel will not be taken into processing. A step in the parcel-cancellation flow (pair with delivery_sandbox_cancel_parcel). Returns a success status. Implemented on the delivery-service side, for delivery-service PARTNERS only (a regular seller account gets 403/404).

Inputs: orderId (required), dryRun, idempotencyKey.

delivery_sandbox_cancel_parcelDelivery: cancel parcel [sandbox]A
Destructive

[SANDBOX] Cancels a test parcel on behalf of the receiver (actor=receiver); returns a success status. Only parcels created via delivery_create_sandbox_parcel_v2 can be cancelled. Implemented on the delivery-service side, for delivery-service PARTNERS only. Unlike delivery_v1_cancel_parcel ([SANDBOX v1] with an options field), this is the base contract with an actor field.

Inputs: actor (required), parcelID (required), dryRun, idempotencyKey.

delivery_sandbox_create_announcementDelivery: create announcement [sandbox]A

[SANDBOX] Creates an announcement of a planned shipment to Avito in the test environment; after creation the announcement is routed to the delivery service specified in receiver. For delivery-service partners only. Unlike delivery_create_announcement_3pl (production /createAnnouncement), this is a sandbox, with no consequences.

Inputs: date (required), sender (required), barcode (required), packages (required), +5 more.

delivery_sandbox_track_announcementDelivery: push announcement tracking event [sandbox]A

[SANDBOX] Appends one tracking event for an announcement from the delivery service; does not modify existing history — use it to simulate an announcement progressing (ACCEPTANCE_DONE → RECEIVED → DELIVERED, or CANCELLED). One call records one event (not idempotent — re-sending logs a duplicate). Returns an empty 200 on success. For delivery-service PARTNERS only. This is the announcement-level analogue of delivery_tracking (which reports parcel-level status events).

Inputs: date (required), event (required), announcementID (required), dryRun, +1 more.

delivery_set_order_propertiesDelivery: set parcel properties [sandbox]A
Destructive

[SANDBOX] Sets a parcel's delivery parameters on Avito — e.g. the final delivery cost. Idempotent by overwrite: each call REPLACES the previous values, so always send the complete current set, not a delta. Returns an empty 200 on success. For delivery-service PARTNERS only (not regular sellers). Sibling tools: delivery_set_order_real_address sets the pickup address, delivery_tracking pushes a status event — this one only sets cost/parameters.

Inputs: orderId (required), properties (required), dryRun, idempotencyKey.

delivery_set_order_real_addressDelivery: actual address [sandbox]A

[SANDBOX] Sends Avito the ACTUAL pickup point used for a parcel's acceptance/return — needed for agent and customer returns. Returns an empty 200 on success. Sibling: delivery_set_order_properties sets cost/parameters; this one only sets the address. For delivery-service PARTNERS only (not regular sellers).

Inputs: address (required), orderId (required), dryRun, idempotencyKey.

delivery_trackingDelivery: push tracking event [sandbox]A

[SANDBOX] Appends one parcel tracking event to Avito on behalf of the delivery service; does not modify existing history — a single status transition (e.g. RECEIVED_AT_TRANSIT_TERMINAL → IN_TRANSIT). Use this to report movement as it happens; one call records one event, and events accumulate into the parcel history (not idempotent — re-sending logs a duplicate). Returns an empty 200 on success; a 4xx means the order/status pair was rejected. Comply with Avito's retry policy on 5xx. For delivery-service PARTNERS only (not regular sellers). Sibling tools: delivery_set_order_properties sets cost/parameters, delivery_change_parcels reschedules a parcel — this one only appends a status event.

Inputs: date (required), orderId (required), location (required), avitoStatus (required), +6 more.

delivery_update_termsDelivery: delivery-term zones [sandbox]A

[SANDBOX] Creates a task to update the delivery-term zones in a tariff; returns a taskID — status via delivery_get_task. Important: the list of new terms must fully match the tariff's deliveryProviderZoneId values. For delivery-service partners only. The body is an array of zones directly.

Inputs: zones (required), tariff_id (required), dryRun, idempotencyKey.

delivery_v1_cancel_announcementDelivery: cancel announcement [sandbox v1]A
Destructive

[SANDBOX v1] Starts the process of cancelling a test announcement; on success the response has a success status. Available only in the Sandbox, for delivery-service partners. Unlike delivery_cancel_announcement_3pl (production /cancelAnnouncement), this is the test v1 contract with a required options field.

Inputs: date (required), options (required), announcementID (required), dryRun, +1 more.

delivery_v1_cancel_parcelDelivery: cancel parcel [sandbox v1]A
Destructive

[SANDBOX v1] Cancels a test parcel: initiates an acceptance prohibition at the delivery service and, if it took effect, cancels the parcel. Only parcels created via delivery_create_sandbox_parcel_v2 can be cancelled. Available only in the Sandbox. Unlike delivery_sandbox_cancel_parcel (actor field), this is the v1 contract with an options field.

Inputs: parcelID (required), dryRun, options, idempotencyKey.

delivery_v1_change_parcelDelivery: change parcel [sandbox v1]A

[SANDBOX v1] Creates a request to change ONE test parcel's data (e.g. the receiver's name/phone), per the type enum (changeReceiver / prohibitParcelReceive / extendParcelStorage / prohibitParcelAcceptance). The call only QUEUES the request — poll delivery_v1_get_change_parcel_info for the outcome. For bulk changes use delivery_change_parcels instead. Sandbox-only, for delivery-service PARTNERS.

Inputs: type (required), parcelID (required), dryRun, options, +2 more.

delivery_v1_create_announcementDelivery: create announcement [sandbox v1]A

[SANDBOX v1] Creates a test shipment announcement in the Sandbox (no real-world effect); returns a success status. Use the base contract delivery_sandbox_create_announcement unless you specifically need this v1 shape — the only difference is that v1 additionally requires the options field. Sandbox-only, for delivery-service PARTNERS.

Inputs: date (required), sender (required), barcode (required), options (required), +6 more.

delivery_v1_get_announcement_eventDelivery: announcement event [sandbox v1]A
Read-onlyIdempotent

[SANDBOX v1] Returns the last registered event for a test announcement — makes it easier to debug announcement-tracking integration. Available only in the Sandbox, for delivery-service partners.

Inputs: announcementID (required).

delivery_v1_get_change_parcel_infoDelivery: change request info [sandbox v1]A
Read-onlyIdempotent

[SANDBOX v1] Returns information about a test-parcel change request by its applicationID (the request is created via delivery_v1_change_parcel). Available only in the Sandbox, for delivery-service partners.

Inputs: applicationID (required).

delivery_v1_get_parcel_infoDelivery: parcel info [sandbox v1]A
Read-onlyIdempotent

[SANDBOX v1] Returns information about a test parcel by parcelID. Available only in the Sandbox; works only with parcels created via delivery_create_sandbox_parcel_v2.

Inputs: parcelID (required).

delivery_v1_get_registered_parcel_idDelivery: parcel ID by orderID [sandbox v1]A
Read-onlyIdempotent

[SANDBOX v1] Returns the parcelID of a registered test parcel by its orderID. Works only with parcels created via delivery_create_sandbox_parcel_v2. Available only in the Sandbox.

Inputs: orderID (required).

hierarchy_check_ah_user_v1Hierarchy: user statusA
Read-onlyIdempotent

Checks the status of the current user within the account hierarchy (check_ah_user). Returns the flags isCompany, isChief, isEmployee and avitoCompanyId — whether it is a company, a chief, an employee, and which company it is linked to. Read-only. Call before hierarchy_link_items_v1 to make sure the user belongs to a hierarchy and has the required role.

Inputs: no named parameters.

hierarchy_get_employees_v1Hierarchy: list of employeesA
Read-onlyIdempotent

Returns the list of account-hierarchy employees of the managing company (get_employees). For each employee it returns employeeId, name, email, phones and the chief flag (isChief). Read-only. Requires an active account-hierarchy plan; the employeeId returned here is used in hierarchy_link_items_v1 and hierarchy_list_items_by_employee_id_v1.

Inputs: no named parameters.

hierarchy_list_company_phones_v1Hierarchy: company phonesA
Read-onlyIdempotent

Returns the list of phone numbers of the managing company in the account hierarchy (list_company_phones) with cursor-based pagination. The response contains a phones array and a cursor for the next page (if no cursor is returned, the list has ended). Read-only. Requires an active account-hierarchy plan.

Inputs: cursor.

hierarchy_list_items_by_employee_id_v1Hierarchy: employee listingsA
Read-onlyIdempotent

Returns the IDs of listings assigned to a specific hierarchy employee, filtered by category (list_items_by_employee). The response contains an items array and a hasNext flag for cursor-based pagination. Fetching listings for the company as a whole is not available — only per employee. Read-only. Requires hierarchy permissions; employeeId is taken from hierarchy_get_employees_v1.

Inputs: categoryId (required), employeeId (required), lastItemId.

items_apply_vas⚠️ Apply VAS servicesA
Destructive

Applies ONE OR MORE promotion services (slugs) and/or stickers to a published listing (apply_vas, v2 — the current method). ⚠️ MONEY: charges money; irreversible. The response contains the IDs of the purchase operations for status tracking. The preferred replacement for the deprecated items_put_item_vas (a single service) and items_put_item_vas_package_v2 (a package). Within one request each service is applied only once; stickers are available only with the "XL listing" service, no more than three. First check the available slugs/stickers and price via items_post_vas_prices, and confirm with the user.

Inputs: slugs (required), itemId (required), dryRun, stickers, +1 more.

items_get_item_infoListing detailsA
Read-onlyIdempotent

Returns detailed information about a SINGLE listing (get_item_info) — status, price, address, list of applied VAS services, etc. Read-only. Use it when the item_id is already known; for a list of listings, use items_get_items_info, and for view/contact statistics, use items_post_item_stats_shallow (this method does not return statistics). Limit: 500 requests/min.

Inputs: item_id (required), user_id.

items_get_items_infoList listingsA
Read-onlyIdempotent

Returns a LIST of the authenticated user's listings (get_items_info) — id, status, category, link on the site. Read-only, changes nothing. Use it to find listing ids and get an overview; for details on a single listing, use items_get_item_info. Supports pagination (page + per_page) and filters (status, category, updatedAtFrom). Limit: 25 requests/min. Does not work with employees' listings — for those (under the main account or as an authenticated employee) it returns an empty list.

Inputs: page, status, category, per_page, +1 more.

items_post_account_spendingsProfile spendingsA
Read-onlyIdempotent

Returns a REPORT of the profile's spendings over a period by Avito spending category: all, promotion, presence, commission, or rest. Read-only, spends no money (only shows already incurred spending). Period dateFrom..dateTo (YYYY-MM-DD). Note: grouping here is a STRING "day"|"week"|"month" (NOT an object, unlike items_post_item_analytics). Data depth no more than 270 days, no more than 1 request per minute. Required: dateFrom, dateTo, spendingTypes, grouping.

Inputs: dateTo (required), dateFrom (required), grouping (required), spendingTypes (required), +2 more.

items_post_calls_statsCall statisticsA
Read-onlyIdempotent

Returns aggregated CALL statistics for listings over a period (post_calls_stats) — total/new/answered/new answered, broken down by day. Read-only analytics, changes nothing and spends nothing. The period is set by dateFrom..dateTo (YYYY-MM-DD). Without itemIds — across all of the user's listings. For views/contacts, use items_post_item_stats_shallow.

Inputs: dateTo (required), dateFrom (required), itemIds, user_id.

items_post_item_analyticsListing analyticsA
Read-onlyIdempotent

Returns EXTENDED statistical metrics for the profile/listings over a period (post_item_analytics, stats v2): views, contacts, presenceSpending, etc. with flexible grouping, filters and sorting. Read-only analytics. Choose it over items_post_item_stats_shallow when you need filters by category/employee, sorting by a metric, or presence-spending metrics. limit ≤ 1000.

Inputs: limit (required), dateTo (required), offset (required), metrics (required), +5 more.

items_post_item_stats_shallowListing statisticsA
Read-onlyIdempotent

Returns counters (shallow statistics) for a list of listings over a period (post_item_stats_shallow / itemStatsShallow): unique views, contacts, favorites added. Read-only analytics. Use it for metrics on specific item_ids grouped by day/week/month; for extended profile analytics with filters and sorting, use items_post_item_analytics, and for calls, use items_post_calls_stats. Limits: no more than 200 listings per request, depth no more than 270 days back.

Inputs: dateTo (required), itemIds (required), dateFrom (required), fields, +2 more.

items_post_vas_pricesVAS service pricesA
Read-onlyIdempotent

Returns the cost of promotion services (VAS), available packages and stickers for the given listings (post_vas_prices). Read-only — does NOT purchase and does NOT spend money, only a price reference. Always call it BEFORE purchasing via items_apply_vas / items_put_item_vas to learn the current service slugs and their prices.

Inputs: itemIds (required), userId.

items_put_item_vas⚠️ Apply VASA
Destructive

Applies ONE additional promotion service (VAS) to a listing (put_item_vas). ⚠️ MONEY: charges money from the balance; irreversible. The response contains service data and the charged amount. DEPRECATED: for one or more services, prefer items_apply_vas (v2); for a package of services, use items_put_item_vas_package_v2. First call items_post_vas_prices for the current slug and price. Confirm with the user. Note: an error does not guarantee the service was not purchased — check again in a few minutes.

Inputs: vas_id (required), item_id (required), dryRun, user_id, +1 more.

items_put_item_vas_package_v2⚠️ Apply VAS packageA
Destructive

Applies a PACKAGE of promotion services (VAS) to a listing (put_item_vas_package_v2). ⚠️ MONEY: charges money from the balance; irreversible. The response contains the charged amount. Unlike items_put_item_vas (a single service by slug) and items_apply_vas (an arbitrary set of services/stickers), this method purchases a pre-assembled package by its package_id. DEPRECATED, the recommended replacement is items_apply_vas (v2). First check the price via items_post_vas_prices and confirm with the user. An error does not guarantee the package was not purchased — check again in a few minutes.

Inputs: item_id (required), package_id (required), dryRun, user_id, +1 more.

items_update_price⚠️ Change priceA
Destructive

Changes a listing's price (update_price). ⚠️ PUBLIC: the new price is immediately visible to buyers on the site. Requires item_id and price (integer, in rubles). Available only for the Goods, Spare Parts, Auto and Real Estate categories (except short-term rentals); other categories return an error. Spends no money, but this is a live change to a public listing — confirm with the user. Limit: 150 requests/min.

Inputs: price (required), item_id (required), dryRun, idempotencyKey.

messenger_chat_readMark chat as readA

Marks the unread messages of the specified chat as read, recording a read receipt and clearing the unread counter. Sends NOTHING to the other party and is not visible to them; does not modify or delete any message. Idempotent: calling it again on an already-read chat is safe. Requires chat_id (from messenger_get_chats_v2).

Inputs: chat_id (required), dryRun, user_id, idempotencyKey.

messenger_delete_message⚠️ Delete messageA
Destructive

Deletes a SINGLE message from a chat by message_id. WARNING: IRREVERSIBLE — the message cannot be restored; the deletion is visible to the other party (a "deleted" marker remains in place of the message). You can usually delete only your own messages. Requires chat_id and message_id (from messenger_get_messages_v3). Always confirm with the user before calling.

Inputs: chat_id (required), message_id (required), dryRun, user_id, +1 more.

messenger_get_chat_by_id_v2Chat by IDA
Read-onlyIdempotent

Returns the details of a SINGLE chat by a known chat_id: participants, linked item, context, and the last message. Read-only. Use it when the chat_id is already known; to find a chat_id or get a list of conversations, use messenger_get_chats_v2. The conversation messages themselves are returned by messenger_get_messages_v3.

Inputs: chat_id (required), user_id.

messenger_get_chats_v2List chatsA
Read-onlyIdempotent

Returns a LIST of the account's chats (conversations with buyers) with a preview of the last message and an unread counter. Read-only — sends nothing and does not mark anything as read. Use it to find the needed chat_id before messenger_get_messages_v3, messenger_post_send_message or messenger_chat_read. To get the details of a single known chat, use messenger_get_chat_by_id_v2. Supports filters (items, types, unread) and offset-based pagination via limit/offset.

Inputs: limit, offset, user_id, item_ids, +2 more.

messenger_get_messages_v3Chat messagesA
Read-onlyIdempotent

Returns the MESSAGES of a specific chat (V3), sorted newest to oldest: text, images, voice, links, date, and author. Read-only — does not mark the chat as read (use messenger_chat_read for that). Requires chat_id (from messenger_get_chats_v2). Page through a long conversation via limit/offset. For download URLs of voice files in messages, use messenger_get_voice_files.

Inputs: chat_id (required), limit, offset, user_id.

messenger_get_subscriptionsWebhook subscriptionsA
Read-onlyIdempotent

Returns a LIST of the account's active webhook subscriptions: notification URLs and their versions/status. Read-only (despite the POST method — no body is required); creates and deletes nothing. Use it to check which URLs are subscribed before messenger_post_webhook_v3 (subscribe) or messenger_post_webhook_unsubscribe (unsubscribe).

Inputs: no named parameters.

messenger_get_voice_filesVoice messagesA
Read-onlyIdempotent

Returns temporary download URLs for voice messages by their voice_id. Read-only. voice_id values come from voice messages obtained via messenger_get_messages_v3 (the voice/voice_id field). The links are temporary — download immediately.

Inputs: voice_ids (required), user_id.

messenger_get_webhook_eventsReceived webhook eventsA
Read-onlyIdempotent

Returns Avito messenger webhook events RECEIVED by this server (new chat messages), newest-first. Reads the in-process buffer filled by the webhook receiver — does NOT call the Avito API and does NOT mark anything as read. Requires the receiver to be enabled (set AVITO_MCP_WEBHOOK_SECRET) and Avito subscribed to the receiver URL (messenger_register_webhook). Supports filtering by chat_id, a since cutoff (ISO-8601 timestamp or epoch seconds/ms), and a limit. Check the receiver config and buffer stats with messenger_get_webhook_status.

Inputs: limit, since, chat_id.

messenger_get_webhook_statusWebhook receiver statusA
Read-onlyIdempotent

Returns the configuration and live stats of this server's Avito webhook RECEIVER: whether it is enabled, the public URL, the subscribe URL (with the secret masked), and ring-buffer counters (retained / total / last received). Does NOT call the Avito API. Use it to verify the receiver is set up before messenger_register_webhook, then read collected events with messenger_get_webhook_events.

Inputs: no named parameters.

messenger_post_blacklist_v2⚠️ Block usersA
Destructive

Adds one or more users to the account's BLACKLIST. WARNING: a blocked user will no longer be able to message you in the messenger; this immediately affects a third party and requires confirmation. Accepts an array of users with a user_id and an optional context (item_id and reason). reason_id: 1=spam, 2=fraud, 3=insults and rudeness, 4=other reason.

Inputs: users (required), dryRun, user_id, idempotencyKey.

messenger_post_send_image_message⚠️ Send imageA
Destructive

Sends an IMAGE (by an already-uploaded image_id) to a chat on behalf of the account. WARNING: the image is immediately and PUBLICLY visible to the other party. Two-step process: first upload the file via messenger_upload_images and obtain an image_id, then call this tool. For text, use messenger_post_send_message. Confirm sending with the user.

Inputs: chat_id (required), image_id (required), dryRun, user_id, +1 more.

messenger_post_send_message⚠️ Send messageA
Destructive

Sends a TEXT message to a chat on behalf of the account. WARNING: the message is immediately and PUBLICLY visible to the other party (the buyer) and is not removed automatically (you can delete it via messenger_delete_message). Confirm the text with the user before calling. Requires chat_id (from messenger_get_chats_v2) and text up to 1000 characters. To send an image, use messenger_post_send_image_message.

Inputs: text (required), chat_id (required), dryRun, user_id, +1 more.

messenger_post_webhook_unsubscribeDisable webhookA
Destructive

UNSUBSCRIBES the specified URL from messenger webhook notifications — Avito will stop sending events to this address. Changes account settings; to resume notifications you will have to subscribe again via messenger_post_webhook_v3. Specify exactly the URL that was subscribed (see the list in messenger_get_subscriptions).

Inputs: url (required), dryRun, idempotencyKey.

messenger_post_webhook_v3⚠️ Enable webhookA
Destructive

SUBSCRIBES THIS server's operator-configured receiver URL to webhook notifications (V3) about new messenger events. For security, the URL must exactly match AVITO_MCP_WEBHOOK_PUBLIC_URL + path + secret; arbitrary destinations are rejected. Changes account settings and causes Avito to send future events externally, so confirmation is required by default. You can check current subscriptions via messenger_get_subscriptions and disable them via messenger_post_webhook_unsubscribe.

Inputs: url (required), dryRun, idempotencyKey.

messenger_register_webhook⚠️ Register webhook receiverA
Destructive

Subscribes Avito to THIS server's configured webhook receiver URL so messenger events (new chat messages) start flowing. Registers only the URL derived from the webhook config (AVITO_MCP_WEBHOOK_PUBLIC_URL + path + secret). Adds a webhook subscription (additive — it does not delete other subscriptions); Avito will then POST events to the URL (requires a PUBLIC HTTPS address reachable from the internet; localhost does not work). Same operation as messenger_post_webhook_v3, but auto-fills the URL from config. Pairs with messenger_get_webhook_events (read received events) and messenger_get_webhook_status (receiver config). To unsubscribe, use messenger_post_webhook_unsubscribe.

Inputs: url, dryRun, idempotencyKey.

meta_auth_statusAuth: OAuth token status (no secrets)A
Read-only

Reports only token METADATA: present/absent, expiresInSec, last refresh error. The token itself is NEVER returned — for that use the auth_* tools under AVITO_MCP_EXPOSE_AUTH_TOOLS=1 (hidden by default). By default it does not force a refresh — if probe=true, it will attempt getToken() (which may trigger a refresh).

Inputs: probe. Returns: probeOk, lastError, tokenFile, configured, +2 more

meta_cancel_action✗ Cancel a pending actionA
DestructiveIdempotent

Cancels a previously deferred action. After cancellation the confirmation_id is no longer valid.

Inputs: confirmation_id (required).

meta_capabilitiesCapabilities: what is enabled in this runA
Read-onlyIdempotent

Returns a machine-readable description of the current configuration: mode, allow/deny lists, confirmation, dry-run, idempotency, local file access. Useful for an agent to understand which operations are fundamentally available before attempting to call tools.

Inputs: no named parameters. Returns: mode, name, tools, account, +10 more

meta_confirm_action✓ Confirm a pending actionA
Destructive

⚠️ Executes a previously deferred action by its confirmation_id. Use ONLY after explicit human confirmation — the flow is designed as a server-side two-step guard against accidental one-shot execution, not as cryptographic protection against an autonomous agent. Confirmation is single-use: the id is deleted after a successful call. AVITO_MCP_CONFIRMATION_SECRET is not set — soft-confirmation is in effect. Set the env variable to switch to hard-confirmation.

Inputs: confirmation_id (required), confirmation_secret.

meta_get_rate_limitsRate-limit statusA
Read-onlyIdempotent

Returns the most recently observed X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset values, grouped by logical API domain (core, messenger, items, etc.) across all processes in the current account namespace. Useful for diagnosing "why am I being throttled" — Avito enforces a per-minute limit.

Inputs: no named parameters.

meta_healthHealth: overall server statusA
Read-onlyIdempotent

Universal health-check: package version, active capabilities, rate-limit status, idempotency ledger size, pending actions count, dryRun default. Does not call the Avito API. Safe to call as often as you like.

Inputs: no named parameters. Returns: ok, name, safety, version, +4 more

meta_list_pending_actionsPending actions: listA
Read-onlyIdempotent

Lists the current pending actions awaiting confirmation. Args are not shown — only tool name, risk, a brief summary, and the creation and expiration times. Use it to diagnose "what did I just ask to confirm".

Inputs: no named parameters.

msg_discounts_open_api_availableDiscounts: eligible listingsA
Read-onlyIdempotent

[BETA] Checks whether a discount/special-offer messenger campaign is available for a list of listings (available). Read-only; sends nothing and charges nothing. For each itemId it returns isAvailable and, when not available, a reason. Run this FIRST, before msg_discounts_open_api_multi_create. Do not confuse it with ..._tariff_info (campaigns remaining in the plan) or ..._stats (statistics for sent campaigns).

Inputs: itemIds (required).

msg_discounts_open_api_multi_confirm⚠️ Discounts: send campaignA
Destructive

[BETA] ⚠️ SECOND, final step: confirms and PAYS from the Avito wallet for the discount/special-offer campaign created via msg_discounts_open_api_multi_create (multi_confirm). IRREVERSIBLE and PUBLIC: messages are sent to recipients (buyers who added the listing to favorites) and money is deducted from the account; if funds are insufficient an error is returned. Always confirm the action with the user before calling. Unlike ..._available/..._tariff_info/..._stats (read-only), this method performs the actual send and charge.

Inputs: dryRun, expiresAt, dispatches, idempotencyKey.

msg_discounts_open_api_multi_createDiscounts: create campaignA

[BETA] Creates a draft discount/special-offer messenger campaign for a list of listings and locks in the recipient audience (multi_create). This is the FIRST step — the campaign is NOT sent yet and no money is charged: it returns dispatches (id, created/notCreated status, recipient count) and the available offers with their price. Then pick an offer and confirm it via msg_discounts_open_api_multi_confirm — only then are the messages sent to recipients (public). Check listing eligibility in advance via ..._available.

Inputs: itemIds (required), dryRun, idempotencyKey.

msg_discounts_open_api_statsDiscounts: campaign statisticsA
Read-onlyIdempotent

[BETA] Returns statistics for already-sent discount/special-offer campaigns over a period (stats). Read-only; sends nothing and charges nothing. For each campaign: itemId, offerSlug, send and expiration dates, the number of offers sent (count) and accepted by buyers (accepted), the discount amount, and the cost. Use it to analyze results; for eligibility checks use ..._available, and for the remaining plan balance use ..._tariff_info.

Inputs: dateTimeTo (required), dateTimeFrom (required).

msg_discounts_open_api_tariff_infoDiscounts: campaign planA
Read-onlyIdempotent

[BETA] Returns information about the current discount/special-offer campaign plan: how many campaigns remain (sendsLeft) and the total allowance (totalSends) (tariff_info). Read-only, no parameters, sends nothing and charges nothing; if there is no active plan, the response is empty. Do not confuse it with ..._available (per-listing eligibility) or ..._stats (statistics for already-sent campaigns).

Inputs: no named parameters.

orders_accept_return_order⚠️ Orders: accept returnA
Destructive

⚠️ Confirms the buyer's return of an item and selects the Russian Post office the return parcel will be sent to (accept_return_order). Write/public operation for courier delivery (Courier): the confirmation is visible to the buyer and irreversibly starts the return process. Call it when the order has an available acceptReturnOrder action. The response contains a success flag.

Inputs: orderId (required), terminalNumber (required), dryRun, recipient, +1 more.

orders_apply_transition⚠️ Orders: change statusA
Destructive

⚠️ Applies an order status transition (apply_transition), such as confirmation or cancellation. WARNING: the new status is visible to the buyer and affects the deal; the transition is irreversible. The allowed transitions depend on the current status — see the list of available actions in availableActions from orders_get_orders. The response contains a success flag.

Inputs: orderId (required), transition (required), dryRun, params, +1 more.

orders_check_confirmation_codeOrders: verify codeA
Read-onlyIdempotent

Verifies the confirmation code for handing over an order at a pickup point (check_confirmation_code): the buyer states the code from the app and the method validates it. Effectively a read check, it does not change the order. The response contains status: success (code valid), fail (invalid), expired (expired), or attempts (attempts exhausted). Do not confuse it with delivery_check_confirmation_code from the delivery domain — this method belongs to order management.

Inputs: parcelID (required), confirmCode (required).

orders_cnc_set_details⚠️ Orders: click-and-collect (details)A

⚠️ Prepares a click-and-collect order and sends the details to the buyer (cnc_set_details, CNC = click-and-collect). Write operation: the seller sets the pickup address, the booking period, and a comment the buyer will see. Call it when the order has an available setCNCDetails action. After handover, confirmation is done via orders_apply_transition (receive) with the buyer's code.

Inputs: id (required), bookingPeriod (required), marketplaceId (required), dryRun, +3 more.

orders_download_labelOrders: download labelA
Read-onlyIdempotent

Downloads the generated PDF file with labels by taskID (download_label). Read-only, changes nothing. Call it AFTER orders_generate_labels or orders_generate_labels_extended, once the generation task is complete — the taskID comes from their response. Returns a structured binary response {mimeType: "application/pdf", sizeBytes, base64}; decode the base64 to save or print the file. If the task is not ready yet or the taskID is wrong, a 404 is returned.

Inputs: taskID (required).

orders_generate_labelsOrders: create labelsA

Creates a task to generate PDF labels for orders (generate_labels, up to 100 orders at a time). Available only for pickup-point orders. Returns a taskID; wait for it to be ready and download the file via orders_download_label. For large batches (up to 1000 orders) use orders_generate_labels_extended — it has a higher limit but a strict rate limit (1 request/min).

Inputs: orderIDs (required), dryRun, idempotencyKey.

orders_generate_labels_extendedOrders: create labels (up to 1000)A

Creates a task to generate PDF labels for a large batch of orders (generate_labels_extended, up to 1000 orders at a time). Available only for pickup-point orders. Difference from orders_generate_labels: a higher order limit (1000 vs 100), but a strict rate limit — 1 request per minute. Returns a taskID; wait for it to be ready and download the file via orders_download_label.

Inputs: orderIDs (required), dryRun, idempotencyKey.

orders_get_courier_delivery_rangeOrders: courier time slotsA
Read-onlyIdempotent

Returns the available time slots for a courier to pick up the item (get_courier_delivery_range), for seller-courier delivery (RDBS/Courier). Read-only. Call it BEFORE orders_set_courier_delivery_range — a specific slot is chosen from the response (dateOptions with intervals and intervalType). Do not confuse it with the set version: this one only reads the available intervals, it does not book them.

Inputs: address (required), orderId (required).

orders_get_ordersOrders: listA
Read-onlyIdempotent

Returns a list of delivery orders (get_orders) with filters by ID, status, and creation date. Read-only, changes nothing. Use it as a starting point: take the available actions from the response (availableActions: confirm/reject/perform/receive/setMarkings/setTrackNumber/setCNCDetails, etc.) for subsequent write operations. Available only to B2C sellers. The response includes a hasMore flag for pagination.

Inputs: ids, page, limit, dateFrom, +1 more.

orders_markings⚠️ Orders: Chestny Znak codesA

⚠️ Submits "Chestny Znak" marking codes (DataMatrix) for the items in an order (markings). Write operation: stores the codes on the Avito side; required when the order has a setMarkings action (see availableActions in orders_get_orders). Maximum 50 marking records per request; the response contains an array of per-item results (success/error). Do not confuse it with status transitions (orders_apply_transition) — this method only attaches codes, it does not change the order status.

Inputs: markings (required), dryRun, idempotencyKey.

orders_set_courier_delivery_range⚠️ Orders: select courier slotA

⚠️ Selects (books) a specific time slot for a courier to pick up the item (set_courier_delivery_range), for seller-courier delivery. A write operation, unlike the read method orders_get_courier_delivery_range, which only shows the available slots — call it first and take the interval and intervalType from the response. Can be called again to change the time while the courier has not yet picked up the parcel. The response contains a success flag.

Inputs: name (required), phone (required), address (required), endDate (required), +6 more.

orders_set_tracking_number⚠️ Orders: tracking numberA
Destructive

⚠️ Submits the parcel tracking number for delivery by the seller's partners (set_tracking_number, DBS). Write/public operation: the tracking number is visible to the buyer for tracking. Call it when the order has an available setTrackNumber action (or fixTrackNumber to correct it). The response contains a success flag; on error, code: incorrect_number (invalid number) or already_set (the number is already attached to another order).

Inputs: orderId (required), trackingNumber (required), dryRun, idempotencyKey.

promotion_create_bbip_order_for_items_v1⚠️ BBIP: buy promotionA
Destructive

⚠️ PAID ACTION (money): creates a BBIP order to enable promotion for listings and CHARGES the budget from the account balance. The order is created only if there are no errors across all listings; if funds are insufficient — 402. FIRST estimate the cost and return for free: promotion_get_bbip_suggests_by_items_v1 (budget options) → promotion_get_bbip_forecasts_by_items_v1 (forecast). Then for each listing pass an option from suggests as {itemId, duration, oldPrice, price} (oldPrice/price — kopecks/day, duration — days; full budget = price × duration). Returns orderId (UUID) — check its status via promotion_get_order_status_v1.

Inputs: items (required), dryRun, idempotencyKey.

promotion_get_bbip_forecasts_by_items_v1BBIP: forecast effectA
Read-onlyIdempotent

Returns the forecast effect of BBIP promotion (listing promotion bid/budget): expected increase in views (min/max) and total cost for the period. READ-ONLY: spends NO money; use BEFORE promotion_create_bbip_order_for_items_v1 to estimate the return. For each listing pass {itemId, duration, oldPrice, price} — the same values as for create; take them from promotion_get_bbip_suggests_by_items_v1 (budgets[].{oldPrice,price} — kopecks/day, duration.recommended — days). Returns items[].{min,max,totalPrice} (kopecks) and an overall totalPrice.

Inputs: items (required).

promotion_get_bbip_suggests_by_items_v1BBIP: budget suggestionsA
Read-onlyIdempotent

Returns recommended BBIP promotion bid/budget options for the listings. READ-ONLY: spends NO money. This is the first step of the BBIP flow: from the response take items[].budgets[].{oldPrice,price} (kopecks/day, isRecommended flags the recommended one) and items[].duration.{from,to,recommended} (days), then pass them to promotion_get_bbip_forecasts_by_items_v1 (forecast) and promotion_create_bbip_order_for_items_v1 (paid purchase).

Inputs: itemIds.

promotion_get_dict_of_services_v1Promotion: service dictionaryA
Read-onlyIdempotent

Returns a dictionary of all Avito promotion service types: for each service — slug (type identifier), name and isDeprecated (whether it is deprecated). READ-ONLY: spends NO money and requires no parameters. Use it as a reference to resolve slugs in the responses of other promotion methods.

Inputs: no named parameters.

promotion_get_order_status_v1Promotion: order statusA
Read-onlyIdempotent

Returns the status of a BBIP order by its orderId: the order's overall status (initialized/waiting/in_process/processed), totalPrice (kopecks) and a per-item status for each listing (slug, price, errorReason). READ-ONLY: spends NO money. Call it AFTER promotion_create_bbip_order_for_items_v1 to track the order's execution.

Inputs: orderId (required).

promotion_get_services_by_items_v1Promotion: services by listingsA
Read-onlyIdempotent

Returns active promotion services for the specified listings: for each listing, a list of services with slug, name and startDate/endDate dates. READ-ONLY: spends NO money. Use it to find out which promotion is already enabled and until what date it is active (not to be confused with suggests, which propose new budget options).

Inputs: itemIds.

promotion_list_orders_by_user_v1Promotion: list ordersA
Read-onlyIdempotent

Returns a paginated list of the current user's promotion orders: id (UUID), createdAt and status of each order. READ-ONLY: spends NO money. Use it for order history/overview; the detailed status of a specific order is available via promotion_get_order_status_v1 by its orderId.

Inputs: pagination.

reviews_create_review_answer_v1⚠️ Reply to a reviewA
Destructive

Publishes a seller answer to a review (reviews_create_review_answer_v1). WARNING: the answer is PUBLIC — once moderated it is visible to everyone on the profile page. Requires reviewId (from reviews_get_reviews_v1) and the message text; returns the id of the created answer and a timestamp. Confirm the action with the user. To delete an answer, use reviews_remove_review_answer_v1.

Inputs: message (required), reviewId (required), dryRun, idempotencyKey.

reviews_get_ratings_info_v1User ratingA
Read-onlyIdempotent

Returns the aggregated rating of the current user (reviews_get_ratings_info_v1): average score, the total number of active reviews and the number of reviews that affect the rating, plus a flag indicating whether the rating is enabled. Takes no parameters and returns no paginated data. To get the list of reviews itself, use reviews_get_reviews_v1.

Inputs: no named parameters.

reviews_get_reviews_v1Reviews listA
Read-onlyIdempotent

Returns a paginated list of active reviews for the current user (reviews_get_reviews_v1): review id, score, text, author, listing, attached photos and the current seller answer, plus total — the overall number of reviews. Use it to browse individual reviews and obtain the reviewId (required for reviews_create_review_answer_v1). If you only need the aggregate score without the list, use reviews_get_ratings_info_v1.

Inputs: limit (required), offset (required).

reviews_remove_review_answer_v1⚠️ Delete a review answerA
Destructive

Permanently deletes a previously published seller answer to a review (reviews_remove_review_answer_v1). WARNING: deletion is IRREVERSIBLE and immediately removes the public answer from the profile; returns a success flag. Confirm the action with the user. To publish an answer again, use reviews_create_review_answer_v1.

Inputs: answer_id (required), dryRun, idempotencyKey.

stock_get_stocks_infoStock: getA
Read-onlyIdempotent

Reads current stock (available quantity) for a list of listings in the warehouse (get_stocks_info). Read-only, changes nothing. Returns for each item_id: quantity (available = submitted/edited minus reserved), is_unlimited, is_multiple, is_out_of_stock. To change stock, use stock_update_stocks.

Inputs: item_ids (required), strong_consistency.

stock_update_stocks⚠️ Stock: updateA
Destructive

⚠️ Updates the stock (quantity) of items across listings in the warehouse (update_stocks). Affects whether listings are available to order: quantity=0 marks a listing as "out of stock". Accepts an array of {item_id, quantity, external_id?}; quantity is an integer 0..999999. Returns success and errors for each listing. For current stock, use stock_get_stocks_info.

Inputs: stocks (required), dryRun, idempotencyKey.

tariffs_get_tariff_infoTariff (Transport)A
Read-onlyIdempotent

Returns the account tariff information for the Transport category (tariffs_get_tariff_info, read-only). The response includes the current and scheduled contracts — tariff level, activity status, start/end dates (Unix time), bonuses, prices with and without discount, and listing packages with their categories, locations, price groups, and remaining balance. Use it to check tariff terms and the remaining listing balance. Takes no parameters. Available only for tariffs in the "Transport" category and not for the "CPA" tariff; otherwise it returns 404.

Inputs: no named parameters.

trxpromo_apply⚠️ TrxPromo: start promotionA
Destructive

⚠️ Applies transactional promo/promotion with a pay-per-result commission to listings (trxpromo_apply). Affects price/spend: the promotion fee is added on top of the base commission. The response includes a success flag per listing, and on error a code 1001 (validation) or 1002 (promo unavailable) along with the allowed commission range. First check the limits via trxpromo_get_commissions; cancel a running promo with trxpromo_cancel.

Inputs: items (required), dryRun, idempotencyKey.

trxpromo_cancel⚠️ TrxPromo: stopA
Destructive

⚠️ Cancels active and scheduled transactional promo for listings (trxpromo_cancel). Reverts the effect of trxpromo_apply — the promotion and its associated commission stop applying. The response includes a success flag per listing, and on error a code 1001 (validation) or 1002 (promo unavailable). Apply promo again with trxpromo_apply; check commissions with trxpromo_get_commissions (read-only).

Inputs: itemIDs (required), dryRun, idempotencyKey.

trxpromo_get_commissionsTrxPromo: commissionsA
Read-onlyIdempotent

Checks transactional promo availability and the allowed commission range for listings (trxpromo_get_commissions, read-only — does not start anything or charge any fee). For each listing it returns the promoAvailable flag and settings: minimum/maximum/step of the commission in hundredths of a percent (100 = 1%). Use before trxpromo_apply to learn the commission limits. Start promo with trxpromo_apply, cancel with trxpromo_cancel. This is a GET with a request body — non-standard, but that is exactly how it is defined in the Avito swagger.

Inputs: itemIDs (required).

user_get_user_balanceWallet balanceA
Read-onlyIdempotent

Reads the account wallet balance (get_user_balance): the amount of real money (real) and the amount of bonus funds (bonus) in rubles. Read-only, a point-in-time snapshot. This is the Personal Account wallet, not the CPA balance (for CPA see the cpa domain). For the history of charges/top-ups use post_operations_history.

Inputs: user_id.

user_get_user_info_selfUser profileA
Read-onlyIdempotent

Returns the profile of the currently authorized account (get_user_info_self): numeric id (this is the Profile_id), email, name, verified phone numbers, and profile_url. Read-only, no parameters. Handy for finding out the Profile_id and checking which account the server is running under; for the balance use get_user_balance, for the list of operations use post_operations_history.

Inputs: no named parameters.

user_post_operations_historyOperations historyA
Read-onlyIdempotent

Returns the list of account wallet operations for a period (post_operations_history): charges and top-ups in money and bonuses, with amountRub, amountBonus, amountTotal, operation type/name, service type (vas, cpa, tariff, etc.), itemId, and dates for each operation. Read-only. These are Personal Account wallet movements, not the CPA balance. Constraints: dateTimeFrom no more than a year ago, the range between from/to no more than one week; for the current balance use get_user_balance.

Inputs: dateTimeTo (required), dateTimeFrom (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 144 tools

    Disambiguation2/5

    Many tools have overlapping purposes due to multiple versions (v1, v2, v3), deprecated methods, and sandbox vs production variants. Agents must carefully read descriptions to distinguish between similar tools, increasing the risk of misselection.

    Naming Consistency4/5

    Most tool names follow a consistent domain_verb_noun pattern with version suffixes, but there are occasional irregularities like 'delivery_v1_cancel_announcement' vs 'delivery_cancel_announcement_3pl' and some tools are missing version numbers.

    Tool Count2/5

    With 144 tools, the surface is excessively large and includes many deprecated or redundant methods, indicating poor scoping and version management. Most servers should have far fewer tools.

    Completeness3/5

    The tool set covers a wide range of Avito features, but the presence of many deprecated and sandbox-only tools suggests incomplete production coverage; key areas like order management have some gaps (e.g., no direct order cancellation tool).

    Maintenance

    ActivityStale
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      ozon-mcp is a knowledge-rich MCP server that turns the entire Ozon seller toolkit into 15 high-leverage tools. AI agents (Claude, Cursor, Cline, Continue, Goose, Zed, …) can search the API in Russian or English, drill into any of 466 methods with a fully-resolved JSON Schema, and execute calls with built-in safety guards. Subscription- aware, automatic pagination over all 4 cursor styles, retry/ba
      15
      26
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A production-ready MCP server that gives an LLM agent standalone-equivalent control over a Mineflayer Minecraft bot — movement, mining, crafting, inventory, combat, containers, chat, and much more — exposed as 110 strongly-typed tools across 23 groups, with full bot lifecycle management and dual (poll + push) event streaming.
      142 npm
      8
      MIT