Skip to main content
Glama

Amazon MCP

Compare an Amazon search across stores (PLN)

amazon_compare

Run one query on several Amazon stores in parallel (default pl, de, fr, it, es, nl; at most 10) and merge the results in PLN — the cheapest first by default. Costs one SerpAPI credit PER STORE (6 by default). By default foreign stores are asked to deliver to Poland (shipping_location 'PL'): they list only items they ship here, with the delivery cost in delivery, and usually print prices already in PLN (Amazon's conversion, Polish VAT) — shipping is never included in price_pln. shipping_location 'local' compares each store as its own customers see it (NBP-converted, no delivery guarantee). Identical ASINs across stores are grouped in asin_matches with each store's price and the cheapest one — the reliable way to compare the exact same product. Use a precise query (brand + model) and min_price_pln to keep accessories out of a price-sorted list. Result shape: { source, fetchedAt, query, marketplaces: [{ marketplace, country, currency, status ('ok' | 'no_results' | 'error'), total_results, count, search_url, error? }], count, products: [...], asin_matches?: [{ asin, title, offers: [{ marketplace, price, currency, price_pln, url }], cheapest: { marketplace, price_pln }, spread_pln }], fx: [...], note } — the list key is products; each product is { marketplace, position, asin, title, brand?, url, image?, price, price_text, currency, price_pln, old_price?, discount_percent?, rating, reviews, bought_last_month?, prime?, sponsored, delivery?, stock? }. A store that fails or finds nothing is reported in marketplaces, not as an error.

Input Schema

NameRequiredDescriptionDefault
sortNoSort sent to every store. Amazon's sort: relevance (default, Amazon's 'Featured'), price_asc, price_desc, rating (avg. customer review), newest, bestsellers. The price sorts are re-applied to the returned page by displayed price (Amazon sorts by its offer prices), with products that show no price listed last.
brandNoOne brand name, e.g. 'Sony' (Amazon's brand filter on every store).
limitNoMax products in the merged list. Default 40.
queryYesSearch query, ideally brand + model, e.g. 'sony wh-1000xm5'.
no_cacheNoForce a fresh SerpAPI fetch, bypassing this server's 5-minute result cache. Default false.
order_byNoOrder of the merged list: price_pln (default, cheapest first, unpriced last), relevance (the stores' own rankings interleaved) or rating.
match_asinNoGroup the same ASIN found on 2+ stores into asin_matches. Default true.
min_ratingNoKeep products rated at least this (0–5).
min_reviewsNoKeep products with at least this many ratings.
delivery_zipNoDelivery postal code within shipping_location's country (or the store's), e.g. '00-001'.
marketplacesNoStores 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). Default pl, de, fr, it, es, nl; at most 10 — one SerpAPI credit each.
max_price_plnNoHighest price in PLN, applied like min_price_pln.
min_price_plnNoLowest price in PLN: sent to each store in its currency (NBP rate, 10% slack) and enforced exactly on price_pln.
include_sponsoredNoKeep sponsored slots. Default false.
shipping_locationNoDeliver-to country for the foreign stores. Default 'PL'; 'local' = each store's own country (prices in its currency and VAT, delivery to Poland unchecked).
exclude_autocorrectedNoDrop results from an auto-corrected spelling of the query. Default false.
limit_per_marketplaceNoMax products kept per store. Default 10.

Output Schema

NameRequiredDescriptionDefault
fxYes
noteNo
countYes
queryYes
sourceYes
productsYes
fetchedAtYes
asin_matchesNo
marketplacesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: it discloses the credit cost per store ('one SerpAPI credit PER STORE (6 by default)'), the 5-minute server cache, that shipping is never folded into price_pln, that foreign prices are Amazon's own PLN conversion with Polish VAT, and that a failing store surfaces in `marketplaces` rather than as an error.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Cost and defaults are front-loaded, which is right. But a large block is spent restating the full result shape and every product field — an output schema exists, so this is mostly redundant bulk that pushes the genuinely useful notes (asin_matches, error handling) toward the end.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 17-parameter, 10-marketplace fan-out with no annotations, the description covers cost, caching, currency semantics, failure modes and ASIN grouping — everything an agent needs to call it correctly. Return values are covered by the output schema, and the extra shape dump, while verbose, leaves no ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description goes beyond it by explaining what shipping_location actually changes (delivery cost in `delivery`, no delivery guarantee under 'local', NBP conversion) and that min_price_pln is sent in local currency with 10% slack then enforced exactly. It doesn't similarly enrich sort vs order_by, which remain schema-only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with scope: 'Run one query on several Amazon stores in parallel ... and merge the results in PLN'. The multi-store merge is precisely what separates it from amazon_search, and the default sort ('cheapest first') is named up front.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage advice — 'Use a precise query (brand + model) and min_price_pln to keep accessories out of a price-sorted list' — and explains the shipping_location 'PL' vs 'local' tradeoff as a decision. It never names amazon_search or amazon_product as the alternative for single-store or single-product lookups, so the when-not is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources