Polovnjak MCP
Polovnjak MCP
中古車マーケットプレイス向けのマルチプロバイダー MCP サーバーです。エージェントは、検索、掲載詳細、価格統計、価格履歴、ユーザーごとの保存済み検索ウォッチという統一されたツール面を1つ利用でき、プラグイン可能なマーケットプレイスアダプターで支えられています。同梱アダプター: polovniautomobili.com(ソースID pa)と mojauto.rs(ソースID ma)。いずれもセルビアのサイトです。
ユーザーは標準の MCP OAuth 2.1 フローを介して Google でサインインします。ウォッチはユーザーごとにプライベートです。ハブが観測したすべての掲載(任意のユーザーの検索、統計サンプリング、ウォッチチェックのいずれによるものも)は、共有 Postgres の「マーケットメモリ」に記録され、どのマーケットプレイスも単独では提供しない価格履歴とトレンドクエリを支えます。
アーキテクチャ
アダプター(
src/adapters/)は共通のSourceAdapterインターフェース(search、getListing、getMakesModels、および機能フラグ)を実装します。各アダプターは正規のフィルターをプロバイダーのクエリに変換し、結果を正規の掲載モデルにマッピングし直します。掲載にはpa:12345678やma:3554254のような複合IDが付きます。メーカー名はソースごとにエイリアス解決されます("VW" と "Volkswagen" はどこでも両方機能します)。ソースが表現できないフィルターは、結果内のソース別warningsとして報告されます。ツール(
src/tools/)はアダプター全体にファンアウトして結果をマージし、すべてにソースをタグ付けします。カテゴリは、乗用車、オートバイ、バン、軽/大型トラック、バス、トレーラー、キャンピングカー、建設機械、トラクター、ボート、自転車をカバーします。レコーダー(
src/recorder.ts)は観測されたすべての掲載をlistingsにアップサートし、初回発見時または価格変更時にprice_observations行を追加します。認証(
src/auth/)はセルフホスト型 OAuth 2.1 認可サーバー(動的クライアント登録、PKCE、リフレッシュトークン)で、Google OIDC をアイデンティティ層として使用します。トークンは Postgres にハッシュ化されて保存されます。ストレージは Drizzle ORM を介した Postgres です。マイグレーションは起動時に自動的に実行されます。
Related MCP server: Vehicle Database MCP Server
クイックスタート(Docker Compose)
Google Cloud Console で Google OAuth クライアント(タイプ「ウェブアプリケーション」)を作成し、認証済みリダイレクト 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 --buildMCP クライアントを
http://localhost:8321/mcpに向けます。クライアントは OAuth メタデータを発見し、自身を登録し、Google サインイン用のブラウザウィンドウを開きます。以降はすべてユーザーごとです。
Google 認証情報なしでローカルで簡単にテストするには、AUTH_MODE=none を設定します。サーバーは認証をスキップし、単一のローカル開発ユーザーを使用します。
ツール
ツール | 目的 |
| 登録済みマーケットプレイスソースと、カバレッジおよび機能フラグ。ソースIDは他のツールの |
| ソースごとに正規化された掲載の1ページをマージしてソースタグ付けしたもの。フィルター: カテゴリ、メーカー/モデル、価格/年式/走行距離/出力範囲、燃料、ボディ、ギアボックス、地域/都市、状態フラグ。掲載には、ソースが割引を示す場合 |
| 複合ID( |
| ソース別タクソノミー: メーカー、メーカーのモデル、地域、受け入れられるフィルター値、都市名の解決。 |
| ライブ市場スナップショット: 最小/p25/中央値/平均/p75/最大 + 年別内訳。ソース別および統合。ソースごとに最大 |
| ハブ自身の記録された観測から回答: 単一掲載の価格タイムライン(再価格検出)、またはセグメント(メーカー/モデル/年式)の月次トレンド。カバレッジは使用とともに成長します。 |
| 1つ以上のソースにわたるユーザーごとの保存済み検索。 |
エージェントスキル
リポジトリには .cursor/skills/car-market-hub/SKILL.md にエージェントスキルが同梱されており、LLM エージェントにこのサーバーを効果的に使用する方法(ツールワークフロー、落とし穴)を教え、OpenAI、Claude、LibreChat、Cursor 向けのクライアント別接続ガイドが clients.md にあります。Cursor は自動的に取得します。他のプラットフォームでは、スキルディレクトリをそのプラットフォームのスキル場所(例: .claude/skills/)にコピーするか、その内容をエージェントの指示に貼り付けます。
ウォッチワークフロー
名前とフィルター(必要に応じて特定の
sourcesに制限)でcreate_watchを呼び出します。現在の一致がベースラインになります。後で(例: スケジュールされたプロンプト「車のウォッチを確認して」)、
check_watchesは、ウォッチごと、ソースごとに、それ以降に出現した掲載のみを返します。
新しいマーケットプレイスアダプターの追加
src/adapters/<name>/を作成し、src/adapters/types.ts のSourceAdapterインターフェースを実装します: 短く安定したid(複合掲載IDで使用)を選び、正規のSearchQueryフィルターをプロバイダーのクエリに変換し、生の結果を src/domain/listing.ts の正規のListingSummary/ListingDetail形状にマッピングします。src/server.ts で
registerAdapter(...)を使って登録します。
検索ファンアウト、ウォッチ、記録、価格履歴は新しいソースを自動的に拾います。
環境変数
変数 | デフォルト | 意味 |
|
| HTTP リッスンポート。 |
|
| 公開ベース URL。OAuth 発行者および Google コールバックホスト。 |
|
| Postgres 接続文字列。 |
|
|
|
| — | Google OAuth 認証情報( |
| — | Cloudflare チャレンジフォールバック用のオプションの FlareSolverr インスタンス。 |
|
| アップストリーム応答キャッシュ 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 がありません。アダプターは Chrome TLS 偽装(impit)を使用してサイトの Next.js データエンドポイントを読み取り、Cloudflare チャレンジフォールバックとして FlareSolverr を使用します。責任を持って使用し、サイトの利用規約を尊重してください。
100 EUR 未満の価格は「価格問い合わせ」として扱われ、統計と観測から除外されます。
ウォッチチェックはソースごとに最初の2ページ(約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