cian-mcp
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., "@cian-mcp find 2-room flats in Moscow under 15 million"
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.
cian-mcp
Локальный MCP-сервер (Python, stdio) для поиска квартир на cian.ru через живой авторизованный браузерный контекст. Подключается к opencode (или любому другому MCP-клиенту) и предоставляет инструменты:
auth_login— ручной вход в видимом браузере (телефон + SMS), сессия сохраняется.auth_status— проверка валидности сессии.search_offers— поиск объявлений о продаже квартир по фильтрам.get_offer— детальная карточка лота с историей цены.
Почему так
У Циана нет покупательского API, а веб защищён агрессивной анти-бот системой
(Qrator, JS-challenge, капчи). Основной путь — реальная навигация браузера
(page.goto), исполняющая JS и выставляющая нужные куки. context.request
используется как ускорение в уже «прогретой» сессии. Подробности — в
openspec/changes/cian-search-mcp/design.md.
Related MCP server: Avito Personal MCP
Требования
Python 3.12+
Десктоп с графическим дисплеем (для
auth_loginнужен видимый браузер; на headless-сервере или чистом SSH без проброса дисплея вход не сработает).
Установка
make build # pip install -e . (устанавливает пакет и зависимости)
playwright install chromium # скачать браузер PlaywrightИли вручную:
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
playwright install chromiumЗапуск тестов и линтера
make test # pytest
make cover # pytest + coverage (порог 80%)
make lint # ruff check
make fmt # ruff formatЗапуск сервера
make run # python -m cian_mcpКонфигурация opencode
Сервер работает по stdio. Добавьте его в конфиг opencode как локальный stdio MCP-сервер, например:
// opencode.json (или .opencode/config)
{
"mcp": {
"cian-search": {
"type": "local",
"command": ["python", "-m", "cian_mcp"],
"cwd": "/path/to/cian"
}
}
}Укажите cwd в корне проекта, чтобы data/ (профиль браузера и БД) создавалась
рядом с репозиторием.
Первый вход
Агент вызывает
auth_login.Открывается видимое окно браузера на странице входа Циана.
Вы входите вручную (телефон + SMS-код).
После успешного входа сервер фиксирует сессию; профиль сохраняется в локальную директорию
data/browser_profile/.При последующих запусках авторизованный контекст восстанавливается из профиля.
auth_login идемпотентен: при уже валидной сессии он вернёт сообщение, что вход
не требуется.
Примеры вызовов инструментов
auth_login()
-> { "status": "ok", "message": "Вход выполнен, сессия сохранена ..." }
auth_status()
-> { "status": "authorized", "message": "Сессия валидна." }
search_offers(city_id=1, rooms=[2], price_min=8000000, price_max=15000000, limit=20, page=1)
-> { "status": "ok", "page": 1, "limit": 20, "next_page": 2,
"offers": [ { "offer_id": "...", "url": "...", "price": ..., "price_per_m2": ... }, ... ] }
get_offer(url="https://www.cian.ru/sale/flat/287001234/")
-> { "status": "ok", "source": "network", "offer_id": "...", "price": ...,
"price_history": [ {"price": ..., "seen_at": "..."} ], ... }get_offer поддерживает force_refresh: true — всегда идёт в сеть в обход кэша.
Локальные данные и приватность
Профиль браузера (куки, localStorage) и SQLite-кэш хранятся строго в локальной
директории data/, которая добавлена в .gitignore. Значения кук и заголовков
авторизации никогда не логируются и не передаются никаким внешним сервисам,
кроме самого cian.ru в ходе запросов.
Дисклеймер (ToS Циана)
Использование автоматизированных запросов к cian.ru может противоречить пользовательскому соглашению (Terms of Service) Циана. Этот проект предназначен исключительно для личного использования под собственным аккаунтом, в низком («человеческом») темпе, для помощи в поиске квартиры. Проект не предназначен для массового скрапинга, коммерческого использования или обхода защит. Ответственность за соблюдение применимых правил и законов несёт пользователь.
Available Tools
4 toolsauth_loginA
Открывает видимый браузер для ручного входа на cian.ru (телефон + SMS). Сессия сохраняется в локальный профиль.
Inputs: no named parameters. Returns: object
auth_statusA
Сообщает, авторизована ли текущая сессия Циана.
Inputs: no named parameters. Returns: object
get_offerB
Детальная карточка лота по URL: цена, площади, этаж, метро, тип дома, год, описание, фото и история цены.
Inputs: url (required), force_refresh. Returns: object
search_offersB
Поиск объявлений о продаже квартир на Циане по фильтрам. Возвращает список лотов с URL и ключевыми фактами.
Inputs: page, limit, rooms, city_id, +6 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool maps to a distinct concern: authentication (login/status) versus listing retrieval (search/detail). There is no overlap or confusion between list-level and item-level operations.
Tool names follow a clear snake_case verb_noun pattern: auth_login/auth_status share an auth_ prefix, and search_offers/get_offer share the offers resource. The pattern is predictable and easy to navigate.
Four tools is well-scoped for a focused Cian real estate browsing server: two for session management and two for offer discovery/detail. No tool feels redundant.
The surface covers the full read-only workflow: authenticate, verify session, search listings, and retrieve full offer details. No critical missing operation exists for the apparent purpose.
Maintenance
Related MCP Connectors
Let your AI agent operate any website through a real, logged-in browser session.
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
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.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables to interact with hh.ru (a Russian job platform) through browser automation, allowing users to search for jobs, manage resumes, apply to vacancies with cover letters, and track application statuses via natural language.93-
- 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
- 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 assistants to search and analyze Avito listings, inspect item and seller details, download listing photos for visual review, read chats, and send messages or negotiate through a locally authenticated browser session on Windows, macOS, and Linux.66MIT