Skip to main content
Glama
Car Deals Search MCP

Car Deals Search MCP

by black-table

Car Deals Search MCP

使用 AI 助手搜索来自 Cars.com、Autotrader 和 KBB 的二手车列表

一个 MCP(Model Context Protocol)服务器,用于聚合和搜索来自多个来源的二手车列表。它会并行抓取列表,提取价格、里程、经销商信息,并应用可选的 CARFAX 风格筛选(1 车主、无事故、个人使用)。

License: MIT


🚀 快速开始

前置条件

  • Node.js(v16 或更高版本)

  • Chrome/Chromium 浏览器(Puppeteer 必需)

    • 如果 Chrome 不在默认位置,请设置 PUPPETEER_EXECUTABLE_PATH 环境变量,指向你的 Chrome/Chromium 浏览器可执行文件

安装

# 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

与 MCP 客户端配合使用

配置你的 MCP 客户端(Claude Desktop、VS Code、GitHub Copilot 等)来使用此服务器:

针对 Claude Desktop(macOS 上位于 ~/Library/Application Support/Claude/claude_desktop_config.json):

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

对于其他 MCP 客户端,请参阅其文档并使用:

  • 命令:node

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

独立测试

# 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: LinkedIn Job Scraper MCP Server

✨ 功能特性

  • 多源聚合:同时搜索 Cars.com、Autotrader 和 KBB

  • 智能筛选:CARFAX 风格筛选(1 车主、无事故、个人使用)

  • 成交评级:基于启发式算法的成交质量综合评估

  • 并行抓取:跨来源快速并发查询

  • 隐身模式:Puppeteer 配合反爬虫检测技术


📊 支持的来源

来源

价格

里程

成交评级

经销商信息

CARFAX 筛选

Cars.com

✅

✅

✅

✅

✅

Autotrader

✅

✅

⚠️ 受限

✅

⚠️ 受限

KBB

✅

✅

✅

⚠️ 受限

⚠️ 受限


🔧 MCP 工具:search_car_deals

参数

参数

类型

必需

说明

make

string

✅

汽车制造商(例如:"Toyota"、"Honda")

model

string

✅

汽车型号(例如:"Camry"、"Accord")

zip

string

❌

用于本地搜索的邮政编码(默认:"90210")

yearMin

integer

❌

最低车型年份

yearMax

integer

❌

最高车型年份

priceMax

integer

❌

最高价格(美元)

mileageMax

integer

❌

最大里程

maxResults

integer

❌

每个来源的最大结果数(默认:10)

sources

array

❌

要查询的来源列表:["cars.com","autotrader","kbb"](默认:全部)

oneOwner

boolean

❌

仅筛选仅限 1 位车主的车辆

noAccidents

boolean

❌

仅筛选无事故报告的车辆

personalUse

boolean

❌

仅筛选个人使用(非租赁/车队)的车辆

示例响应

🚗 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/...

🛠️ 技术细节

  • 抓取:Puppeteer(无头 Chromium)搭配 stealth 插件,绕过反爬虫检测

  • 并发:并行抓取工作线程,支持多源同时查询

  • 协议:实现 MCP(Model Context Protocol),用于 AI 助手集成

  • 数据提取:各来源专属解析器将列表数据标准化为统一模式

Chrome/Chromium 要求

本项目使用 Puppeteer,因此需要安装 Chrome 或 Chromium:

  • macOS:Chrome 通常位于 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

  • Linux:通常由 Puppeteer 自动检测到,或位于 /usr/bin/chromium-browser

  • Windows:通常位于 C:\Program Files\Google\Chrome\Application\chrome.exe

如果 Puppeteer 找不到你的浏览器,请设置环境变量:

export PUPPETEER_EXECUTABLE_PATH="/path/to/chrome"

🧪 开发与测试

# Run tests
npm test

# Test individual scrapers
node src/scraper.js

# View code structure
ls -la src/

🤝 贡献指南

欢迎任何形式的贡献!请遵循以下工作流程:

  1. Fork 该仓库

  2. 创建功能分支(git checkout -b feature/amazing-feature)

  3. 为新功能添加测试

  4. 提交你的改动(git commit -m 'Add amazing feature')

  5. 推送该分支(git push origin feature/amazing-feature)

  6. 提交 Pull Request

若修改涉及抓取/解析逻辑,请务必包含测试,避免部分望站升级时出现回归。


📄 许可证

MIT 许可证 – 详情请参见 LICENSE 文件


🔗 链接

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 recent community issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to pull live job listings from major ATS platforms (Greenhouse, Lever, Ashby, Workable), Hacker News hiring threads, and detect hiring signals on company career pages.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search, filter, and extract job listings from LinkedIn using an automated headless browser with semantic AI filtering and deduplication.
    17 npm
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI assistants to search and filter job listings across multiple platforms like Indeed, LinkedIn, and Glassdoor, returning structured results for easy processing.
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to search job listings and retrieve or update a user's career profile, including work experiences, job summaries, career goals, and technical skills through natural language.
    -