Polovnjak MCP
Polovnjak MCP
Ein Multi-Provider-MCP-Server für Gebrauchtfahrzeug-Marktplätze. Agents erhalten eine einheitliche Tool-Oberfläche – Suche, Listungsdetails, Preisstatistiken, Preishistorie und benutzerspezifische Watch-Abos für gespeicherte Suchen – unterstützt durch steckbare Marktplatz-Adapter. Enthaltene Adapter: polovniautomobili.com (Quell-ID pa) und mojauto.rs (Quell-ID ma), beide in Serbien.
Benutzer melden sich über den standardmäßigen MCP-OAuth-2.1-Flow mit Google an; Watches sind pro Benutzer privat. Jede Listung, die der Hub beobachtet (aus Suchen beliebiger Benutzer, Statistik-Stichproben oder Watch-Prüfungen), wird in einem gemeinsamen Postgres-„Marktgedächtnis“ gespeichert, das Preisverläufe und Trendabfragen ermöglicht, die kein einzelner Marktplatz bietet.
Architektur
Adapter (
src/adapters/) implementieren eine gemeinsameSourceAdapter-Schnittstelle:search,getListing,getMakesModelssowie Fähigkeitsflags. Jeder Adapter übersetzt die kanonischen Filter in die Abfrage seines Anbieters und bildet die Ergebnisse wieder auf ein kanonisches Listungsmodell ab. Listungen tragen zusammengesetzte IDs wiepa:12345678oderma:3554254. Markennamen werden pro Quelle über Aliase aufgelöst („VW“ und „Volkswagen“ funktionieren überall); Filter, die eine Quelle nicht ausdrücken kann, werden als quellenspezifischewarningsin den Ergebnissen gemeldet.Tools (
src/tools/) verteilen sich über die Adapter und führen Ergebnisse zusammen, wobei alles mit seiner Quelle gekennzeichnet wird. Die Kategorien umfassen Autos, Motorräder, Transporter, leichte/schwere Lkw, Busse, Anhänger, Wohnmobile, Maschinen, Traktoren, Boote und Fahrräder.Recorder (
src/recorder.ts) fügt jede beobachtete Listung inlistingsein (Upsert) und hängt bei der ersten Sichtung oder Preisänderung eine Zeile inprice_observationsan.Auth (
src/auth/) ist ein selbst gehosteter OAuth-2.1-Autorisierungsserver (dynamische Client-Registrierung, PKCE, Refresh-Tokens) mit Google OIDC als Identitätsebene. Tokens werden gehasht in Postgres gespeichert.Speicherung erfolgt über Postgres mit Drizzle ORM; Migrationen werden beim Start automatisch ausgeführt.
Related MCP server: Vehicle Database MCP Server
Schnellstart (Docker Compose)
Erstellen Sie einen Google-OAuth-Client in der Google Cloud Console (Typ „Webanwendung“) mit autorisierter Weiterleitungs-URI
<PUBLIC_URL>/auth/google/callback(z. B.http://localhost:8321/auth/google/callbackfür die lokale Nutzung).Konfigurieren Sie die Umgebung:
cp .env.example .env
# set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET (and PUBLIC_URL for non-local deployments)Starten Sie alles (MCP-Server + Postgres + FlareSolverr):
docker compose up -d --buildRichten Sie Ihren MCP-Client auf
http://localhost:8321/mcp. Der Client erkennt die OAuth-Metadaten, registriert sich selbst und öffnet ein Browserfenster für die Google-Anmeldung. Alles danach ist benutzerspezifisch.
Für einen schnellen lokalen Test ohne Google-Anmeldedaten setzen Sie AUTH_MODE=none – der Server überspringt dann die Authentifizierung und verwendet einen einzelnen lokalen Entwicklungsbenutzer.
Tools
Tool | Zweck |
| Registrierte Marktplatz-Quellen mit Abdeckung und Fähigkeitsflags. Quell-IDs werden im |
| Eine Seite normalisierter Listungen pro Quelle, zusammengeführt und quellenmarkiert. Filter: Kategorie, Marke/Modelle, Preis-/Jahr-/Kilometer-/Leistungsbereiche, Kraftstoff, Karosserie, Getriebe, Region/Stadt, Zustandsflags. Listungen enthalten |
| Vollständige Details zu einer Listung anhand der zusammengesetzten ID ( |
| Pro-Quellen-Taxonomie: Marken, Modelle einer Marke, Regionen, akzeptierte Filterwerte, Auflösung von Städtenamen. |
| Live-Markt-Schnappschuss: min/p25/Median/avg/p75/max + Aufschlüsselung nach Jahr, pro Quelle und kombiniert, abgetastet aus bis zu |
| Beantwortet aus den eigenen aufgezeichneten Beobachtungen des Hubs: die Preiszeitleiste einer einzelnen Listung (Preisänderungserkennung) oder ein Monats-für-Monats-Trend für ein Segment (Marke/Modell/Jahr). Die Abdeckung wächst mit der Nutzung. |
| Benutzerspezifische gespeicherte Suchen über eine oder mehrere Quellen. |
Agent-Fähigkeit
Das Repository enthält eine Agent-Fähigkeit unter .cursor/skills/car-market-hub/SKILL.md, die LLM-Agents den effektiven Umgang mit diesem Server beibringt (Tool-Workflows, Stolperfallen), mit client-spezifischen Verbindungsanleitungen für OpenAI, Claude, LibreChat und Cursor in clients.md. Cursor erkennt sie automatisch; für andere Plattformen kopieren Sie das Fähigkeitsverzeichnis in den Fähigkeitsort der jeweiligen Plattform (z. B. .claude/skills/) oder fügen Sie dessen Inhalt in die Anweisungen des Agents ein.
Watch-Workflow
create_watchmit einem Namen und Filtern (optional auf bestimmtesourcesbeschränkt) – aktuelle Treffer werden zur Basislinie.Später (z. B. ein geplanter Prompt: „check my car watches“) gibt
check_watchesnur die seitdem erschienenen Listungen zurück, pro Watch und pro Quelle.
Hinzufügen eines neuen Marktplatz-Adapters
Erstellen Sie
src/adapters/<name>/und implementieren Sie dieSourceAdapter-Schnittstelle aus src/adapters/types.ts: Wählen Sie eine kurze stabileid(verwendet in zusammengesetzten Listungs-IDs), übersetzen Sie kanonischeSearchQuery-Filter in die Abfrage Ihres Anbieters und bilden Sie rohe Ergebnisse auf die kanonischenListingSummary- /ListingDetail-Formen aus src/domain/listing.ts ab.Registrieren Sie es in src/server.ts mit
registerAdapter(...).
Suchverteilung, Watches, Aufzeichnung und Preisverlauf übernehmen die neue Quelle automatisch.
Umgebungsvariablen
Variable | Standard | Bedeutung |
|
| HTTP-Listener-Port. |
|
| Öffentliche Basis-URL; OAuth-Aussteller und Google-Callback-Host. |
|
| Postgres-Verbindungszeichenfolge. |
|
|
|
| — | Google-OAuth-Anmeldedaten (erforderlich im |
| — | Optionale FlareSolverr-Instanz für Cloudflare-Challenge-Fallback. |
|
| TTL des Upstream-Antwortcaches. |
|
| Maximale gleichzeitige Upstream-Anfragen pro Adapter. |
|
| Upstream-Anfrage-Timeout. |
Lokale Entwicklung
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/mcpSchemaänderungen: Bearbeiten Sie src/db/schema.ts und führen Sie dann npm run db:generate aus, um eine neue Migration unter drizzle/ zu erzeugen (wird beim Start automatisch angewendet).
Hinweise und Grenzen
polovniautomobili.com hat keine öffentliche API; der Adapter liest die Next.js-Datenschnittstellen der Website mithilfe von Chrome-TLS-Imitation (impit), mit FlareSolverr als Cloudflare-Challenge-Fallback. Nutzen Sie es verantwortungsbewusst und respektieren Sie die Nutzungsbedingungen der Website.
Preise unter 100 EUR werden als „Preis auf Anfrage“ behandelt und von Statistiken und Beobachtungen ausgeschlossen.
Watch-Prüfungen durchsuchen die ersten beiden Ergebniseiten (~50 neueste Listungen) pro Quelle.
get_price_historyspiegelt nur Listungen wider, die über diesen Hub beobachtet wurden – es ist eine wachsende Stichprobe, nicht der gesamte Markt.Die vorherige Single-Provider-Implementierung ist zur Referenz in
old/aufbewahrt (nicht Teil des Builds).
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