Amazon MCP
Server Details
Amazon search in 22 country stores, cross-store price comparison, one product's offers, all in PLN.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: amazon_search searches one store, amazon_compare searches several stores and merges results, amazon_product retrieves full ASIN details, and amazon_marketplaces lists static store metadata. The descriptions explicitly guide the agent to the right tool, so there is no meaningful overlap in selection.
All tools use a consistent snake_case amazon_ prefix, making the set easy to scan. The suffix alternates between action words (search, compare) and resource words (product, marketplaces), which is slightly mixed semantically but still predictable and readable.
Four tools is well-scoped for an Amazon search and price-comparison server. Each tool covers a distinct essential operation—single-store search, cross-store comparison, product detail, and marketplace discovery—without redundancy.
The surface covers the core workflow of searching, comparing prices across stores, inspecting a product by ASIN, and discovering supported marketplaces. Minor gaps remain, such as dedicated category/bestseller browsing, batch ASIN lookup, or historical pricing, but agents can largely work around these with search and product tools.
Available Tools
4 toolsamazon_compareCompare an Amazon search across stores (PLN)AInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort 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. | |
| brand | No | One brand name, e.g. 'Sony' (Amazon's brand filter on every store). | |
| limit | No | Max products in the merged list. Default 40. | |
| query | Yes | Search query, ideally brand + model, e.g. 'sony wh-1000xm5'. | |
| no_cache | No | Force a fresh SerpAPI fetch, bypassing this server's 5-minute result cache. Default false. | |
| order_by | No | Order of the merged list: price_pln (default, cheapest first, unpriced last), relevance (the stores' own rankings interleaved) or rating. | |
| match_asin | No | Group the same ASIN found on 2+ stores into asin_matches. Default true. | |
| min_rating | No | Keep products rated at least this (0–5). | |
| min_reviews | No | Keep products with at least this many ratings. | |
| delivery_zip | No | Delivery postal code within shipping_location's country (or the store's), e.g. '00-001'. | |
| marketplaces | No | 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). Default pl, de, fr, it, es, nl; at most 10 — one SerpAPI credit each. | |
| max_price_pln | No | Highest price in PLN, applied like min_price_pln. | |
| min_price_pln | No | Lowest price in PLN: sent to each store in its currency (NBP rate, 10% slack) and enforced exactly on price_pln. | |
| include_sponsored | No | Keep sponsored slots. Default false. | |
| shipping_location | No | Deliver-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_autocorrected | No | Drop results from an auto-corrected spelling of the query. Default false. | |
| limit_per_marketplace | No | Max products kept per store. Default 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
| fx | Yes | |
| note | No | |
| count | Yes | |
| query | Yes | |
| source | Yes | |
| products | Yes | |
| fetchedAt | Yes | |
| asin_matches | No | |
| marketplaces | Yes |
TDQS
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.
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.
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.
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.
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.
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.
amazon_marketplacesList supported Amazon storesAInspect
List the 22 Amazon stores the other amazon_* tools support — code, domain, country, currency, the NBP table its currency converts with, default and available languages, and whether it is in the EU (no customs to Poland). Static and free: call it to pick marketplaces without guessing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: "static and free" discloses that no external calls or costs are involved, and it discloses extra domain behavior (EU membership means no customs to Poland) that an agent could not infer. It does not state return format or ordering, which keeps it off a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the action and count, followed by the returned field list and then the call-to-action. Every clause — field list, EU flag rationale, static/free — carries information an agent needs; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description compensates by enumerating the returned fields and the count of records. For a zero-parameter static list tool, nothing further is required to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description reinforces this by framing it as a static table lookup with no filtering or selection inputs, so an agent will not go hunting for a marketplace argument.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ("List the 22 Amazon stores") and immediately enumerates the returned fields — code, domain, country, currency, NBP table, languages, EU flag. The phrase "the other amazon_* tools support" cleanly separates this reference tool from the action-oriented siblings amazon_compare, amazon_product and amazon_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Call it to pick marketplaces without guessing" gives a clear call condition, and "static and free" signals it is a cheap lookup rather than a metered call. It stops short of explicitly stating it should be called before the search/product/compare tools, but the precursor role is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amazon_productAmazon product details by ASIN (PLN)AInspect
Full details of one Amazon product by ASIN (or product URL — its store is used unless marketplace says otherwise) via SerpAPI's amazon_product engine; one credit, ~10–25 s. Returns every offer with PLN prices — the main price, each purchase option (new/used/…), other sellers — and the cheapest new one, plus variants (each with its own ASIN), rating histogram, specifications, bullet points, category path and a few top reviews. The same ASIN can be looked up on another store (ASINs are mostly shared across EU stores). Result shape: { source, fetchedAt, query, marketplace, asin, title, brand?, url, categories?, images?, rating, reviews, rating_histogram?: { '5': pct, … }, reviews_summary?, bought_last_month?, price, price_text, currency, price_pln, max_price?, old_price?, discount_percent?, coupons?, promotions?, delivery?, stock?, purchase_options?: [{ type, price, currency, price_pln, stock?, delivery?, features? }], other_sellers?: [{ sold_by, ship_from, price, currency, price_pln, delivery?, seller_rating?, seller_reviews?, seller_feedback? }], cheapest_offer?: { source, seller?, price_pln }, variants?: [{ dimension, options: [{ asin, name, selected? }] }], about_item?, specifications?, details?, top_reviews?, fx, note? }.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | ASIN (10 characters, e.g. 'B09Y2MYL5C', from an amazon_search result) or an Amazon product URL containing /dp/<ASIN>. | |
| language | No | 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). | |
| no_cache | No | Force a fresh SerpAPI fetch, bypassing this server's 5-minute result cache. Default false. | |
| marketplace | No | 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…). Default pl. Overrides a URL's own store — to look the ASIN up elsewhere. | |
| delivery_zip | No | Delivery postal code within shipping_location's country (or the store's), e.g. '00-001'. | |
| other_sellers | No | Include the other sellers' offers. Default true. | |
| convert_to_pln | No | Add price_pln at the NBP mid rate. Default true. | |
| include_reviews | No | Include up to 3 top reviews (600 chars each). Default true. | |
| shipping_location | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| fx | Yes | |
| url | No | |
| asin | Yes | |
| note | No | |
| brand | No | |
| price | No | |
| query | Yes | |
| title | No | |
| rating | No | |
| source | Yes | |
| reviews | No | |
| currency | No | |
| variants | No | |
| fetchedAt | Yes | |
| price_pln | No | |
| price_text | No | |
| marketplace | Yes | |
| other_sellers | No | |
| cheapest_offer | No | |
| purchase_options | No | |
| rating_histogram | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden well by disclosing cost and latency (one credit, ~10–25 s), marketplace override behavior, and a detailed result shape. It still omits some operational details such as authentication, error behavior, and the server-side cache behavior described in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and cost are front-loaded, but the description is a very long single paragraph with an extensive result-shape listing. Since an output schema already exists, much of the return-field enumeration is redundant and reduces conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nine-parameter lookup tool with full schema coverage and an output schema, the description is largely complete: it explains the ASIN/URL input model, marketplace override, cost, latency, and output richness. Its main gap is explicit guidance on sibling-tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all nine parameters. The description adds some semantic context about ASIN URLs and cross-store ASIN lookup, but most parameter meaning is carried by the schema rather than the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieve full details of one Amazon product by ASIN or product URL. It clearly scopes the tool to a single product lookup, which distinguishes it from broader search, comparison, and marketplace-list sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by explaining that it returns full details for one ASIN and that the same ASIN can be looked up on another store. However, it does not explicitly say when to use this instead of amazon_search, amazon_compare, or amazon_marketplaces, so routing remains mostly inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amazon_searchSearch an Amazon store (prices in PLN)AInspect
Search one Amazon store (22 countries; default amazon.pl) via SerpAPI, with every price also in PLN at the official NBP mid rate. Costs one SerpAPI credit per call (a repeat within 5 minutes is cached and free). Refine with sort, page, min_price/max_price (store currency; enforced on the displayed price), brand, category_node, min_rating/min_reviews (applied to the returned page), include_sponsored, and any refinement Amazon offers on that page via rh: the result's filters lists each option's rh (Prime, 4★ & up, New condition, sold by Amazon, deals, features…) — pass them comma-separated. A store printing PLN itself (shipping_location 'PL' on a foreign store) is taken as-is. Use amazon_compare for several stores at once and amazon_product for one ASIN's offers, sellers and specs. Result shape: { source, fetchedAt, query, marketplace: { code, domain, country, currency, language }, search_url, total_results (Amazon's own count, before this page's post-filters), query_displayed?, page, next_page, count, products: [...], filters?: { : [{ name, rh }] }, categories?: [{ name, node }], related_searches?, fx: [{ currency, rate, table, table_no, effective_date, source: 'NBP' }], note? } — the list key is products. Each product: { position, asin, title, brand?, url (https://www./dp/), image?, price (number, in currency), price_text (as displayed), currency (ISO, read from the displayed price), price_pln, old_price?, discount_percent?, rating, reviews, bought_last_month?, prime? (only stores that mark it), sponsored, badges?, delivery?, stock?, coupon?, offers?, more_buying_choices?, variants?: [{ asin, title }], purchase_options? }. price_pln is null when there is no price or no NBP rate (the note says why). A search Amazon answers with nothing is count: 0 plus a note on what to relax — a successful result, not an error.
| Name | Required | Description | Default |
|---|---|---|---|
| rh | No | 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. | |
| page | No | Result page, 1–20. Default 1. | |
| sort | No | 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. | |
| brand | No | One brand name as Amazon spells it, e.g. 'Sony' (Amazon's brand filter). | |
| limit | No | Max products returned (1–60). Default 20. | |
| query | No | What you'd type in Amazon's search box, e.g. 'sony wh-1000xm5'. Required unless category_node is set. | |
| language | No | 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). | |
| no_cache | No | Force a fresh SerpAPI fetch, bypassing this server's 5-minute result cache. Default false. | |
| max_price | No | Highest price in the store's currency, applied like min_price. | |
| min_price | No | Lowest price in the STORE's currency (EUR on amazon.de). Sent to Amazon, then enforced on the displayed price: out-of-range products and products without a price are dropped (the note counts them). | |
| min_rating | No | Keep products rated at least this (0–5), filtered on the returned page. | |
| marketplace | No | 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…). Default pl. | |
| min_reviews | No | Keep products with at least this many ratings, filtered on the returned page. | |
| delivery_zip | No | Delivery postal code within shipping_location's country (or the store's), e.g. '00-001'. | |
| category_node | No | 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. | |
| convert_to_pln | No | Add price_pln at the NBP mid rate. Default true. | |
| include_filters | No | Return the page's refinement `filters` (name + rh per option). Default true. | |
| include_sponsored | No | Keep sponsored slots (marked sponsored: true). Default false — ads repeat and distort ranking. | |
| shipping_location | No | 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. | |
| exclude_autocorrected | No | Drop results Amazon adds from an auto-corrected spelling of the query. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| fx | Yes | |
| note | No | |
| page | No | |
| count | Yes | |
| query | Yes | |
| source | Yes | |
| filters | No | |
| products | Yes | |
| fetchedAt | Yes | |
| next_page | No | |
| categories | No | |
| search_url | No | |
| marketplace | Yes | |
| total_results | No | |
| related_searches | No |
TDQS
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 well: it discloses SerpAPI credit cost, 5-minute caching, post-filtering behavior, price_pln null semantics, sponsored defaults, and that empty searches return count 0 with a note rather than 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose, cost, alternatives, and refinement behavior are front-loaded, but the description is very long and includes an extensive result-shape block even though an output schema exists. That return-shape detail is largely redundant and hurts conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 20-parameter search tool with no annotations, the description is complete enough for an agent to call it correctly. It covers costs, caching, filtering behavior, currency conversion, empty results, and sibling routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 20 parameters thoroughly. The description restates many of the same refinements and adds only marginal extra meaning, so the baseline for high schema coverage is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a precise verb and resource: 'Search one Amazon store', and adds scope such as 22 countries and default amazon.pl. It clearly distinguishes this from sibling tools by pointing to amazon_compare and amazon_product for different tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use alternatives: amazon_compare for several stores at once and amazon_product for one ASIN's offers. The refinement guidance and note that no-result searches are successful outcomes further clarify intended usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
amazon_compare - First observed
amazon_marketplaces - First observed
amazon_product - First observed
amazon_search
Related MCP Connectors
Price comparison on Ceneo.pl: search products, list every shop's offer, fetch product details.
31Product search across online shops worldwide, plus every seller's price with a direct link.
Real-time Amazon prices, product search, 90-day history, AI forecasts, and price drop alerts.
GDPR-clean marketplace listings and prices from 18 European countries. No seller personal data.
Related MCP Servers
AlicenseNot gradedqualityFmaintenanceEnables product search, price comparison, and price history analysis across 6 European marketplaces (DE, AT, GB, FR, IT, ES).23MIT- AlicenseAqualityAmaintenanceLive Amazon marketplace data for AI agents: product details, prices, reviews, keyword search, best-sellers, deals, offers and stock, and seller profiles across 20 marketplaces.121MIT
- FlicenseNot gradedqualityDmaintenanceScrapes Amazon France to provide Claude with product search, details, and price tracking with history.-
- FlicenseNot gradedqualityCmaintenanceEnables price comparison and market intelligence through seven tools for searching product prices across Idealo and Amazon, retrieving price history, comparing competitor pricing, and looking up product details by EAN/UPC barcode.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.