Skip to main content
Glama

Avito MCP Server (Python 3.12+)

Кроссплатформенный Model Context Protocol (MCP) сервер на Python 3.12+ для интеграции AI-ассистентов (Claude, Cursor, Antigravity, Gemini и др.) с платформой Авито (Avito.ru).

Поддерживает Linux (серверы / VPS), Docker, macOS и Windows.

Позволяет AI-агенту искать объявления, анализировать состояние товаров и продавцов, читать чаты и вести диалог / торговаться от имени вашего аккаунта.


Возможности (Tools)

  • avito_create_item — публикация новых объявлений с фото, категорией, параметрами и ценой

  • avito_search — поиск по ключевым словам, городу, диапазону цен и сортировке (с превью-фотографиями)

  • avito_get_item_details — получение полной карточки товара (галерея лота, описание, характеристики, статус бронирования, Авито Доставка, рейтинг продавца)

  • avito_send_message — отправка сообщения продавцу в чат по объявлению (для торга или уточнения деталей)

  • avito_list_chats — список недавних диалогов в мессенджере с превью и статусом непрочитанных

  • avito_get_chat_history — чтение истории сообщений в конкретном чате


Related MCP server: cian-mcp

Требования

  • Python >= 3.12

  • Установленный браузер: Google Chrome, Microsoft Edge или Chromium (на macOS и Windows находится автоматически; на Linux ищутся стандартные пути в /usr/bin/ или задаются через переменную AVITO_CHROME_PATH)

  • Либо Docker / Docker Compose (браузер и все зависимости уже встроены)


Быстрый старт (Python 3.12+)

1. Клонирование и установка зависимостей

git clone https://github.com/foorsee/avito-mcp-server.git
cd avito-mcp-server

# Создание и активация виртуального окружения
python3 -m venv .venv
source .venv/bin/activate    # Linux / macOS
# или для Windows: .venv\Scripts\activate

# Установка зависимостей
pip install -r requirements.txt

# Установка браузера Chromium для Playwright
playwright install chromium

2. Разовая авторизация на Авито

Для того чтобы сервер мог писать продавцам и читать чаты от вашего имени:

  • macOS / Linux:

    python login_avito.py
    # или ./login_avito.sh
  • Windows:

    python login_avito.py
    :: или login_avito.bat

Откроется окно браузера. Войдите в свой профиль на Авито по номеру телефона / СМС / пушу и нажмите ENTER в консоли. Сессия сохранится локально в папке avito-data/storageState.json (эта папка находится в .gitignore и никогда не попадает в репозиторий).

Для headless Linux серверов (без монитора):
Авторизуйтесь на компьютере с дисплеем (Mac или Windows), а затем просто скопируйте созданную папку avito-data на сервер в корень проекта.


🐳 Развертывание в Docker (Production / VPS)

Сервер полностью готов к развертыванию в контейнере:

# 1. Поместите папку avito-data с авторизованной сессией в корень проекта
# 2. Сборка и фоновый запуск контейнера:
docker compose up --build -d

# Просмотр логов:
docker compose logs -f

Сессия, куки и профиль монтируются через том ./avito-data, сохраняясь между перезапусками.


Настройка MCP клиента

Добавьте сервер в конфигурационный файл вашего клиента (mcp_config.json, claude_desktop_config.json и др.):

macOS / Linux

{
  "mcpServers": {
    "avito": {
      "command": "/полный/путь/к/avito-mcp-server/.venv/bin/python",
      "args": [
        "/полный/путь/к/avito-mcp-server/avito_server.py"
      ]
    }
  }
}

Windows

{
  "mcpServers": {
    "avito": {
      "command": "C:/полный/путь/к/avito-mcp-server/.venv/Scripts/python.exe",
      "args": [
        "C:/полный/путь/к/avito-mcp-server/avito_server.py"
      ]
    }
  }
}

Работа в Gemini Desktop и песочнице macOS (CDP Режим)

Если вы используете Gemini Desktop на macOS, приложение запускает MCP-серверы внутри защищенной песочницы (Seatbelt Sandbox), которая блокирует прямой запуск сторонних процессов через Mach Ports.

Сервер автоматически поддерживает подключение к Chrome через Chrome DevTools Protocol (CDP):

  1. Разовый запуск в фоне:

    python scripts/run_cdp.py
  2. Автозапуск через фоновый демон macOS (LaunchAgent): Браузер будет автоматически запускаться при старте системы и висеть в фоне:

    python scripts/setup_daemon.py

    (Для отключения демона: python scripts/uninstall_daemon.py)

Сервер avito_core.py автоматически обнаружит запущенный на порту 9222 Chrome и подключится к нему.

3. Решение капчи / Разблокировка при «Проблеме с IP»

Если при частых запросах Авито показало капчу или слайдер-пазл:

python scripts/solve_captcha.py

Откроется окно браузера. Переместите слайдер (сложите пазл), скрипт автоматически определит прохождение капчи, обновит куки и перезапустит фоновый сервис.


Переменные окружения (Опционально)

  • AVITO_DATA_DIR — путь к директории хранения сессии (по умолчанию ./avito-data).

  • AVITO_CHROME_PATH (а также CHROME_PATH) — путь к конкретному исполняемому файлу Chrome / Chromium.

  • AVITO_HEADLESS — принудительно включить (true) или выключить (false) headless-режим.

  • AVITO_CDP_URL — адрес для подключения по CDP (по умолчанию http://127.0.0.1:9222).

  • AVITO_CDP_PORT — порт отладки для Chrome CDP (по умолчанию 9222).

  • AVITO_NO_SANDBOX — принудительно включить --no-sandbox (на Linux под root или в Docker включается автоматически).


Безопасность и приватность

  • Все куки, токены авторизации и профиль сохраняются исключительно локально на вашем сервере/ПК в директории avito-data/.

  • Папка avito-data/ находится в .gitignore и никогда не попадает в репозиторий.

  • Сервер использует естественные тайминги и реалистичные заголовки, предотвращая детекты автоматизации.


Лицензия

MIT License.

Available Tools

6 tools
avito_download_imagesDownload Avito listing photosA

Download photos from an Avito listing to local disk for visual AI inspection. Returns array of local file paths and image URLs.

Inputs: url (required), limit.

avito_get_chat_historyGet chat messages with Avito sellerB

Read message history in an active Avito chat to check seller responses.

Inputs: limit, chat_url.

avito_get_item_detailsGet Avito item detailsA

Get full details of an Avito listing: title, price, description, seller rating/reviews, parameters, delivery status and messaging capability.

Inputs: url (required).

avito_list_chatsList Avito messenger chatsA

List recent chats from the user's Avito messenger. Requires prior login.

Inputs: limit.

avito_send_messageSend message to Avito sellerA

Send a message to a seller on Avito to negotiate or ask questions. Requires prior login via npm run login.

Inputs: url (required), message (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a distinct resource+action: search (query listings), get_item_details (single listing), send_message (outbound messaging), list_chats (conversation index), get_chat_history (messages within a chat), download_images (media retrieval). The messaging trio is cleanly separated by scope (send vs. list vs. read), and download_images has no overlap with anything else.

    Naming Consistency5/5

    All six tools use the same avito_ prefix followed by a snake_case verb_noun pattern (get_item_details, send_message, list_chats, get_chat_history, download_images). The single bare verb (avito_search) is still read as a domain-scoped action and is consistent with the rest of the set.

    Tool Count5/5

    Six focused tools cover a marketplace browse-and-message workflow without redundancy; every tool maps to a real step in the search → inspect → contact → follow-up loop. Nothing feels padded or missing from a count perspective.

    Completeness4/5

    The core lifecycle (search, listing details, image inspection, send message, list chats, read history) is covered with no dead ends for the main workflow. Minor gaps remain: authentication is pushed to an external 'npm run login' step with no tool to trigger or verify login state, and there is no favorites/watchlist or own-listings retrieval.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables local-first, read-only interaction with Avito through your own authenticated Chrome session, without sharing credentials with the MCP client. Provides tools for searching listings, viewing your listings, favorites, chats, and messages.
      2
      2
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables searching cian.ru apartment listings through a live authorized browser session, including login/session management, filtered offer search, and detailed offer cards with price history.
      4
      1
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables an LLM to control a separate Chrome session on Avito for searching and parsing listings, reading account and Pro dashboards/statistics, switching profiles, and editing forms. Requires explicit confirmation for irreversible actions.
      4
      18
      5
      MIT