Skip to main content
Glama
cvele

Polovnjak MCP

by cvele

Polovnjak MCP

中古車マーケットプレイス向けのマルチプロバイダー MCP サーバーです。エージェントは、検索、掲載詳細、価格統計、価格履歴、ユーザーごとの保存済み検索ウォッチという統一されたツール面を1つ利用でき、プラグイン可能なマーケットプレイスアダプターで支えられています。同梱アダプター: polovniautomobili.com(ソースID pa)と mojauto.rs(ソースID ma)。いずれもセルビアのサイトです。

ユーザーは標準の MCP OAuth 2.1 フローを介して Google でサインインします。ウォッチはユーザーごとにプライベートです。ハブが観測したすべての掲載(任意のユーザーの検索、統計サンプリング、ウォッチチェックのいずれによるものも)は、共有 Postgres の「マーケットメモリ」に記録され、どのマーケットプレイスも単独では提供しない価格履歴とトレンドクエリを支えます。

アーキテクチャ

  • アダプターsrc/adapters/)は共通の SourceAdapter インターフェース(searchgetListinggetMakesModels、および機能フラグ)を実装します。各アダプターは正規のフィルターをプロバイダーのクエリに変換し、結果を正規の掲載モデルにマッピングし直します。掲載には pa:12345678ma: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)

  1. Google Cloud Console で Google OAuth クライアント(タイプ「ウェブアプリケーション」)を作成し、認証済みリダイレクト URI を <PUBLIC_URL>/auth/google/callback(ローカル使用の場合は例: http://localhost:8321/auth/google/callback)に設定します。

  2. 環境を設定します:

cp .env.example .env
# set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET (and PUBLIC_URL for non-local deployments)
  1. すべてを起動します(MCP サーバー + Postgres + FlareSolverr):

docker compose up -d --build
  1. MCP クライアントを http://localhost:8321/mcp に向けます。クライアントは OAuth メタデータを発見し、自身を登録し、Google サインイン用のブラウザウィンドウを開きます。以降はすべてユーザーごとです。

Google 認証情報なしでローカルで簡単にテストするには、AUTH_MODE=none を設定します。サーバーは認証をスキップし、単一のローカル開発ユーザーを使用します。

ツール

ツール

目的

list_sources

登録済みマーケットプレイスソースと、カバレッジおよび機能フラグ。ソースIDは他のツールの sources パラメータと複合掲載IDで使用されます。

search_listings

ソースごとに正規化された掲載の1ページをマージしてソースタグ付けしたもの。フィルター: カテゴリ、メーカー/モデル、価格/年式/走行距離/出力範囲、燃料、ボディ、ギアボックス、地域/都市、状態フラグ。掲載には、ソースが割引を示す場合 previousPrice が含まれます。ソース別 warnings は、ソースがネイティブに適用できなかったフィルターを説明します。

get_listing

複合ID(pa:12345678ma:3554254)、URL、またはベアIDによる1件の掲載の完全な詳細: 仕様、装備、説明、写真、販売者連絡先。

get_makes_and_models

ソース別タクソノミー: メーカー、メーカーのモデル、地域、受け入れられるフィルター値、都市名の解決。

get_price_stats

ライブ市場スナップショット: 最小/p25/中央値/平均/p75/最大 + 年別内訳。ソース別および統合。ソースごとに最大 maxPages の結果ページからサンプリング。

get_price_history

ハブ自身の記録された観測から回答: 単一掲載の価格タイムライン(再価格検出)、またはセグメント(メーカー/モデル/年式)の月次トレンド。カバレッジは使用とともに成長します。

create_watch / list_watches / delete_watch / check_watches

1つ以上のソースにわたるユーザーごとの保存済み検索。check_watches は前回のチェック以降に出現した掲載のみを返します。定期的な毎日のプロンプトに最適です。

エージェントスキル

リポジトリには .cursor/skills/car-market-hub/SKILL.md にエージェントスキルが同梱されており、LLM エージェントにこのサーバーを効果的に使用する方法(ツールワークフロー、落とし穴)を教え、OpenAI、Claude、LibreChat、Cursor 向けのクライアント別接続ガイドが clients.md にあります。Cursor は自動的に取得します。他のプラットフォームでは、スキルディレクトリをそのプラットフォームのスキル場所(例: .claude/skills/)にコピーするか、その内容をエージェントの指示に貼り付けます。

ウォッチワークフロー

  1. 名前とフィルター(必要に応じて特定の sources に制限)で create_watch を呼び出します。現在の一致がベースラインになります。

  2. 後で(例: スケジュールされたプロンプト「車のウォッチを確認して」)、check_watches は、ウォッチごと、ソースごとに、それ以降に出現した掲載のみを返します。

新しいマーケットプレイスアダプターの追加

  1. src/adapters/<name>/ を作成し、src/adapters/types.tsSourceAdapter インターフェースを実装します: 短く安定した id(複合掲載IDで使用)を選び、正規の SearchQuery フィルターをプロバイダーのクエリに変換し、生の結果を src/domain/listing.ts の正規の ListingSummary / ListingDetail 形状にマッピングします。

  2. src/server.tsregisterAdapter(...) を使って登録します。

検索ファンアウト、ウォッチ、記録、価格履歴は新しいソースを自動的に拾います。

環境変数

変数

デフォルト

意味

PORT

8080

HTTP リッスンポート。

PUBLIC_URL

http://localhost:<PORT>

公開ベース URL。OAuth 発行者および Google コールバックホスト。

DATABASE_URL

postgres://carhub:carhub@localhost:5432/carhub

Postgres 接続文字列。

AUTH_MODE

oauth

oauth(Google バックの OAuth 2.1)または none(単一のローカル開発ユーザー、認証なし)。

GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET

Google OAuth 認証情報(oauth モードで必須)。

FLARESOLVERR_URL

Cloudflare チャレンジフォールバック用のオプションの FlareSolverr インスタンス。

CACHE_TTL_MS

600000

アップストリーム応答キャッシュ TTL。

FETCH_CONCURRENCY

5

アダプターごとの最大同時アップストリームリクエスト数。

REQUEST_TIMEOUT_MS

25000

アップストリームリクエストタイムアウト。

ローカル開発

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/ に保持されています(ビルドには含まれません)。

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    C
    quality
    D
    maintenance
    Enables 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.
    6
    61
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to decode VINs, check stolen vehicle databases, and retrieve market valuations through natural language.
    1
  • A
    license
    A
    quality
    B
    maintenance
    Enables 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.
    23
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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