SERP ENGINE

Amazon

Amazon in 22 country stores, live via SerpAPI, with every price also converted to PLN. Search one store with amazon_search, or run the same query on several stores at once with amazon_compare, which groups identical ASINs into asin_matches so you can see one product’s price store by store and pick the cheapest. amazon_product pulls one ASIN’s full listing — every purchase option, other sellers, variants and rating histogram. Because a foreign store often prints its own PLN conversion when asked to ship to Poland, each price’s currency is read from what’s actually displayed, not assumed from the store, and the National Bank of Poland’s official rate only fills in the rest.

4 tools ~2–8 s cache: 5 min PLN SerpAPI amazon + amazon_product

Thirty seconds, any client.

claude mcp add --transport http amazon https://mcp.wondel.ai/amazon/mcp

One command in your terminal — the server is available in every Claude Code session.

This server works with Claude, Claude Code, Claude Desktop, Claude Cowork, Cursor, VS Code, Windsurf — and any other MCP client. Stdio-only clients connect through npx mcp-remote.

4 tools, fully typed.

Parameters below are transcribed from the server’s own zod schemas — what you see is what the tool validates.

amazon_search Search one Amazon store (default amazon.pl) with Amazon’s own sort, price, brand, category and rating filters. Every price also comes back converted to PLN.
Param Type Description
query string What you’d type in Amazon’s search box, e.g. 'sony wh-1000xm5'. Required unless category_node is set.
marketplace string
= pl
Amazon store: its code (pl, de, fr, it, es, nl, be, se, uk, tr, us, ca, mx, br, au, jp, in, cn, sg, ae, sa, eg) or domain (amazon.de, amazon.co.uk…).
language string Store language as <language>_<REGION>, e.g. 'en_GB' for English titles on amazon.de. Default: the store’s own (de_DE on amazon.de) — each store only offers a few (amazon_marketplaces lists them).
sort enum
= relevance
Amazon’s sort: relevance (Amazon’s "Featured"), price_asc, price_desc, rating (avg. customer review), newest, bestsellers. relevanceprice_ascprice_descratingnewestbestsellers
page integer
= 1
Result page, 1–20.
min_price number Lowest price in the STORE’s currency (EUR on amazon.de), applied by Amazon.
max_price number Highest price in the store’s currency, applied by Amazon.
brand string One brand name as Amazon spells it, e.g. 'Sony' (Amazon’s brand filter).
category_node string Amazon browse-node id (digits) to search within — from a result’s `categories`, or node=… in an Amazon category URL. Ids differ per store. Without a query this browses the category.
rh string Amazon refinements, comma-separated key:value pairs exactly as a previous result’s `filters` list them (e.g. 'p_n_condition-type:776949031,p_72:419117031'). Ids are store-specific.
exclude_autocorrected boolean
= false
Drop results Amazon adds from an auto-corrected spelling of the query.
shipping_location string
= local
Deliver-to country as an ISO code, e.g. 'PL': a foreign store then lists only items it delivers there, adds delivery cost to `delivery`, and usually prints prices already converted to PLN by Amazon (VAT of the destination). 'local' (or omitted) = the store’s own country.
delivery_zip string Delivery postal code within shipping_location’s country (or the store’s), e.g. '00-001'.
min_rating number Keep products rated at least this (0–5), filtered on the returned page.
min_reviews integer Keep products with at least this many ratings, filtered on the returned page.
include_sponsored boolean
= false
Keep sponsored slots (marked sponsored: true) — ads repeat and distort ranking.
include_filters boolean
= true
Return the page’s refinement `filters` (name + rh per option).
limit integer
= 20
Max products returned (1–60).
convert_to_pln boolean
= true
Add price_pln at the NBP mid rate.
no_cache boolean
= false
Force a fresh fetch, bypassing this server’s 5-minute result cache.
amazon_compare Run one query across up to 10 Amazon stores in parallel and merge them ranked by price in PLN, grouping identical ASINs so the same product’s price is compared store by store.
Param Type Description
query * string Search query, ideally brand + model, e.g. 'sony wh-1000xm5'.
marketplaces string[]
= pl, de, fr, it, es, nl
Stores to compare, codes or domains (pl, de, fr, it, es, nl, be, se, uk, tr, us, ca, mx, br, au, jp, in, cn, sg, ae, sa, eg). At most 10 — one SerpAPI credit each.
order_by enum
= price_pln
Order of the merged list: price_pln (cheapest first, unpriced last), relevance (the stores’ own rankings interleaved) or rating. price_plnrelevancerating
sort enum
= relevance
Sort sent to every store. Amazon’s sort: relevance (Amazon’s "Featured"), price_asc, price_desc, rating, newest, bestsellers. relevanceprice_ascprice_descratingnewestbestsellers
min_price_pln number Lowest price in PLN: sent to each store in its currency (NBP rate, 10% slack) and enforced exactly on price_pln.
max_price_pln number Highest price in PLN, applied like min_price_pln.
brand string One brand name, e.g. 'Sony' (Amazon’s brand filter on every store).
min_rating number Keep products rated at least this (0–5).
min_reviews integer Keep products with at least this many ratings.
include_sponsored boolean
= false
Keep sponsored slots.
exclude_autocorrected boolean
= false
Drop results from an auto-corrected spelling of the query.
shipping_location string
= PL
Deliver-to country for the foreign stores. 'local' = each store’s own country (prices in its currency and VAT, delivery to Poland unchecked).
delivery_zip string Delivery postal code within shipping_location’s country (or the store’s), e.g. '00-001'.
limit_per_marketplace integer
= 10
Max products kept per store (1–60).
limit integer
= 40
Max products in the merged list (1–200).
match_asin boolean
= true
Group the same ASIN found on 2+ stores into asin_matches.
no_cache boolean
= false
Force a fresh fetch, bypassing this server’s 5-minute result cache.
amazon_product Full details for one ASIN: main price, every purchase option, other sellers, variants and rating histogram — all converted to PLN.
Param Type Description
asin * string ASIN (10 characters, e.g. 'B09Y2MYL5C', from an amazon_search result) or an Amazon product URL containing /dp/<ASIN>.
marketplace string
= pl
Amazon store: its code (pl, de, fr, it, es, nl, be, se, uk, tr, us, ca, mx, br, au, jp, in, cn, sg, ae, sa, eg) or domain (amazon.de, amazon.co.uk…). Overrides a URL’s own store — to look the ASIN up elsewhere.
language string Store language as <language>_<REGION>, e.g. 'en_GB' for English titles on amazon.de. Default: the store’s own (de_DE on amazon.de) — each store only offers a few (amazon_marketplaces lists them).
shipping_location string
= local
Deliver-to country as an ISO code, e.g. 'PL': a foreign store then lists only items it delivers there, adds delivery cost to `delivery`, and usually prints prices already converted to PLN by Amazon (VAT of the destination). 'local' (or omitted) = the store’s own country.
delivery_zip string Delivery postal code within shipping_location’s country (or the store’s), e.g. '00-001'.
other_sellers boolean
= true
Include the other sellers’ offers.
include_reviews boolean
= true
Include up to 3 top reviews (600 chars each).
convert_to_pln boolean
= true
Add price_pln at the NBP mid rate.
no_cache boolean
= false
Force a fresh fetch, bypassing this server’s 5-minute result cache.
amazon_marketplaces List the 22 Amazon stores the other tools support — code, domain, country, currency, NBP table, languages and EU membership. Static and free.
Param Type Description

Prompts that just work.

Where is the Kindle Paperwhite cheapest across EU Amazons, in złoty?

amazon_compare

Sony WH-1000XM5 on amazon.de, delivered to Poland — what does it actually cost?

amazon_search

Details and other sellers for ASIN B09Y2MYL5C on amazon.de.

amazon_product

What comes back

amazon_compare · live response, captured 2026-09-29 from production, abridged

{
  "source": "serpapi/amazon",
  "fetchedAt": "2026-09-29T13:33:24.143Z",
  "query": { "query": "kindle paperwhite", "marketplaces": ["amazon.pl", "amazon.de", "amazon.it"], "shipping_location": "PL", … },
  "marketplaces": [
    { "marketplace": "amazon.pl", "country": "Poland", "currency": "PLN", "status": "ok", "total_results": 1622, "count": 5 },
    { "marketplace": "amazon.de", "country": "Germany", "currency": "EUR", "status": "ok", "total_results": 316, "count": 5 },
    { "marketplace": "amazon.it", "country": "Italy", "currency": "EUR", "status": "ok", "total_results": 15347, "count": 5 }
  ],
  "count": 15,
  "products": [
    {
      "marketplace": "amazon.de",
      "asin": "B0CFPWLGF2",
      "title": "Amazon Kindle Paperwhite (neueste Generation) – 16 GB – ohne Werbung – schwarz",
      "price": 722.91,
      "price_text": "722,91 PLN",
      "currency": "PLN",
      "price_pln": 722.91,
      "old_price": 1016.64,
      "discount_percent": 29,
      "rating": 4.6,
      "reviews": 17015,
      "delivery": ["Lieferung für 26,19 PLN Fr., 2. Okt.", "Wird versendet nach Polen"]
    },
    …
  ],
  "asin_matches": [
    {
      "asin": "B0CFPWLGF2",
      "title": "Amazon Kindle Paperwhite (najnowsza generacja) – 16 GB – Czarny",
      "offers": [
        { "marketplace": "amazon.de", "price": 722.91, "currency": "PLN", "price_pln": 722.91, "url": "https://www.amazon.de/dp/B0CFPWLGF2" },
        { "marketplace": "amazon.pl", "price": 969.99, "currency": "PLN", "price_pln": 969.99, "url": "https://www.amazon.pl/dp/B0CFPWLGF2" },
        { "marketplace": "amazon.it", "price": 224.99, "currency": "EUR", "price_pln": 983.84, "url": "https://www.amazon.it/dp/B0CFPWLGF2" }
      ],
      "cheapest": { "marketplace": "amazon.de", "price_pln": 722.91 },
      "spread_pln": 260.93
    },
    …
  ],
  "fx": [
    { "currency": "EUR", "rate": 4.3728, "table": "A", "table_no": "189/A/NBP/2026", "effective_date": "2026-09-29", "source": "NBP" }
  ],
  "note": "Foreign stores were asked to deliver to PL (shipping_location=PL): they list only items they deliver to Poland, and usually print prices already converted to PLN by Amazon (destination VAT included) — shipping costs are in `delivery`, not in price_pln."
}

Fetching tools share one envelope — source says where the data came from, fetchedAt says when, query echoes what you asked. asin_matches only appears from amazon_compare — amazon_search and amazon_product share the same envelope without the multi-store fields. Every store in amazon_compare costs one SerpAPI credit (a repeat call within 5 minutes is cached and free); amazon_product runs ~10–25 s. Compact JSON in one text block, exactly how agents like it.

Add Amazon
to your agent.

mcp.wondel.ai/amazon/mcp

Authless · Read-only public data · Streamable HTTP at /mcp