二手车搜索服务

一个聚合多个来源的二手车列表搜索服务,支持智能过滤和并行抓取,适用于汽车购买者和经销商。

  • by SiddarthaKoppaka
  • JavaScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 SiddarthaKoppaka/car_deals_search_mcp

使用说明

汽车优惠搜索MCP

使用人工智能助手从Cars.com、Autotrader和KBB搜索二手车列表

一种MCP(模型上下文协议)服务器,用于聚合和搜索来自多个来源的汽车列表。并行删除列表,提取价格、里程、经销商信息,并应用可选的CARFAX式过滤器(1个所有者,无事故,个人使用)。


🚀 快速开始

先决条件

  • Node.js (v16或更高版本)
  • 铬/铬 已安装浏览器(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等)以使用此服务器:

适用于克劳德桌面 (~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

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

✨ 特性

  • 多源聚合:同时搜索Cars.com、Autotrader和KBB
  • 智能过滤:CARFAX式过滤器(1-所有者,无事故,个人使用)
  • 交易评级:基于启发式的交易质量评估
  • 平行刮擦:跨源的快速并发查询
  • 隐身模式:具有反机器人检测技术的木偶

📊 支持的来源

来源 价格 里程数 交易评级 经销商信息 CARFAX筛选器
Cars.com✅ ✅ ✅ ✅ ✅
自动交易 ✅ ✅ ⚠️ 有限 ✅ ⚠️ 有限
KBB ✅ ✅ ✅ ⚠️ 有限 ⚠️ 有限

🔧 MCP工具: search_car_deals

参数

参数 类型 必填 说明
make string ✅ 汽车制造商(例如“丰田”、“本田”)
model string ✅ 车型(如“凯美瑞”、“雅阁”)
zip string ❌ 本地搜索的邮政编码(默认值:“90210”)
yearMin 整数 ❌ 最低车型年份
yearMax 整数 ❌ 最大车型年份
priceMax 整数 ❌ 最高价格(美元)
mileageMax 整数 ❌ 最大行驶里程
maxResults 整数 ❌ 每个源的最大结果数(默认值:10)
sources 数组 ❌ 要查询的来源: ["cars.com","autotrader","kbb"] (默认值:全部)
oneOwner boolean ❌ 仅适用于CARFAX 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),带有隐形插件,可绕过机器人检测
  • 并发:并行scraper workers用于同时进行多源查询
  • 协议:实现用于AI辅助集成的MCP(模型上下文协议)
  • 数据提取:特定于源代码的解析器将列表规范化为通用模式

铬/铬要求

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

  • macOS:Chrome通常在 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
  • Linux:通常由Puppeteer或 /usr/bin/chromium-browser
  • 视窗:通常在 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. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 添加新功能的测试
  4. 提交您的更改(git commit -m 'Add amazing feature')
  5. 推到分支(git push origin feature/amazing-feature)
  6. 打开拉取请求

请包括抓取/解析更改的测试覆盖率,以避免源站点更新时出现退化。


📄 许可证

MIT许可证-请参阅 许可证 详细信息文件


🔗 链接

  • 仓库: https://github.com/SiddarthaKoppaka/car_deals_search_mcp
  • 问题: https://github.com/SiddarthaKoppaka/car_deals_search_mcp/issues
  • MCP协议: https://modelcontextprotocol.io