Skip to main content
Glama
black-table

Car Deals Search MCP

by black-table

Car Deals Search MCP

Busca anuncios de coches usados en Cars.com, Autotrader y KBB con asistentes de IA

Un servidor MCP (Model Context Protocol) que agrega y busca anuncios de coches de múltiples fuentes. Procesa los anuncios en paralelo, extrae el precio, el kilometraje, la información del concesionario y aplica filtros opcionales estilo CARFAX (un solo propietario, sin accidentes, uso personal).

License: MIT


🚀 Inicio rápido

Requisitos previos

  • Node.js (v16 o superior)

  • Chrome/Chromium instalado (necesario para Puppeteer)

    • Si Chrome no está en la ubicación predeterminada, configura la variable de entorno PUPPETEER_EXECUTABLE_PATH para que apunte a tu binario de Chrome/Chromium.

Instalación

# Clone the repository
git clone https://github.com/SiddarthaKoppaka/car_deals_search_mcp.git
cd car_deals_search_mcp

# Install dependencies (includes Puppeteer)
npm install

Uso con clientes MCP

Configura tu cliente MCP (Claude Desktop, VS Code, GitHub Copilot, etc.) para que utilice este servidor:

Para Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json en macOS):

{
  "mcpServers": {
    "car-deals": {
      "command": "node",
      "args": ["/absolute/path/to/car_deals_search_mcp/src/server.js"]
    }
  }
}

Para otros clientes MCP, consulta su documentación y utiliza:

  • Comando: node

  • Argumentos: ["<absolute-path-to-repo>/src/server.js"]

Probar el servidor de forma independiente

# Run the test command
npm test

# Or test manually with a specific search
node -e "
const { scrapeCarscom } = require('./src/scraper.js');
scrapeCarscom({
  make: 'Toyota',
  model: 'Camry',
  oneOwner: true,
  noAccidents: true,
  personalUse: true
}, 5).then(listings => listings.forEach(l => console.log(l.format())));
"

Related MCP server: MarketCheck MCP Apps

✨ Características

  • Agregación de múltiples fuentes: busca en Cars.com, Autotrader y KBB simultáneamente

  • Filtrado inteligente: filtros estilo CARFAX (un solo propietario, sin accidentes, uso personal)

  • Valoración de ofertas: evaluación de la calidad de la oferta basada en heurísticas

  • Scraping en paralelo: consultas concurrentes rápidas entre varias fuentes

  • Modo sigiloso: Puppeteer con técnicas anti-detección de bots


📊 Fuentes compatibles

Fuente

Precio

Kilometraje

Valoración de la oferta

Información del concesionario

Filtros CARFAX

Cars.com

✅

✅

✅

✅

✅

Autotrader

✅

✅

⚠️ Limitado

✅

⚠️ Limitado

KBB

✅

✅

✅

⚠️ Limitado

⚠️ Limitado


🔧 Herramienta MCP: search_car_deals

Parámetros

Parámetro

Tipo

Requerido

Descripción

make

string

✅

Fabricante de coches (p.ej., "Toyota", "Honda")

model

string

✅

Modelo de coche (p.ej., "Camry", "Accord")

zip

string

❌

Código postal para la búsqueda local (por defecto: "90210")

yearMin

integer

❌

Año mínimo del modelo

yearMax

integer

❌

Año máximo del modelo

priceMax

integer

❌

Precio máximo en USD

mileageMax

integer

❌

Kilometraje máximo

maxResults

integer

❌

Límite de resultados por fuente (por defecto: 10)

sources

array

❌

Fuentes a consultar: ["cars.com","autotrader","kbb"] (por defecto: todas)

oneOwner

boolean

❌

Filtra solo vehículos con un solo propietario (CARFAX)

noAccidents

boolean

❌

Filtra vehículos sin accidentes registrados

personalUse

boolean

❌

Filtra solo uso personal (no alquiler ni flota)

Respuesta de ejemplo

🚗 2021 Toyota Camry XSE
   💰 Price: $23,491
   📏 Mileage: 52,649 mi
   ⭐ Deal Rating: Good Deal
   🏆 CARFAX: 1-Owner | No Accidents | Personal Use
   🏪 Dealer: Valencia BMW
   🌐 Source: Cars.com
   🔗 https://www.cars.com/vehicledetail/...

🛠️ Detalles técnicos

  • Scraping: Puppeteer (Chromium en modo headless) con plugin de sigilo para evitar la detección de bots

  • Concurrencia: workers de scraping en paralelo para consultas simultáneas de múltiples fuentes

  • Protocolo: implementa MCP (Model Context Protocol) para la integración con asistentes de IA

  • Extracción de datos: analizadores específicos de cada fuente normalizan los anuncios en un esquema común

Requisito de Chrome/Chromium

Este proyecto utiliza Puppeteer y requiere Chrome o Chromium instalados:

  • macOS: Chrome suele encontrarse en /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

  • Linux: Puppeteer normalmente lo detecta automáticamente o se encuentra en /usr/bin/chromium-browser

  • Windows: normalmente en C:\Program Files\Google\Chrome\Application\chrome.exe

Si Puppeteer no encuentra tu navegador, configura la variable de entorno:

export PUPPETEER_EXECUTABLE_PATH="/path/to/chrome"

🧪 Desarrollo y pruebas

# Run tests
npm test

# Test individual scrapers
node src/scraper.js

# View code structure
ls -la src/

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Sigue este flujo de trabajo:

  1. Haz un fork del repositorio

  2. Crea una rama de funcionalidad (git checkout -b feature/amazing-feature)

  3. Añade pruebas para la nueva funcionalidad

  4. Haz commit de tus cambios (git commit -m 'Add amazing feature')

  5. Sube los cambios a la rama (git push origin feature/amazing-feature)

  6. Abre un Pull Request

Incluye cobertura de pruebas para los cambios de scraping/parse los cambios para evitar regresiones cuando se actualicen los sitios de origen.


📄 Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles.


🔗 Enlaces

Available Tools

1 tool
search_car_dealsA

Search for car deals across multiple sources (Cars.com, Autotrader, KBB). Returns listings with prices, mileage, deal ratings, and links.

NameRequiredDescriptionDefault
zipNoZIP code for location-based search (default: 90210)
makeYesCar manufacturer (e.g., Toyota, Honda, Ford)
modelYesCar model (e.g., Camry, Civic, F-150)
sourcesNoSources to search: "cars.com", "autotrader", "kbb". Default: all
yearMaxNoMaximum model year
yearMinNoMinimum model year
oneOwnerNoFilter for CARFAX 1-Owner vehicles only
priceMaxNoMaximum price in dollars
maxResultsNoMaximum results per source (default: 10)
mileageMaxNoMaximum mileage
noAccidentsNoFilter for vehicles with no accidents or damage reported
personalUseNoFilter for vehicles used for personal use only (not rental/fleet)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool searches across multiple sources and returns listings with specific fields. However, it does not mention any limitations, rate limits, authentication requirements, or what happens if no results are found. It does not contradict anything, but it lacks depth in behavioral disclosure beyond the basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the primary action and result. Every part is informative with no waste. It efficiently communicates the tool's purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 12 parameters and no output schema, the description provides enough context by mentioning the return fields (prices, mileage, deal ratings, links). It does not explain ordering, pagination, or error handling, but the schema covers parameter semantics. Given the tool's complexity, it is reasonably complete, though slightly more detail on result behavior would justify a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage with descriptions for every parameter. The tool description does not add additional parameter-specific semantics beyond what the schema already states, such as the use of 'maxResults' or 'oneOwner'. Per the baseline rule, since schema coverage is high, a score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Search'), a specific resource ('car deals'), and names the sources (Cars.com, Autotrader, KBB) and return types (prices, mileage, deal ratings, links). It is clear and distinct, though there are no sibling tools to differentiate from. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies usage: search for car deals using the provided filters. Since no sibling tools are listed, there is no need to specify alternatives or exclusions. The context is clear, but it does not explicitly state when not to use or what alternatives exist. Given the absence of siblings, this is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observedsearch_car_deals

TDQS

A4.1/5.0

Scored across 1 tool

Disambiguation5/5

With only a single tool, there is no potential for confusion or misselection. The tool's purpose is clear and unambiguous within the server.

Naming Consistency5/5

The single tool name 'search_car_deals' follows a consistent verb_noun convention, making it predictable and readable. No other tools exist to create inconsistency.

Tool Count3/5

The server has only one tool, which is borderline thin. While the narrow scope of 'car deals search' might justify this, users might expect additional related tools (e.g., filtering, saving deals) to make the server feel more complete.

Completeness4/5

The tool covers the primary search functionality across multiple sources, returning comprehensive listing data. Minor gaps exist such as lack of detailed deal views or comparison tools, but the core use case is well-served.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides 25 interactive automotive intelligence tools for real-time market data, including VIN decoding, price predictions, and inventory analytics. It enables AI assistants to perform car searches, trade-in estimations, and market trend analysis using the Model Context Protocol.
    2
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to decode VINs, check stolen vehicle databases, and retrieve market valuations through natural language.
    2
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to search and retrieve used and new car listings from carsales.com.au, with support for various filters and detailed listing information including images. It uses a real browser to bypass bot protection and integrates with MCP-compatible clients like Claude Desktop and Claude Code.
    19
    2
    MIT