Asi amazon-shopping-mcp
Amazon product search, cart management, price tracking, and shopping list via Playwright + DuckDB MCP server
install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/amazon-shopping-mcp" ~/.claude/skills/plurigrid-asi-amazon-shopping-mcp && rm -rf "$T"
manifest:
skills/amazon-shopping-mcp/SKILL.mdsource content
Amazon Shopping MCP
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, returns ASIN/title/price/rating |
| | Full product page: features, description, availability |
| | Click Add to Cart (headless session, not logged in by default) |
| — | List cart items + subtotal |
| — | Screenshot to |
| | Go to any URL, return title + 2000 char text preview |
Shopping List (DuckDB)
| Tool | Args | Description |
|---|---|---|
| , , , | Add to local list |
| — | Show all items with status |
| , | Set /// |
| | Delete from list |
Price Tracking
| Tool | Args | Description |
|---|---|---|
| | All observed prices over time |
| | 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 |
|---|---|---|
| | DuckDB path |
Workflow Examples
Research + buy list
— get top 5 resultssearch_amazon("thunderbolt 4 cable 2m")
— read features, check availabilityget_product_details("B0CXRSWRBR")
— track locallylist_add("B0CXRSWRBR", "Cable Matters TB4 2m", qty=2)
— check price trend over timeprice_history("B0CXRSWRBR")
Cart operations
— add to Amazon cartadd_to_cart("B0CXRSWRBR")
— check cart subtotalview_cart()
— visual verificationscreenshot_page()
Offline queries
— search previously seen productscached_products("thunderbolt")
— review full shopping listlist_view()
— price trend for Anker TB4price_history("B0CDH4FGZY")
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
to debug.screenshot_page - 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.