Skip to main content
Glama

Car Deals Search MCP

Search used car listings from Cars.com, Autotrader, and KBB with AI assistants

An MCP (Model Context Protocol) server that aggregates and searches car listings from multiple sources. Scrapes listings in parallel, extracts price, mileage, dealer info, and applies optional CARFAX-style filters (1-owner, no accidents, personal use).

License: MIT


๐Ÿš€ Quick Start

Prerequisites

  • Node.js (v16 or higher)

  • Chrome/Chromium browser installed (required by Puppeteer)

    • If Chrome is not in the default location, set PUPPETEER_EXECUTABLE_PATH environment variable to point to your Chrome/Chromium binary

Installation

# 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

Using with MCP Clients

Configure your MCP client (Claude Desktop, VS Code, GitHub Copilot, etc.) to use this server:

For Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

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

For other MCP clients, refer to their documentation and use:

  • Command: node

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

Testing Standalone

# 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()))); "

โœจ Features

  • Multi-source aggregation: Search Cars.com, Autotrader, and KBB simultaneously

  • Smart filtering: CARFAX-style filters (1-Owner, No Accidents, Personal Use)

  • Deal ratings: Heuristic-based deal quality assessment

  • Parallel scraping: Fast concurrent queries across sources

  • Stealth mode: Puppeteer with anti-bot detection techniques


๐Ÿ“Š Supported Sources

Source

Price

Mileage

Deal Rating

Dealer Info

CARFAX Filters

Cars.com

โœ…

โœ…

โœ…

โœ…

โœ…

Autotrader

โœ…

โœ…

โš ๏ธ Limited

โœ…

โš ๏ธ Limited

KBB

โœ…

โœ…

โœ…

โš ๏ธ Limited

โš ๏ธ Limited


๐Ÿ”ง MCP Tool: search_car_deals

Parameters

Parameter

Type

Required

Description

make

string

โœ…

Car manufacturer (e.g., "Toyota", "Honda")

model

string

โœ…

Car model (e.g., "Camry", "Accord")

zip

string

โŒ

ZIP code for local search (default: "90210")

yearMin

integer

โŒ

Minimum model year

yearMax

integer

โŒ

Maximum model year

priceMax

integer

โŒ

Maximum price in USD

mileageMax

integer

โŒ

Maximum mileage

maxResults

integer

โŒ

Max results per source (default: 10)

sources

array

โŒ

Sources to query: ["cars.com","autotrader","kbb"] (default: all)

oneOwner

boolean

โŒ

Filter for CARFAX 1-owner vehicles only

noAccidents

boolean

โŒ

Filter for no accidents reported

personalUse

boolean

โŒ

Filter for personal use only (not rental/fleet)

Example Response

๐Ÿš— 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/...

๐Ÿ› ๏ธ Technical Details

  • Scraping: Puppeteer (headless Chromium) with stealth plugin to bypass bot detection

  • Concurrency: Parallel scraper workers for simultaneous multi-source queries

  • Protocol: Implements MCP (Model Context Protocol) for AI assistant integration

  • Data extraction: Source-specific parsers normalize listings into a common schema

Chrome/Chromium Requirement

This project uses Puppeteer, which requires Chrome or Chromium to be installed:

  • macOS: Chrome is typically at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

  • Linux: Usually auto-detected by Puppeteer or at /usr/bin/chromium-browser

  • Windows: Typically at C:\Program Files\Google\Chrome\Application\chrome.exe

If Puppeteer cannot find your browser, set the environment variable:

export PUPPETEER_EXECUTABLE_PATH="/path/to/chrome"

๐Ÿงช Development & Testing

# Run tests npm test # Test individual scrapers node src/scraper.js # View code structure ls -la src/

๐Ÿค Contributing

Contributions are welcome! Please follow this workflow:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Add tests for new functionality

  4. Commit your changes (git commit -m 'Add amazing feature')

  5. Push to the branch (git push origin feature/amazing-feature)

  6. Open a Pull Request

Please include test coverage for scraping/parsing changes to avoid regressions when source sites update.


๐Ÿ“„ License

MIT License - see LICENSE file for details


A
security โ€“ no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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/SiddarthaKoppaka/car_deals_search_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server