Content
# Amazon Scraper MCP Server
A Model Context Protocol server that scrapes Amazon product data across 20 global domains. Built for humans who have too many monitors in their cart and too little time to read specs. I make this simply because I was too lazy to compare 18 product of monitors that I want, so I use the MCP and ask LLM to do the job for me.
---
## Available Tools
### `scrape_amazon_product`
Scrapes detailed product information from any Amazon product URL.
| Parameter | Type | Required | Description |
| --------- | ------ | -------- | ---------------------------------------------------------------------- |
| `url` | string | Yes | Full Amazon product URL (e.g., `https://www.amazon.com/dp/B0XXXXXXXX`) |
**Returns:** Title, price, brand, rating, reviews, availability, Prime status, features, specifications, images, and more.
---
### `scrape_amazon_batch`
Scrapes multiple Amazon products at once. Perfect for when you have 20 monitors in your cart and zero patience.
| Parameter | Type | Required | Description |
| --------- | -------- | -------- | ---------------------------- |
| `urls` | string[] | Yes | Array of Amazon product URLs |
**Returns:** Array of detailed product data with automatic delays to avoid rate limiting.
---
### `search_amazon`
Search for products on Amazon. Find even MORE monitors to add to your cart.
| Parameter | Type | Required | Default | Description |
| ------------ | ------ | -------- | ------------ | --------------------------------------------- |
| `query` | string | Yes | - | Search query (e.g., "gaming monitor 27 inch") |
| `domain` | string | No | `amazon.com` | Amazon domain to search |
| `maxResults` | number | No | `10` | Maximum results (max: 20) |
**Supported Domains:**
`amazon.com`, `amazon.co.uk`, `amazon.de`, `amazon.fr`, `amazon.co.jp`, `amazon.ca`, `amazon.com.au`, `amazon.es`, `amazon.it`, `amazon.nl`, `amazon.com.br`, `amazon.com.mx`, `amazon.in`, `amazon.sg`, `amazon.ae`, `amazon.sa`, `amazon.se`, `amazon.pl`, `amazon.com.tr`, `amazon.eg`
---
## Installation
### Prerequisites
- Node.js 18+
- Playwright browsers installed
```bash
# Clone the repository
git clone https://github.com/yourusername/amazon-scraper-mcp.git
cd amazon-scraper-mcp
# Install dependencies
npm install
# Install Playwright browsers
npx playwright install chromium
# Build
npm run build
```
---
## Configuration
### Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"amazon-scraper": {
"command": "node",
"args": ["/path/to/amazon-scraper-mcp/dist/index.js"]
}
}
}
```
### VS Code
Add to your `.vscode/mcp.json` or User Settings:
```json
{
"mcp": {
"servers": {
"amazon-scraper": {
"command": "node",
"args": ["/path/to/amazon-scraper-mcp/dist/index.js"]
}
}
}
}
```
---
## Example Usage
**Me at 2 AM:**
> "Hey Claude, I have 20 monitors in my Amazon cart. Here are the URLs. Tell me which one I should buy for coding and occasional gaming. Budget is flexible but my sanity is not."
**Claude, after using this MCP:**
> "Based on the specs, the Dell S2722QC offers the best value for your use case. It has USB-C connectivity for your MacBook, 4K resolution for crisp text, and an IPS panel for accurate colors. The LG is also great but costs 30% more for a 10% improvement in color accuracy you probably won't notice while staring at a terminal at 3 AM."
**Me:**
> "What about the 49" ultrawide?"
**Claude:**
> "That's a $1,500 monitor. You said budget is flexible, not fictional."
---
## How It Works
1. **Locale Detection** - Automatically detects the Amazon domain from the URL and sets appropriate language headers
2. **Smart Scraping** - Uses Playwright to render pages like a real browser
3. **Multi-Locale Support** - Extracts brand names, dates, and rankings in 10+ languages
4. **Rate Limiting** - Built-in delays for batch scraping to avoid getting blocked
---
## Data Returned
```typescript
{
url: string;
asin: string;
title: string;
price: string;
originalPrice: string;
discount: string;
currency: string; // Detected from price or locale
brand: string; // Cleaned across all locales
seller: string;
category: string;
description: string;
features: string[]; // Bullet points
specs: Record<string, string>; // All product details
images: string[]; // High-res image URLs
rating: string;
ratingValue: number;
reviewCount: string;
availability: string;
isPrime: boolean;
productDimensions: string;
weight: string;
dateFirstAvailable: string;
bestSellerRank: string;
}
```
---
## Limitations
- **CAPTCHA** - If Amazon shows a CAPTCHA, the scraper will return an error. Try again later or use a different IP.
- **Rate Limiting** - Don't go crazy. The batch scraper has built-in delays, but Amazon might still get suspicious if you scrape 100 products.
- **Dynamic Content** - Some content loads via JavaScript after page load. The scraper waits 2 seconds, but some data might be missed.
---
## Disclaimer
This tool is for personal use. Please respect Amazon's Terms of Service. Don't use this to:
- Scrape at scale for commercial purposes
- Build a competing price comparison service
- Annoy Jeff Bezos more than he already is
I built this to help me buy a monitor. That's it. That's the use case.
---
## The Ending
Did I buy a monitor? Yes.
Was it one of the 20 in my cart? No.
Claude convinced me to wait for a sale. The monitor I wanted dropped 20% two weeks later.
Sometimes the best decision is no decision. Thanks, Claude. Thanks, MCP.
Now go scrape some products and let AI make your purchasing decisions. What could possibly go wrong?