Polovnjak MCP
Polovnjak MCP
Мультипровайдерный MCP сервер для маркетплейсов подержанных автомобилей. Агенты получают единый набор инструментов — поиск, детали объявлений, статистику цен, историю цен и персональные отслеживания сохранённых поисков — на основе подключаемых адаптеров маркетплейсов. Включённые адаптеры: polovniautomobili.com (идентификатор источника pa) и mojauto.rs (идентификатор источника ma), оба — Сербия.
Пользователи входят через Google с помощью стандартного потока MCP OAuth 2.1; отслеживания приватны для каждого пользователя. Каждое объявление, которое хаб наблюдает (из поисков любого пользователя, выборки статистики или проверок отслеживаний), записывается в общую Postgres «рыночную память», которая обеспечивает запросы истории цен и трендов, недоступные ни на одном отдельном маркетплейсе.
Архитектура
Адаптеры (
src/adapters/) реализуют общий интерфейсSourceAdapter:search,getListing,getMakesModels, а также флаги возможностей. Каждый адаптер переводит канонические фильтры в запрос своего провайдера и отображает результаты обратно в каноническую модель объявления. Объявления имеют составные идентификаторы видаpa:12345678илиma:3554254. Названия марок разрешаются по псевдонимам для каждого источника («VW» и «Volkswagen» работают везде); фильтры, которые источник не может выразить, сообщаются какwarningsдля конкретного источника в результатах.Инструменты (
src/tools/) распределяют запросы по адаптерам и объединяют результаты, помечая всё источником. Категории охватывают автомобили, мотоциклы, фургоны, лёгкие/тяжёлые грузовики, автобусы, прицепы, кемперы, спецтехнику, тракторы, лодки и велосипеды.Рекордер (
src/recorder.ts) выполняет upsert каждого наблюдаемого объявления в таблицуlistingsи добавляет строкуprice_observationsпри первом обнаружении или изменении цены.Аутентификация (
src/auth/) — это самостоятельно размещённый сервер авторизации OAuth 2.1 (динамическая регистрация клиентов, PKCE, refresh-токены) с Google OIDC в качестве слоя идентификации. Токены хранятся в Postgres в хешированном виде.Хранилище — Postgres через Drizzle ORM; миграции выполняются автоматически при запуске.
Related MCP server: Vehicle Database MCP Server
Быстрый старт (Docker Compose)
Создайте Google OAuth-клиент в Google Cloud Console (тип «Веб-приложение») с авторизованным redirect URI
<PUBLIC_URL>/auth/google/callback(например,http://localhost:8321/auth/google/callbackдля локального использования).Настройте окружение:
cp .env.example .env
# set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET (and PUBLIC_URL for non-local deployments)Запустите всё (MCP-сервер + Postgres + FlareSolverr):
docker compose up -d --buildУкажите вашему MCP-клиенту адрес
http://localhost:8321/mcp. Клиент обнаружит метаданные OAuth, зарегистрируется сам и откроет окно браузера для входа через Google. Всё после этого — для каждого пользователя.
Для быстрого локального теста без учётных данных Google установите AUTH_MODE=none — сервер тогда пропустит аутентификацию и будет использовать одного локального dev-пользователя.
Инструменты
Инструмент | Назначение |
| Зарегистрированные источники маркетплейсов с покрытием и флагами возможностей. Идентификаторы источников используются в параметре |
| Одна страница нормализованных объявлений по каждому источнику, объединённая и помеченная источником. Фильтры: категория, марка/модели, диапазоны цены/года/пробега/мощности, топливо, кузов, коробка передач, регион/город, флаги состояния. Объявления включают |
| Полные детали одного объявления по составному идентификатору ( |
| Таксономия по источникам: марки, модели марки, регионы, принимаемые значения фильтров, разрешение названий городов. |
| Живой снимок рынка: мин/25-й процентиль/медиана/среднее/75-й процентиль/макс + разбивка по годам, по каждому источнику и в совокупности, на основе выборки до |
| Отвечает на основе собственных записанных наблюдений хаба: временная линия цены одного объявления (обнаружение переоценки) или помесячный тренд для сегмента (марка/модель/год). Покрытие растёт с использованием. |
| Персональные сохранённые поиски по одному или нескольким источникам. |
Навык агента
В репозитории поставляется навык агента в .cursor/skills/car-market-hub/SKILL.md, который обучает LLM-агентов эффективно использовать этот сервер (рабочие процессы инструментов, подводные камни), с руководствами по подключению для OpenAI, Claude, LibreChat и Cursor в clients.md. Cursor подхватывает его автоматически; для других платформ скопируйте каталог навыка в соответствующее место для навыков этой платформы (например, .claude/skills/) или вставьте его содержимое в инструкции агента.
Рабочий процесс отслеживания
create_watchс именем и фильтрами (опционально ограниченными конкретнымиsources) — текущие совпадения становятся базовой линией.Позже (например, запланированный запрос: «проверь мои отслеживания автомобилей»)
check_watchesвозвращает только объявления, появившиеся с тех пор, по каждому отслеживанию и источнику.
Добавление нового адаптера маркетплейса
Создайте
src/adapters/<name>/и реализуйте интерфейсSourceAdapterиз src/adapters/types.ts: выберите короткий стабильныйid(используется в составных идентификаторах объявлений), переведите канонические фильтрыSearchQueryв запрос вашего провайдера и отобразите необработанные результаты в канонические формыListingSummary/ListingDetailиз src/domain/listing.ts.Зарегистрируйте его в src/server.ts с помощью
registerAdapter(...).
Распределение поиска, отслеживания, запись и история цен автоматически подхватывают новый источник.
Переменные окружения
Переменная | По умолчанию | Значение |
|
| Порт прослушивания HTTP. |
|
| Публичный базовый URL; издатель OAuth и хост для Google callback. |
|
| Строка подключения к Postgres. |
|
|
|
| — | Учётные данные Google OAuth (обязательны в режиме |
| — | Опциональный экземпляр FlareSolverr для запасного решения при Cloudflare-вызовах. |
|
| TTL кэша ответов вышестоящих сервисов. |
|
| Максимальное количество одновременных запросов к вышестоящим сервисам на адаптер. |
|
| Таймаут запроса к вышестоящим сервисам. |
Локальная разработка
npm install
docker compose up -d postgres # or point DATABASE_URL at your own Postgres
AUTH_MODE=none npm run dev # server on http://localhost:8080/mcpИзменения схемы: отредактируйте src/db/schema.ts, затем выполните npm run db:generate, чтобы создать новую миграцию в drizzle/ (применяется автоматически при запуске).
Примечания и ограничения
polovniautomobili.com не имеет публичного API; адаптер читает данные Next.js-эндпоинтов сайта, используя имитацию TLS Chrome (impit), с FlareSolverr как запасным решением для Cloudflare-вызовов. Используйте ответственно и соблюдайте условия обслуживания сайта.
Цены ниже 100 EUR считаются «ценой по запросу» и исключаются из статистики и наблюдений.
Проверки отслеживаний сканируют первые две страницы результатов (~50 самых новых объявлений) по каждому источнику.
get_price_historyотражает только объявления, наблюдаемые через этот хаб — это растущая выборка, а не полный рынок.Предыдущая реализация с одним провайдером сохранена для справки в
old/(не входит в сборку).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceAggregates and searches used car listings from multiple sources (Cars.com, Autotrader, KBB) with price, mileage, dealer info, and optional CarFax-style filters (1-owner, no accidents, personal use).13MIT
- AlicenseCqualityDmaintenanceEnables access to comprehensive vehicle information including VIN decoding, license plate OCR, vehicle history checks (theft, title, salvage records), market valuations, specifications, and warranty data for vehicles across North America and Europe.6611MIT

Vincario MCP Serverofficial
FlicenseNot gradedqualityDmaintenanceEnables AI assistants to decode VINs, check stolen vehicle databases, and retrieve market valuations through natural language.1- AlicenseAqualityBmaintenanceEnables turning photos and observed facts into a ready-to-publish Leboncoin ad, with comparable search, asking-price statistics, category lookup, local drafts, and browser form automation that stops one click short of publishing until approved.23MIT
Related MCP Connectors
Vehicle data for AI: VIN decoder, automotive specs, stolen checks, valuation and way more.
VIN decoding and European vehicle data for automotive workflows.
SERPRO RADAR: Vehicle, official-source lookup. Platform-hosted, pay per query with prepaid credit.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cvele/polovnjak-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server