Amazon Shopping MCP
SkillWeb & browsingAmazon product search, cart management, price tracking, and shopping list via Playwright + DuckDB MCP server
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Amazon Shopping MCP skill
What this skill tells your AI
The instructions your AI receives, as published by plurigrid/asi in skills/amazon-shopping-mcp/SKILL.md and read by ahel’s review.
Headless Chromium browser automation for Amazon.com with local DuckDB product cache and shopping list.
Server Location
/Users/alice/v/mcp/amazon-shopping/
MCP Registration
{
"amazon-shopping": {
"type": "stdio",
"command": "/bin/sh",
"args": ["-c", "cd /Users/alice/v/mcp/amazon-shopping && unset PYTHONPATH && exec uv run python -m amazon_shopping_mcp.server"]
}
}
Stack
- FastMCP 2.14.x — MCP server framework (pinned
<3) - Playwright — headless Chromium for Amazon browsing
- DuckDB — product cache, price history, shopping list at
~/v/amazon-shopping.duckdb - Python 3.14 via uv
Tools (12)
Browser / Amazon
| Tool | Args | Description |
|---|---|---|
search_amazon | query, max_results=5 | Search Amazon, returns ASIN/title/price/rating |
get_product_details | asin | Full product page: features, description, availability |
add_to_cart | asin | Click Add to Cart (headless session, not logged in by default) |
view_cart | — | List cart items + subtotal |
screenshot_page | — | Screenshot to /tmp/amazon_screenshot.png |
navigate_url | url | Go to any URL, return title + 2000 char text preview |
Shopping List (DuckDB)
| Tool | Args | Description |
|---|---|---|
list_add | asin, title, qty=1, notes="" | Add to local list |
list_view | — | Show all items with status |
list_update_status | item_id, status | Set TODO/BUY/BOUGHT/SKIP |
list_remove | item_id | Delete from list |
Price Tracking
| Tool | Args | Description |
|---|---|---|
price_history | asin | All observed prices over time |
cached_products | query="" | Search local product cache (empty = all) |
DuckDB Schema
products (asin PK, title, price_cents, currency, rating, review_count, url, category, image_url, last_seen)
price_history (asin, price_cents, currency, observed_at)
shopping_list (id PK, asin, title, qty, notes, status, added_at)
Every search_amazon and get_product_details call auto-caches to products and appends to price_history.
Env Vars
| Var | Default | Description |
|---|---|---|
AMAZON_SHOPPING_DB | ~/v/amazon-shopping.duckdb | DuckDB path |
Workflow Examples
Research + buy list
search_amazon("thunderbolt 4 cable 2m")— get top 5 resultsget_product_details("B0CXRSWRBR")— read features, check availabilitylist_add("B0CXRSWRBR", "Cable Matters TB4 2m", qty=2)— track locallyprice_history("B0CXRSWRBR")— check price trend over time
Cart operations
add_to_cart("B0CXRSWRBR")— add to Amazon cartview_cart()— check cart subtotalscreenshot_page()— visual verification
Offline queries
cached_products("thunderbolt")— search previously seen productslist_view()— review full shopping listprice_history("B0CDH4FGZY")— price trend for Anker TB4
Limitations
- Not logged in by default — cart is anonymous session. Login requires manual cookie injection or interactive auth.
- Amazon anti-bot — headless Chrome may hit CAPTCHAs on heavy use. Use
screenshot_pageto debug. - Prices in cents — stored as integers (2999 = $29.99) to avoid float rounding.
- Single browser context — tools share one Chromium page. Concurrent calls may race.
Development
cd /Users/alice/v/mcp/amazon-shopping
unset PYTHONPATH
uv sync # install deps
uv run playwright install chromium # install browser (once)
uv run python -m amazon_shopping_mcp.server # run server
Companion Artifact
Shopping list org file: ~/v/amazon-shopping.org — manually curated product research with ASINs, prices, and notes.
Signals
- GitHub stars
- 64
- Forks
- 12
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
amazon-shopping-mcp- Source
- github.com/plurigrid/asi