Avito MCP Server
This server exposes MCP tools for searching Avito, inspecting listings, messaging sellers, reading chats, and downloading listing photos (README also claims item publishing, but the schema does not expose a create-item tool).
Search Avito by keyword, location, price range, and sort order.
Get full listing details including seller rating, parameters, delivery status, and messaging capability.
Send messages to sellers to negotiate or ask questions.
List recent messenger chats and read chat history.
Download listing photos locally for visual AI inspection.
Requires an authenticated Avito session for messaging and chat tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Avito MCP Server найди на Авито iPhone 13 в Москве до 50000 рублей"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Avito 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 chromium2. Разовая авторизация на Авито
Для того чтобы сервер мог писать продавцам и читать чаты от вашего имени:
macOS / Linux:
python login_avito.py # или ./login_avito.shWindows:
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):
Разовый запуск в фоне:
python scripts/run_cdp.pyАвтозапуск через фоновый демон 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 toolsavito_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_searchSearch Avito listingsB
Search for listings on Avito by query, location, price range and sort order.
Inputs: query (required), sort, limit, location, +2 more.
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
Scored across 6 tools
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.
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.
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.
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
Related MCP Connectors
Web search, data extraction and controlled browser automation for AI assistants via OAuth.
Let AI agents use any website you're logged in to. Sessions stay encrypted on your machine.
Web search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.
A real browser for your agent: screenshots, page checks, Markdown and PDFs.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables 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.22MIT
- AlicenseAqualityBmaintenanceEnables 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.41MIT
- AlicenseBqualityCmaintenanceEnables 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.4185MIT
- AlicenseAqualityBmaintenanceEnables AI clients to search Avito listings by city, price, and sort order, inspect complete listing cards, and review seller ratings and recent feedback locally in read-only mode.10548 npmMIT