Skip to main content
Glama
cvele

Polovnjak MCP

by cvele

Polovnjak MCP

중고차 마켓플레이스를 위한 다중 공급자 MCP 서버입니다. 에이전트는 검색, 리스팅 상세, 가격 통계, 가격 이력, 사용자별 저장 검색 알림 등 하나의 통합된 도구 표면을 얻을 수 있으며, 플러그 가능한 마켓플레이스 어댑터로 구동됩니다. 포함된 어댑터: 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/)은 Google OIDC를 ID 계층으로 사용하는 자체 호스팅 OAuth 2.1 인증 서버(동적 클라이언트 등록, PKCE, 리프레시 토큰)입니다. 토큰은 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으로 설정하세요. 그러면 서버가 인증을 건너뛰고 단일 로컬 개발 사용자를 사용합니다.

도구

Tool

Purpose

list_sources

등록된 마켓플레이스 소스와 적용 범위 및 기능 플래그. 소스 id는 다른 도구의 sources 매개변수와 복합 리스팅 id에 사용됩니다.

search_listings

소스별로 정규화된 리스팅 한 페이지를 병합하고 소스 태그를 붙입니다. 필터: 카테고리, 제조사/모델, 가격/연식/주행거리/출력 범위, 연료, 차체, 변속기, 지역/도시, 상태 플래그. 리스팅에는 소스가 할인을 표시할 때 previousPrice가 포함됩니다. 소스별 warnings는 소스가 기본적으로 적용할 수 없는 필터를 설명합니다.

get_listing

복합 id(pa:12345678, ma:3554254), URL 또는 단일 id로 하나의 리스팅에 대한 전체 상세 정보: 사양, 장비, 설명, 사진, 판매자 연락처.

get_makes_and_models

소스별 분류: 제조사, 제조사의 모델, 지역, 허용 필터 값, 도시 이름 해석.

get_price_stats

실시간 시장 스냅샷: 최소/p25/중앙값/평균/p75/최대 + 소스별 및 결합된 연도별 분석, 소스당 최대 maxPages 결과 페이지에서 샘플링.

get_price_history

허브 자체의 기록된 관찰에서 응답: 단일 리스팅의 가격 타임라인(재가격 감지) 또는 세그먼트(제조사/모델/연식)에 대한 월별 추세. 적용 범위는 사용량에 따라 증가합니다.

create_watch / list_watches / delete_watch / check_watches

하나 이상의 소스에 대한 사용자별 저장 검색. check_watches는 마지막 확인 이후 나타난 리스팅만 반환합니다. 예약된 일일 프롬프트에 이상적입니다.

에이전트 스킬

이 저장소는 .cursor/skills/car-market-hub/SKILL.md에 에이전트 스킬을 제공하며, LLM 에이전트가 이 서버를 효과적으로 사용하는 방법(도구 워크플로, 함정)을 가르치고, clients.md에 OpenAI, Claude, LibreChat 및 Cursor용 클라이언트별 연결 가이드가 있습니다. Cursor는 자동으로 이를 인식합니다. 다른 플랫폼의 경우 스킬 디렉터리를 해당 플랫폼의 스킬 위치(예: .claude/skills/)에 복사하거나 내용을 에이전트 지침에 붙여넣으세요.

알림 워크플로

  1. 이름과 필터로 create_watch를 호출합니다(선택적으로 특정 sources로 제한). 현재 일치 항목이 기준선이 됩니다.

  2. 나중에(예: 예약된 프롬프트 "내 자동차 알림 확인") check_watches는 알림별 및 소스별로 그 이후에 나타난 리스팅만 반환합니다.

새 마켓플레이스 어댑터 추가

  1. src/adapters/<name>/을 만들고 src/adapters/types.tsSourceAdapter 인터페이스를 구현합니다: 짧고 안정적인 id를 선택하고(복합 리스팅 id에 사용), 표준 SearchQuery 필터를 공급자의 쿼리로 변환하며, 원시 결과를 src/domain/listing.ts의 표준 ListingSummary / ListingDetail 형태로 매핑합니다.

  2. src/server.ts에서 registerAdapter(...)로 등록합니다.

검색 팬아웃, 알림, 기록 및 가격 이력은 새 소스를 자동으로 인식합니다.

환경 변수

Variable

Default

Meaning

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 데이터 엔드포인트를 읽고, FlareSolverr을 Cloudflare 챌린지 폴백으로 사용합니다. 책임감 있게 사용하고 사이트의 서비스 약관을 준수하세요.

  • 100 EUR 미만의 가격은 "가격 문의"로 처리되며 통계 및 관찰에서 제외됩니다.

  • 알림 확인은 소스당 처음 두 결과 페이지(약 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