Skip to main content
Glama

Server Details

Amazon (11 marketplaces) and Walmart US product data: search, prices, stock, history, sellers.

Ownership verified
Status
Healthy
Uptime
100.0% over 25 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
ncosic/logimu-shopping-mcp
GitHub Stars
1
Server Listing
logimu-shopping-mcp
ChatGPT
–
Claude
Logimu Shopping

TDQS

A4.4/5.0

Scored across 18 tools

Disambiguation4/5

Most tools target clearly distinct resources, and the descriptions include explicit 'DON'T USE' hand-offs (shopping vs search vs serp vs product, keywords vs keyword_rankings vs product_keywords, deals vs bestsellers vs offers), which materially reduces misselection. The residual risk is in the near-neighbour clusters: product already carries an all-seller offers table that overlaps with offers, and three discovery tools (shopping/search/serp) plus three keyword tools still require careful reading rather than obvious naming to separate.

Naming Consistency3/5

Most names are domain nouns (product, offers, deals, brand, seller, category, bestsellers), while a few use verb_noun or action framing (list_tracked, track_product) and others are overloaded single words (search, shopping, batch). The keyword family is inconsistently shaped (keywords, keyword_rankings, product_keywords), so there is no single predictable pattern, though everything remains readable.

Tool Count4/5

18 tools for a broad Amazon/Walmart marketplace-intelligence platform is a reasonable surface: each tool maps to a distinct data product (discovery, product dossier, brand/seller/category, keywords, tracking, batching, account). It sits close to the upper bound of comfortable, with some parameter-heavy multi-action tools (batch, track_product) doing the work of several, but nothing feels like filler.

Completeness5/5

The surface covers discovery (shopping, search, serp, bestsellers, deals), deep product data (product, offers), derived entity intelligence (brand, seller, category, market_lists), keyword work in both directions (keywords, keyword_rankings, product_keywords), and a full tracking lifecycle (track_product create/stop/sync/bulk, list_tracked) plus batch lifecycle (estimate/create/run/status/results/list/schedule/delete) and account/allowance introspection. No obvious dead end remains; even the list_tracked note about DELETE is backed by track_product action=stop.

Available Tools

18 tools
accountA
Read-onlyIdempotent
Inspect

ACCOUNT: the account's balance, plan, 30-day usage by endpoint and its product-tracking allowance (snapshots a day: total, used, remaining) - the same as REST GET /v1/account. USE WHEN the user asks how many credits are left, what a job will leave, what the key has been used for, or how much tracking room there is. COST free, never billed. API key required (keyed lanes); without one, nothing to report.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, but the description adds material facts beyond them: the call is free and never billed, an API key is required, and results are reported as daily snapshots with total/used/remaining. It does not discuss caching or freshness beyond the 30-day window, so it stops just short of 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.

Conciseness5/5

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

Four compact segments — identity/contents, usage triggers, cost, auth requirement — each front-loaded and earning its place. No filler verbs or restatement of the tool name.

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?

With no output schema, the description carries the burden of explaining returns, and it does so (balance, plan, per-endpoint usage, daily snapshot totals). Combined with cost and auth notes, an agent has everything needed to call it and interpret the result.

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?

This tool takes zero parameters, so per the rubric the baseline is 4; there are no arguments whose meaning the description could clarify. The description correctly avoids inventing parameter details.

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?

The description states a specific resource (the account) and enumerates exactly what it returns: balance, plan, 30-day usage by endpoint, and product-tracking allowance, plus a REST equivalence (GET /v1/account). No sibling tool covers account-level data, and the naming of the returned fields makes it unmistakable.

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

Usage Guidelines5/5

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

The 'USE WHEN' clause gives four concrete trigger questions (credits left, job cost, key usage, tracking room), which is exactly the intent-to-tool mapping an agent needs. It also states the precondition/negative case: 'API key required (keyed lanes); without one, nothing to report.'

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

batchA
Destructive
Inspect

BATCHES: run any Logimu endpoint over a whole list in one job and come back for the results - the same batch API as REST /v1/batches (see https://api.logimu.com/docs#batch). action=estimate prices a list before anything is billed (free); action=create makes a named, re-runnable batch (add start=true to launch its first run at once); action=run launches a run of an existing batch; action=status reports a batch (runs, line stats) or, with run_id, one run's progress (rows done, credits so far, queue position); action=results returns completed result rows of a run, mid-run too (limit / offset to page; jsonl_url and csv_url give the full download); action=list lists the account's batches; action=schedule repeats a batch every 12 hours / daily / weekly / monthly (credit_ceiling, webhook_url, email); action=delete removes a batch. USE WHEN the user has more than a handful of ASINs, barcodes, search terms, seller ids, brands or seeds to run, wants a daily/weekly refresh, or wants a CSV. Kinds: product (asins or gtins - or source=tracked for the ASINs this account tracks, typically with include [history_only] at 0.05 a row), search (terms, live SERP), seller / brand / category / keywords (paid plans), and every other endpoint as its own kind (shopping, warehouse_search, bestsellers, offers, deals, seller_products, seller_brands, seller_network, brand_sellers, brand_network, keywords_compare, categories, category_search, brands_top, brands_movers, sellers_top, sellers_movers, categories_top) with the endpoint's query parameters in params. Each row bills what the endpoint bills; failed, not-found and duplicate rows are never billed; runs are serialized per marketplace. COST estimate / status / results / list are free; create + run queue billable rows (the estimate is the ceiling). API key required (keyed lanes).

NameRequiredDescriptionDefault
kindNoestimate / create: product (default), search, seller, brand, category, keywords, or any endpoint kind named in the description.product
modeNoproduct / seller batches: cache = warehouse only, live = scrape every row, auto = warehouse when fresh enough (required on create for product batches).
nameNocreate: the batch's name (1-120 characters).
urlsNobestsellers batches: Best Sellers URLs.
asinsNoproduct batches: the ASINs (or Walmart item ids).
emailNocreate / schedule: e-mail the account when a run completes or pauses and when a scheduled firing is refused. Default false for batches created here or through the REST API; results are always available programmatically.
gtinsNoproduct batches: barcodes instead of ASINs.
limitNoresults: rows to return (page with offset; the download URLs carry everything).
pagesNosearch batches: pages per term (1-3); ranked-list batches: pages of 25 rows (1-40).
seedsNokeywords / keywords_compare batches: seed terms.
startNocreate: also launch the first run at once.
termsNosearch / shopping / warehouse_search / category_search batches: the queries.
actionYesWhat to do (see the tool description).
brandsNobrand, brand_sellers, brand_network batches.
offsetNoresults: rows to skip.
paramsNoendpoint kinds: the endpoint's query parameters, fixed for every row.
run_idNoFor status (one run's progress) and results.
sourceNoproduct batches: tracked = the ASINs this account tracks on the marketplace instead of a list.
countryNoestimate / create: us, uk, de, ca, au, fr, it, es, jp, mx, br, walmart (search batches Amazon only).us
includeNoExtras: history (seller / brand / category / keywords), reviews, used, offer_history, bsr_history, history_only (product), blocks (search).
batch_idNoFor run / status / results / schedule / delete.
scheduleNoschedule: how often the batch re-runs (none stops the schedule). 12h fires twice a day, at at_hour_utc and 12 hours later; daily once a day at at_hour_utc (default midnight UTC); weekly on Monday and monthly on the 1st, 00:00 UTC.
seller_idsNoseller, seller_products, seller_brands, seller_network batches.
at_hour_utcNoschedule, 12h and daily only: the UTC hour it fires at (12h: this hour and 12 hours later). Default: 12h = the current UTC hour, daily = 0. Kept when the same cadence is saved again without it.
webhook_urlNoschedule: POSTed on run completion / pause, HMAC-SHA256 signed; the secret is returned once.
category_idsNocategory / categories batches (ids, or root); deals batches (deals department ids, or all for the whole deals page).
max_age_daysNo
credit_ceilingNoschedule: a firing whose fresh estimate exceeds this does not run (email instead); default 2x the estimate.
history_pointsNo
history_sellersNo
schedule_enabledNoschedule: pause without deleting.

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description discloses cost behavior that annotations cannot: which actions are free, that create/run queue billable rows, that failed/not-found/duplicate rows are never billed, that the estimate is the ceiling, and that runs are serialized per marketplace. It also flags the API-key requirement. It stops short of saying whether action=delete also discards stored results — a real gap for a destructive tool.

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

Conciseness4/5

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

Front-loaded with the core purpose, and each semicolon-delimited clause carries unique information (action semantics, kinds, billing, cost). It is dense to the point of being a wall of text for a 31-parameter tool, but almost nothing is redundant.

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

Completeness4/5

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

For a 31-parameter multi-action tool with no output schema, the description covers action selection, kinds, cost, scheduling semantics, and pagination well enough to call correctly. Remaining gaps are the three undocumented numeric tuning parameters and any indication of the shape of status/results payloads beyond the mentions of rows/credits/queue position and download URLs.

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 90%, so the baseline is 3; the description still adds value by defining each action's semantics (estimate vs create vs run vs status vs results) and by explaining that endpoint kinds take the endpoint's own query parameters in params. It also pins concrete meaning onto source=tracked with include [history_only] and its 0.05/row cost. It does not cover max_age_days, history_points, or history_sellers, which carry no schema descriptions at all.

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?

The opening sentence names a specific verb and resource ('run any Logimu endpoint over a whole list in one job') and immediately scopes it as the batch counterpart to REST /v1/batches. Every action is enumerated with its own one-clause meaning, so an agent can distinguish this from single-item siblings like product or search without opening a schema.

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

Usage Guidelines5/5

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

The 'USE WHEN' clause gives an explicit trigger threshold ('more than a handful of ASINs, barcodes, search terms, seller ids, brands or seeds'), plus scheduled refresh and CSV output as alternate triggers, which implicitly routes single-item requests to the non-batch siblings. Kind selection is also spelled out per data type, leaving little to inference.

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

bestsellersA
Read-onlyIdempotent
Inspect

LIVE Amazon Best Sellers list for one category: up to 100 products in Amazon's rank order, the category's full breadcrumb name, and its subcategories with their URLs. Given a marketplace's root best-sellers URL (or just a country) it returns the top-level categories instead, so you can walk the tree: root -> category -> subcategory, always by the URLs a previous answer returned. USE WHEN the user asks what sells best in a category or department right now, wants a top-100 or best-seller list, or wants to browse Amazon's best-seller categories. DON'T USE for a keyword search (serp is Amazon's live results page, shopping a curated shortlist), for one known ASIN (product), or for a product's rank history (product with bsr_history). RETURNS page_type 'category': current_category (name, full_name = the breadcrumb path, path[] with each ancestor's name/url/node_id, node_id, url), subcategories[] (name, url, node_id), bestsellers[] (rank, asin, title, link, image, rating, ratings_total, price) and pagination; page_type 'root': categories[] (name, url, node_id). Every answer carries observed_at (when the list was fetched from Amazon) and cached. HONESTY: names are in the page's language (German pages are local; fr, it, es, jp, mx and br pages are requested in English); ranks are Amazon's at fetch time; price is null when the card shows none; node_id is null for departments whose URL carries only a slug. LATENCY is SECONDS: ~15-35s for a fresh top 100, ~15s for a root list; Amazon refreshes these lists hourly, so an answer may come from our cache (up to 30 min for a category, 24 h for the root list) and then returns in milliseconds. MARKETPLACES us, uk, de, ca, au, fr, it, es, jp, mx, br (the marketplace comes from the URL; no Walmart). COST API key required (the free no-signup lane cannot run live fetches). 1 credit per page of 50 products returned (the full top 100 = 2), cached or fresh; the root list is free; a category Amazon does not have, a blocked fetch and an empty list are never billed.

NameRequiredDescriptionDefault
urlNoAn Amazon Best Sellers URL: a category (e.g. https://www.amazon.com/gp/bestsellers/kitchen/289814, or any URL from a previous answer's subcategories / categories / path) or a marketplace's root (https://www.amazon.de/gp/bestsellers/). The marketplace comes from the host.
pagesNo1 = ranks 1-50 (1 credit), 2 = ranks 1-100 (default, 2 credits). Ignored for the root list.
countryNoWithout url: that marketplace's root list of top-level categories (start here when you have no URL yet). With url: must match the URL's marketplace.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, and the description still adds substantial operational context: seconds-scale latency (~15-35s fresh, ms when cached), cache TTLs (30 min category, 24 h root), credit pricing including free root and unbilled failure modes, API-key requirement, and honesty caveats about language, null prices and null node_ids. This is exactly the beyond-annotations content the dimension rewards.

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

Conciseness4/5

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

Front-loaded with purpose, then USE/DON'T USE, RETURNS, HONESTY, LATENCY, MARKETPLACES, COST — every block is load-bearing for a live, billed, cached fetcher. It is long, and the RETURNS enumeration could be trimmed slightly, but there is no filler and no repetition.

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?

No output schema exists, so the description carries the full return-shape burden and does so thoroughly (both page_type variants, field-by-field, plus observed_at/cached). Combined with latency, billing and marketplace coverage, an agent has everything needed to call it correctly and set expectations.

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, but the description adds real semantics beyond the schema: the marketplace is derived from the URL host, the url/country pair must agree, and — most importantly — the tree-walking contract that subsequent calls should reuse URLs returned by a previous answer. It stops short of adding format syntax the schema lacks, so a 4 rather than a 5.

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+resource ('LIVE Amazon Best Sellers list for one category') with the exact payload (top 100 in rank order, breadcrumb name, subcategories) and the dual-mode behavior (category URL vs. root URL returns top-level categories). An agent can distinguish it from serp, product and shopping without opening the schema.

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

Usage Guidelines5/5

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

Explicit USE WHEN conditions (what sells best in a category right now, top-100 list, browsing best-seller categories) and explicit DON'T USE with named alternatives: keyword search -> serp, curated shortlist -> shopping, one ASIN -> product, rank history -> product with bsr_history. This is as close to a routing table as a description gets.

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

brandA
Read-onlyIdempotent
Inspect

Amazon BRAND dossier from Logimu's own buy-box observations (derived intelligence, not estimates): catalog size, how many sellers win the buy box, control score (share of buy-box days won by FBA offers), winner diversity, Amazon's own retail share, FBA penetration, seller concentration (HHI) and churn, seller-pressure trend grades, since when we have observed the brand, its dominant category with p25/p50/p75 benchmarks, and the top-10 sellers by observed buy-box days with their feedback records. USE WHEN the user asks who sells a brand, how contested / Amazon-dominated / FBA-heavy a brand is, whether a brand is gaining or losing sellers, or wants to vet a brand for wholesale / arbitrage / brand protection. OPTIONS: sellers=true adds the full seller list (25 per page, page=N); network=true adds the brand's SELLER MAP - the brands connected to it because the same third-party sellers win the buy box on both (edges weighted by shared sellers, one hop, max 50); history=true adds up to 24 calendar months (ASINs, sellers, buy-box days, price, rating). All 11 Amazon marketplaces, no Walmart. HONESTY: 'observed since' is our data horizon, not the brand's age; a 404 means we have not observed the brand (names are matched as Amazon prints them). COST: paid plan required (the tool is listed only for keys on a paid plan). 1 credit for the dossier, +0.5 once when history comes back non-empty, +1 per page of sellers, +1 for the network. Unknown brand: 0.

NameRequiredDescriptionDefault
pageNoSeller-list page (with sellers=true).
brandYesBrand name as Amazon prints it (case-insensitive).
countryNoAmazon marketplace.us
historyNoAdd history.monthly (up to 24 months). +0.5 credit when non-empty.
networkNoAdd the seller map: connected brands + weighted edges. +1 credit.
sellersNoAdd the full seller list (25 per page). +1 credit per page.
network_limitNoEdges to return with network=true (1-50).

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations' read-only/idempotent safety profile, the description discloses paid-plan requirements, per-option credit costs, the data horizon caveat ('observed since' is not brand age), 404 behavior for unobserved brands, and marketplace scope. These are exactly the operational details an agent needs before invoking the tool.

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

Conciseness5/5

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

Despite being dense, the description is front-loaded: it defines the dossier, then states when to use it, then options, then scope, then honesty caveats, then cost. Every section earns its place for a tool with seven parameters, multiple optional expansions, usage-dependent costs, and no output schema.

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?

With no output schema, the description carries the burden of explaining what is returned and does so thoroughly, including field families, optional expansions, pagination, marketplace coverage, data freshness caveats, and cost model. No material gap remains for correct invocation.

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

Parameters5/5

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

Schema description coverage is 100%, so the baseline would be 3, but the description adds material meaning: sellers=true returns 25 per page and supports page=N; network=true returns a one-hop seller map with up to 50 weighted edges; history=true returns up to 24 calendar months with specific fields; and each option carries its own credit cost.

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?

The description names a specific resource ('Amazon BRAND dossier') and enumerates its contents in detail, making clear this is brand-level buy-box intelligence rather than a generic product or seller lookup. It also distinguishes the data source ('Logimu's own buy-box observations, derived intelligence, not estimates'), which separates it from sibling tools that may surface estimates or different entities.

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?

It gives an explicit 'USE WHEN' list covering who sells a brand, how contested or Amazon-dominated it is, seller trends, and vetting for wholesale/arbitrage/brand protection. It does not name sibling alternatives or state when not to use this tool, so it stops short of the highest tier.

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

categoryA
Read-onlyIdempotent
Inspect

Amazon CATEGORY landscape from Logimu's observations: size (ASINs, brands, sellers), pricing and rating averages, Amazon's own retail share, FBA penetration, Amazon private-label share, seller concentration (HHI top-5), heat (competitive intensity), 30-day catalog churn, demand signals (bought-past-month, revenue signal, velocity tier), root-level benchmark percentiles, the sub-categories and - for root categories - the top-10 brands by observed buy-box days. USE WHEN the user asks how competitive / Amazon-dominated / FBA-heavy a category is, how big it is, which brands lead it, or wants to size a private-label or wholesale entry. Give category_id (Logimu's category id - the one every search result carries; or node_id for an Amazon browse-node id) OR q (a name fragment, English alias included) - with q the tool first returns matching categories (free) so you can pick the id - OR list=true to walk the taxonomy (the marketplace's root categories, or the children of parent_id; free). history=true adds months of products / brands / sellers. All 11 Amazon marketplaces. COST: paid plan required (listed only for keys on a paid plan). 1 credit per category profile, +0.5 with non-empty history; the name lookup and the taxonomy listing are free; unknown id: 0.

NameRequiredDescriptionDefault
qNoInstead of an id: part of a category name or path (English alias included) - returns candidate categories, free.
listNoWalk the taxonomy: the marketplace's root categories, or the children of parent_id. Free.
countryNoAmazon marketplace.us
historyNoAdd history.monthly. +0.5 credit when non-empty.
node_idNoInstead of category_id: the Amazon browse-node id.
parent_idNoWith list=true: list this category's children instead of the roots.
category_idNoLogimu category id (warehouse id, as returned by every search result and listing).

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds substantial value beyond them: the credit cost model (1 credit, +0.5 with history, 0 for unknown id), which operations are free, the 11-marketplace scope, and the paid-plan requirement. This is exactly the kind of behavioral context annotations can't express.

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

Conciseness4/5

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

Long but dense and front-loaded: what it returns, then USE WHEN, then input modes, then cost. Nearly every clause carries information, though the enumeration of return fields is on the verbose side and could be tightened.

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?

There is no output schema, so the description must carry return semantics - and it does, listing the full set of profile fields, the sub-category/brand behavior for root vs non-root categories, and what history=true appends. Nothing an agent needs to call this correctly is missing.

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 per-parameter docs are already present, but the description adds cross-parameter semantics the schema alone doesn't convey: the OR relationship between category_id/node_id, q, and list=true, and that q returns candidates first (free) so the caller can pick an id. That mutual-exclusivity and sequencing is genuine added meaning.

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+resource ('Amazon CATEGORY landscape') and enumerates exactly what the profile contains: size, pricing/rating averages, Amazon retail share, FBA penetration, private-label share, HHI concentration, churn, demand signals, benchmarks, sub-categories and top brands. An agent can immediately tell this is a category-level analytics tool, distinct from product/brand/seller siblings.

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

Usage Guidelines5/5

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

Explicit 'USE WHEN' clause names the triggers (how competitive / Amazon-dominated / FBA-heavy, how big, which brands lead, sizing a private-label or wholesale entry). It also documents the three invocation modes and when to choose each, plus the free vs paid conditions.

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

dealsA
Read-onlyIdempotent
Inspect

LIVE Amazon Today's Deals: the deals page of one marketplace, read from Amazon at request time and filtered the way Amazon's own page filters it - department (category_id), deal collection (deal_types: lightning_deal, trending, coupons, started_today, ending_today; or any collection id an answer lists), percent off, price, Prime Exclusive, minimum rating, brand. USE WHEN the user asks what is on sale or discounted on Amazon right now, wants today's deals or lightning deals in a department, deals above a discount or under a price, coupon deals, or deals ending today. DON'T USE for one product's price history or past price drops (product with offer_history), for who sells a product right now (offers), for a keyword search (serp, shopping) or for what sells best in a category (bestsellers). RETURNS deals[] (position, asin, title, link, image, deal_id, deal_link, deal_type e.g. BEST_DEAL / LIGHTNING_DEAL, is_lightning_deal, deal_state, percent_claimed, ends_at, deal_price and list_price {value, currency, symbol, label}, percent_off, savings, deal_badge, is_prime_price, coupon {text, amount, promotion_id, link}, brand, brand_id, department_ids, product_group, product_type, variations), categories[] (category_id, name, selected: the departments to pass back as category_id), collections[] (id, name: pass back as collection), facets (brands with ids, reviewRating, price and percentOff ranges, accessType), selected_filters, filter_check (per requested filter: applied / not_applied / unverified), pagination (page, page_size, pages_fetched, start_index, returned, has_more, partial), amazon (marketplace_id, locale, currency), observed_at and cached. HONESTY: an empty deals list is a real answer (e.g. no lightning deals running at this hour); a filter Amazon did not apply (filter_check not_applied, e.g. a category_id that is not one of the marketplace's deals departments) is refused as an error, never billed, instead of serving the unfiltered page; unverified filters are served, so say so before relying on them; there is no total count (has_more says whether the last page came back full) and no deal start time; ends_at only where Amazon shows a countdown; list_price is Amazon's reference price with its own label (RRP, Was, Typical ...), null when the page shows none. LATENCY is SECONDS: ~10-30s a page (pages=5 up to ~2 min); an identical request within 15 min may come from our cache in milliseconds. MARKETPLACES us, uk, de, ca, au, fr, it, es, jp, mx, br (no Walmart). COST API key required (the free no-signup lane cannot run live fetches). 1 credit per deals page fetched that returned at least one deal, whatever its size (30, 60, 90 or 120 deals are all 1 credit, so page_size=120 gives the most deals per credit), cached or fresh; a page with no deals, an empty list, a blocked or busy fetch and bad input are never billed.

NameRequiredDescriptionDefault
urlNoOptional: an Amazon deals URL (/deals, /events/deals or /gp/goldbox). The host decides the marketplace and its query string is kept (e.g. a filtered deals page copied from the browser).
pageNo1-based page of the deals list.
brandNoA brand id from facets.brands of a previous answer (e.g. 811979|dreame).
pagesNoConsecutive pages merged into one answer, starting at page (stops early on a short page). 1 credit per page that returned deals.
countryNoThe Amazon marketplace whose deals page to read. Required unless url is given; with url it must match the URL's marketplace.
discountNoRainforest form of min_discount (50_percent_off = at least 50% off). Not together with min_discount.
max_priceNoMaximum deal price in the marketplace currency (Amazon applies whole units; a fraction is rounded up).
min_priceNoMinimum deal price in the marketplace currency (Amazon applies whole units; a fraction is rounded down).
page_sizeNoDeals per page; Amazon serves steps of 30 only. Every page is 1 credit whatever its size, so 120 gives the most deals per credit.
collectionNoAny other collection id from collections[] of a previous answer (collections differ per marketplace and over time). Not together with deal_types.
deal_typesNoOne of Amazon's stable deal collections. Not together with collection.
category_idNoA deals department id from categories[] of a previous answer (Amazon applies one department at a time).
max_discountNoMaximum percent off (0-100). Same marketplaces as min_discount (refused on it, fr, es).
min_discountNoMinimum percent off (0-100). Amazon applies it on the us, uk, de, ca, au, mx, jp and br deals pages; amazon.it, amazon.fr and amazon.es have no discount filter, so there it is refused (not_applied, never billed): ask without it and filter on percent_off.
minimum_ratingNoOnly products rated at least this many stars (1-4).
prime_exclusiveNotrue = Prime Exclusive deals only.

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description is not the sole source of that information. The description does add substantial operational context: filter refusal vs. verified application (filter_check), that empty results are legitimate answers, absence of a total count and deal start time, and the 15-minute cache window. However, it omits some details that would help an agent plan calls, such as whether `pages` pagination interacts with `page` in a specific order beyond 'starting at page', and what 'partial' in pagination means. A 3 reflects solid but not exhaustive behavioral disclosure.

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

Conciseness5/5

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

Front-loaded with purpose and scope, then USE WHEN, DON'T USE, RETURNS, HONESTY, LATENCY, MARKETPLACES, COST. Every section serves a distinct invocation concern. Although long, the length is justified by 16 parameters, no output schema, and the need to document side effects and cost. It avoids gratuitous repetition, though the credit rule is stated twice (in COST and in `page_size`).

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?

No output schema exists, so the description carries the return-value burden. It enumerates the full shape of `deals[]`, `categories[]`, `collections[]`, `facets`, `selected_filters`, `filter_check`, `pagination`, `amazon`, `observed_at` and `cached`. It also discloses the critical honesty constraints (empty list is real, unapplied filter is refused and unbilled, unverified filters are served) that an agent needs to interpret results safely.

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?

With 100% schema description coverage, baseline is 3. The description adds meaning beyond the schema: it explains that `deal_types` values are 'stable deal collections', that `category_id` values come from `categories[]` of a prior answer, that `collection` ids vary by marketplace, and that `page_size=120` maximizes deals per credit. These are practical semantics that help an agent choose values correctly, though some overlap with schema text.

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?

Opens with a specific verb+resource ('LIVE Amazon Today's Deals ... the deals page of one marketplace') and immediately enumerates the filter surface (department, deal collection, discount, price, Prime, rating, brand). An agent can distinguish this from `offers`, `product`, `serp`, `shopping` and `bestsellers` without opening anything else.

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

Usage Guidelines5/5

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

Explicit USE WHEN block enumerates concrete user intents (today's deals, lightning deals in a department, coupons, deals ending today), and the DON'T USE block names four sibling tools and the exact scenario that routes to each. Both the positive and negative routing conditions are stated.

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

keyword_rankingsA
Read-onlyIdempotent
Inspect

Page 1 of Amazon search for a keyword, as Logimu last OBSERVED it (head search terms taken from Amazon's own autocomplete, each observed about once a week, all departments; amazon.com from one US delivery ZIP): the organic order with product facts (title, brand, price, rating) and each product's latest observed buy box (seller, AMZ / FBA / FBM, other sellers), the sponsored units present in the page HTML (Sponsored Brands banners and videos, server-rendered Sponsored Products; ones Amazon loads later by JavaScript are counted as slots only), the Overall Pick (Amazon's Choice) holder, Amazon's result count, page_summary (organic slots by brand and by buy-box seller, Amazon's own buy boxes, FBA / FBM, Sponsored Brands units by brand) and the products that entered or left page 1 since the previous observation, all dated. history=true adds every weekly observation and the rank series of the page's products. USE WHEN the user asks which products, brands or sellers hold page 1 for a search term, who advertises on it, or how the page changed. All 11 Amazon marketplaces (country). NOT volume figures (Amazon publishes none for search terms and none is implied) and NOT live: a dated weekly sample, and the same search minutes apart differs by a few products - for a live page use the serp tool, for what Amazon suggests for a seed the keywords tool, for the keywords a product shows up for product_keywords. A keyword outside the observed set is free (keyword_not_found). COST: paid plan required (listed only for keys on a paid plan); 1 credit (+0.5 with history when more than one observation exists). Counts against the derived daily cap (default 2,000 calls per account).

NameRequiredDescriptionDefault
countryNoAmazon marketplace: us (amazon.com, default), uk, de, ca, au, fr, it, es, jp, mx or br, each searched in its own language. us and uk are read in full about weekly; the other nine started 2026-10-29 / 10-30 and fill in week by week (coverage says how far).us
historyNoAlso return every weekly observation and the products' rank series; +0.5 credit when more than one exists.
keywordYesA search term, e.g. 'micro sd card 128gb high endurance' (case-insensitive).

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial context beyond them: a weekly dated sample rather than live data, minute-to-minute variance of a few products, JavaScript-loaded sponsored units counted as slots only, geographic/locale scope, paid-plan requirement, 1 credit (+0.5 with history), and the derived daily cap.

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

Conciseness4/5

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

Content is front-loaded and nearly every clause carries information — scope, cadence, exclusions, cost. The structure is weakened by a very long run-on sentence with heavy parenthetical nesting, which makes the return-payload list harder to scan than it needs to be.

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?

With no output schema, the description carries the full burden of describing return values and does so in detail (page contents, page_summary breakdowns, change tracking, history mode). It also covers coverage caveats for the nine newer marketplaces and the cost/cap model, leaving nothing an agent needs before calling.

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

Parameters3/5

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 keyword (case-insensitive, with example), country (11 marketplaces with per-market reading cadence), and history (weekly observations plus rank series, +0.5 credit). The description largely restates these, adding only the aggregate 'all 11 marketplaces' framing and the cost implication, so the baseline 3 applies.

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 — page 1 of Amazon search for a keyword as last observed — and enumerates exactly what is returned (organic order with product facts, buy box, sponsored units, Overall Pick, result count, page_summary, entrants/leavers). It explicitly distinguishes itself from serp, keywords, and product_keywords, so an agent can route correctly without opening a schema.

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

Usage Guidelines5/5

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

Provides an explicit 'USE WHEN' trigger (which products/brands/sellers hold page 1, who advertises, how the page changed) and explicit exclusions with named alternatives: serp for a live page, keywords for Amazon suggestions, product_keywords for a product's ranking terms. It also states volume figures are not available and that unobserved keywords are free (keyword_not_found).

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

keywordsA
Read-onlyIdempotent
Inspect

Amazon's OWN autocomplete suggestion lists for a seed term, from Logimu's continuous harvest (since Aug 2026, 11 marketplaces): up to 6 lists - one per crawled prefix / department - each term with its position 1-10 WITHIN that list, when it was first and last observed and the marketplaces it was observed in, plus related observed vocabulary starting with the seed. history=true adds every observation of each list since the harvest began (a term entering, leaving or moving position). compare='us,uk,de' instead returns the seed's primary list on each marketplace and a matrix of positions per marketplace. USE WHEN the user asks what buyers type for X, wants listing / backend keyword language, seeds for product research, or how a term's suggestions differ by country. NOT volume figures (Amazon publishes none for its suggestions and none are implied), NOT a product-ranking map - which products appear on page 1 for a term is keyword_rankings, the keywords a product shows up for is product_keywords. Positions are comparable only within one list. COST: paid plan required (listed only for keys on a paid plan), 1 credit per lookup or compare, +0.5 with history when at least one closed observation exists; an unknown seed is free. Counts against the derived daily cap (default 2,000 calls per account).

NameRequiredDescriptionDefault
seedYesA seed term or prefix, at least 3 characters, e.g. 'electric toothbrush'.
compareNoComma-separated marketplaces to compare instead of one lookup, e.g. 'us,uk,de' (2-11).
countryNoAmazon marketplace (ignored when compare is given).us
historyNoAlso return each list's observation history (+0.5 credit when a closed observation exists).

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial context beyond them: paid-plan gating, credit cost per lookup and history surcharge, free unknown seed, and the derived daily cap. It also discloses a key analysis constraint ('positions are comparable only within one list'), which is not in any structured field.

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

Conciseness4/5

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

Front-loaded with the resource and output shape, and each sentence carries information (mode behavior, use cases, exclusions, pricing). It is a single dense paragraph that runs long, but no sentence is filler.

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?

With no output schema, the description fully specifies the return shape for both modes, plus cost model, rate limit, and interpretation caveat. An agent has everything needed to call it correctly and to set user expectations.

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, but the description adds genuine semantics: history=true means every observation of each list (entering, leaving, moving position), and compare returns a primary list plus a position matrix per marketplace. It stops short of explaining the country-vs-compare precedence, which the schema itself covers.

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+resource ('Amazon's OWN autocomplete suggestion lists for a seed term') with the exact output shape (up to 6 lists, position 1-10, first/last observed, marketplaces, related vocabulary). Explicitly distinguishes itself from siblings by naming keyword_rankings and product_keywords as the tools for adjacent questions.

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

Usage Guidelines5/5

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

Provides an explicit 'USE WHEN' clause (buyer language, backend keywords, product research seeds, per-country differences) and 'NOT' exclusions (not volume figures, not a product-ranking map) with the correct alternative named for each exclusion.

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

list_trackedA
Read-onlyIdempotent
Inspect

LIST the products this API key tracks (track_product): each with its status, interval, read (offers or product_page), expiry, whether the hot lane has picked it up, the lane's last and next read, plus the plan's tracking allowance (snapshots a day: total, used, remaining). USE WHEN the user asks what is being tracked, whether a tracking is live, how much allowance is left, or wants to stop one (the id goes to DELETE /v1/track/{id} on the REST API). Stopped trackings stay listed for 30 days. COST 0 credits. Paid plans only.

NameRequiredDescriptionDefault
asinNoOnly these products: one ASIN or up to 500 comma-separated (2026-10-30).
limitNoMaximum rows to return.
offsetNoRows to skip (paging; total says how many there are).
statusNoOnly trackings in this state (default: all, newest first).
countryNoOnly this marketplace's trackings (default: every marketplace).
events_forNoA tracking id: return that tracking's webhook events instead of the list - which notify_if threshold fired on which observation, the payload, and the delivery state (pending / delivered / failed, attempts, last error).

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare a safe read (readOnlyHint, idempotentHint, non-destructive), and the description goes further with cost (0 credits), plan gating (paid plans only), and the 30-day retention of stopped trackings. Those are non-obvious operational facts an agent cannot get from structured fields.

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

Conciseness4/5

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

Front-loaded with the verb and scope, and every clause carries information (returned fields, triggers, retention, cost, plan restriction). It is a single dense run-on block with capitalized emphasis rather than cleanly separated sections, which slightly hurts scanability.

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?

With 6 optional parameters, no output schema, and a dual-mode events_for parameter, the description supplies the return shape, the retention window, the cost, and the follow-up delete path. An agent has everything needed to call it correctly and to interpret the result.

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

Parameters3/5

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

Schema description coverage is 100%, including the mode-switching events_for parameter and both enums, so the schema carries parameter meaning. The description adds no filter syntax or usage nuance beyond listing returned fields, which is the expected baseline-3 case.

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?

Specific verb (LIST) plus resource (the products this API key tracks), and it names the paired sibling track_product so the agent can distinguish creation from enumeration. It also enumerates the returned fields, which matters because there is no output schema.

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?

Explicit 'USE WHEN' triggers cover the main intents: what is tracked, whether a tracking is live, remaining allowance, and stopping one (with the DELETE /v1/track/{id} handoff). It lacks an explicit 'use X instead when...' routing against other list-ish siblings, so it falls short of a 5.

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

market_listsA
Read-onlyIdempotent
Inspect

Ranked LISTS from Logimu's observations, 25 per page: kind=brand_movers (brands gaining or losing distinct buy-box sellers fastest over 30 or 90 days), seller_movers (sellers whose buy-box footprint grew or shrank most), top_brands (brands ranked by observed buy-box days / sellers / control_score / asins / revenue / amazon_share, optionally within a root category_id), top_sellers (third-party sellers ranked by brands / buybox_days / asins / revenue - the cross-brand operators), top_categories (categories ranked by asins / brands / heat / revenue / price / sellers, root categories by default, or the children of parent_id). USE WHEN the user wants to DISCOVER brands, sellers or categories rather than look one up - sourcing leads, brands under seller pressure, the biggest resellers, which categories are hot. Then drill in with the brand / seller / category tools. All 11 Amazon marketplaces. COST: paid plan required (listed only for keys on a paid plan), 1 credit per page of 25 rows returned (an empty page is free). Daily cap per account on the derived family (default 2,000 calls).

NameRequiredDescriptionDefault
kindYes
pageNo
sortNotop_*: the ranking field (see description).
windowNomovers: comparison window in days.
countryNoAmazon marketplace.us
directionNomovers: gaining (up) or losing (down).up
parent_idNotop_categories: list this category's children instead of roots.
category_idNotop_brands: root category id to narrow to.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/non-destructive, and the description adds what they cannot: paid-plan gating, 1 credit per page of 25 rows, empty pages free, a 2,000-call daily cap on the derived family, and that all 11 Amazon marketplaces are covered. This is exactly the kind of cost/quota context that prevents surprise failures.

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

Conciseness4/5

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

Every sentence carries information and the key constraint (kinds) is front-loaded, but the whole definition is one dense run-on paragraph mixing kind enumeration, usage, cost and marketplace coverage. A short bulleted split would scan faster at this length.

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 an 8-parameter, 5-mode discovery tool with no output schema, the agent gets modes, ranking semantics, pagination size, marketplace scope, cost model and next-step tools. Nothing needed to call it correctly is missing.

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?

Goes well beyond the schema by mapping ranking fields to each kind (e.g. top_brands by buy-box days / sellers / control_score / asins / revenue / amazon_share, top_sellers by brands / buybox_days / asins / revenue) and by explaining window, direction, parent_id and category_id in context. It stops short of giving the literal accepted `sort` string values per kind, leaving the agent to translate prose field names into enum-like values.

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+resource (ranked LISTS from Logimu's observations) and then enumerates all five kinds with exactly what each ranks. It is unambiguously distinct from the lookup-oriented siblings (brand, seller, category) which it explicitly contrasts against.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use rule ('USE WHEN the user wants to DISCOVER brands, sellers or categories rather than look one up'), lists concrete triggers (sourcing leads, brands under seller pressure, biggest resellers, hot categories), and names the follow-up tools for drilling in.

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

offersA
Read-onlyIdempotent
Inspect

LIVE Amazon offers page for one product: every seller offering it right now, read from Amazon's 'All offers' view at request time, every page of it (up to 10). Each offer has the seller and seller_id, price, shipping_cost, condition, buy box, FBA / FBM / Amazon, Prime, ships-from, the delivery promise and the seller's feedback record; the answer adds the buy box and the page's own header (title, image, rating, review count). No product page is fetched. USE WHEN the user asks who sells a product right now, wants every current offer, the cheapest new or used offer or the buy-box winner as of this minute, or needs a fresh seller list before buying, sourcing or repricing. DON'T USE for brand, BSR, listing content, reviews or price / offer history (product), for a keyword search (shopping, serp) or for a brand's or a seller's long-run buy-box record (brand, seller). RETURNS asin, marketplace, observed_at, title, image_url, rating, reviews_count, currency, price (the buy box), buybox_seller, buybox_seller_id, seller_count, no_sellers, pages_fetched, complete (false = Amazon stopped serving the offers pages part-way: the list is the part read, with partial_reason and a note), buybox_condition / buybox_condition_source / buybox_condition_detail (new | used | null = no featured offer; the pinned offer's condition text or the used storefront's name, e.g. Amazon Resale), current_sellers (sellers[] buy box first, then price ascending: seller, seller_id, price, shipping_cost, condition, condition_class, is_buybox, is_fba, is_prime, fulfillment, ships_from, delivery, seller_rating, plus buybox_days_30d and the 30-day buy-box shares from our observations; offer_count, used_offer_count, lowest_new, lowest_used), fulfillment (offer counts by AMZ / FBA / FBM, whether Amazon sells or holds the buy box) and seller_ratings; with gtin also gtin_resolution (source, confidence, barcode_verified). HONESTY: no_sellers=true means Amazon lists no offer for the product right now, an answer confirmed by a second, independent fetch before it is served; a fetch that fails is reported as an error, never as no sellers. LATENCY is SECONDS: typically 4-12s (one page ~4s; a long list walks every page). MARKETPLACES us, uk, de, ca, au, fr, it, es, jp, mx, br (no Walmart). COST API key required (the free no-signup lane cannot run live fetches). 0.5 credit when the answer carries at least one offer; a no-offers answer, an ASIN Amazon does not have, a barcode nothing resolves and a failed or busy fetch are never billed.

NameRequiredDescriptionDefault
zipNoOptional (2026-10-14): a US 5-digit ZIP - the offers page as Amazon shows it to a shopper at that ZIP, with location (Amazon's confirmed 'Deliver to' answer) and deliverable (whether the item is offered to that ZIP right now; Amazon Fresh and Whole Foods items deliver only to some ZIPs, and an out-of-area ZIP shows the same unavailable box as a stock-out). Page 1 of the offers only, a one-off session, nothing stored. country=us only. 1 credit when the answer carries an offer, and (since 2026-10-29) for a verified not-deliverable answer (the ZIP confirmed on the page, the offers page read, zero offers: not_deliverable_verified true); a ZIP Amazon rejects is guidance, never billed, as are deliverable null, a 404 and a failed fetch. A session at a ZIP is kept a few minutes per account, so this check right after a serp zip= search on the same ZIP skips the warm-up.
asinNoThe product's 10-character Amazon ASIN (a print book's ISBN-10 works too). Provide asin or gtin.
gtinNoA barcode instead of an ASIN: UPC-12, EAN-13, GTIN-14 or ISBN-13. Resolved cheapest evidence first: a listing we observe that carries it, a book's ISBN-10, the same product on another Amazon marketplace, then Amazon's own search (organic results only). gtin_resolution says which, and barcode_verified whether the listing itself carries the barcode. A barcode nothing resolves is never billed.
countryNoThe Amazon marketplace to read the offers page on.us
include_usedNotrue also lists the used, refurbished, open-box and collectible offers in current_sellers.sellers. Either way current_sellers carries used_offer_count, lowest_new and lowest_used, and every row its condition. Not billed extra.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (readOnly, openWorld, idempotent, non-destructive), the description discloses that no product page is fetched, up to 10 offers pages are walked, latency is typically 4-12 seconds, an API key is required, and billing rules are stated precisely. It also explains the honesty guarantee around no_sellers and complete=false partial results, which is exactly the kind of behavioral context an agent needs.

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

Conciseness4/5

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

The description is front-loaded with purpose, then USE WHEN/DON'T USE, then returns and operational caveats. It is long and dense, but most of the length is justified by the absence of an output schema and the need to explain completeness, latency, markets and billing.

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 live-fetch tool with five parameters and no output schema, the description is complete: it enumerates the return fields, explains partial results and no-offer honesty, lists supported marketplaces, states latency, and covers billing and API-key requirements. Nothing critical is left for the agent to infer.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents asin, gtin, zip, country and include_used in detail. The description reinforces a few points such as gtin_resolution and the ZIP session behavior, but it does not add substantial meaning beyond the already-rich schema, so baseline 3 is appropriate.

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?

The description states a specific verb and resource: it returns the live Amazon offers page for one product, every seller offering it right now, read from the 'All offers' view at request time. It explicitly distinguishes this from product, brand, seller, shopping and serp tools, so an agent can select it without opening a schema.

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

Usage Guidelines5/5

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

It provides explicit USE WHEN conditions: who sells a product right now, every current offer, cheapest new/used offer, buy-box winner, or a fresh seller list before buying, sourcing or repricing. It also gives explicit DON'T USE guidance pointing to product, shopping, serp, brand and seller for adjacent needs.

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

productA
Read-onlyIdempotent
Inspect

Full dossier for ONE known product: its current snapshot plus its observed history. USE WHEN the user has a specific ASIN, Walmart item ID, product link, or a product_id returned by shopping or search, and asks about price history, historical prices, price changes, 30-day history, stock history, seller history, buy-box history, historical analysis, 'analyse this product', 'is this a good buy', 'has the price moved/dropped', 'who is selling this', 'is it in stock'. This is the ONLY tool that returns history: shopping and search return current values, so any historical question about a product they listed comes here. DON'T USE to discover products from a keyword (use shopping) or to pull a filtered list (use search). RETURNS current price, BSR, rating, review count, stock, buy-box seller and seller count, plus an observed_at freshness stamp, full price_history and stock_history back to first observation, change events tagged with the buy-box seller at each change, the current all-seller offer table with 30-day buy-box days (each seller row carries fulfillment AMZ/FBA/FBM and delivery days), a fulfillment block (buy-box AMZ/FBA/FBM, offer counts, whether Amazon sells and holds the buy box, buy-box delivery days and dispatch latency), the bought-past-month badge (measured aggregate buyer behavior, not an estimate), brand stats, and since 2026-09-27: dimensions (item weight + package size as printed plus parsed metric weight_g / *_cm), deal_history (list price, savings and coupon/promotion text as segments of consecutive observations, with a current view), bought_past_month_history (the badge over time; null = page seen without a badge), rating_history (rating_count + rating per observed day with ratings_gained_30d/90d), and variation_coverage (the variation matrix as last seen with, per child, whether we track it and its latest 30-day price - current state, not history). Since 2026-11-05 every Amazon answer also carries rating_breakdown, Amazon's star histogram: percent_by_stars (keys 5 to 1, the whole percentages the page prints), count_by_stars_approx (percent x rating_count, rounded - approximate), the rating_count and rating of that same page, observed_at and source (live = the page this call read, cache = the newest stored page that showed one); null when no page we read showed one. rating_breakdown_history (also since 2026-11-05) holds one such breakdown per observed day, oldest first: {date, percent_by_stars, rating_count, rating, observed_at}, every value of a point from one page (the day's newest that showed a histogram); history_only carries it too. With offer_history=true every per-seller point also carries that day's shipping cost, fba and prime, and the answer carries buybox_price_history (2026-10-09): the lowest buy-box price of every observed day, oldest first, each point labelled source offers (our offer observations, every Amazon marketplace, from 2026-04-17) or daily_snapshot (the legacy daily snapshot, Amazon US back to Nov 2023) - the deepest price series we hold; a gap between two dates is a stretch we did not observe. Since 2026-10-14 every Amazon answer also carries buybox_price_points_hot: every all-offers-page observation of the last 30 days, newest last, {ts, price, seller, seller_id, fulfillment, offer_count} - sub-daily for ASINs in our hot lane, which refreshes popular and customer-polled ASINs every few hours (null when none; history_only carries it too) - and tracking: the lane's state for the ASIN (hot, interval_min, last_fetched_at, read = which page it reads) or null. Since 2026-10-29 every Amazon answer also carries bsr_points_hot: every sales-rank reading of the last 30 days, newest last, {observed_at, bsr, bsr_category, bsr_leaf, bsr_leaf_category}, one per product-page read that showed a rank (bsr_history keeps one per day; null when none; history_only carries it too). Since 2026-10-15 Amazon answers carry buybox_condition (new | used | null = no featured offer; with buybox_condition_source product_page | offers_page and buybox_condition_detail: the pinned offer's condition text, used_only_buybox, or the used storefront's name - Amazon Resale / Amazon Warehouse win the buy box like any seller and read as Amazon retail before), buybox_state (what the lane's newest all-offers read saw: in_stock | no_buybox | out_of_stock, with buybox_state_observed_at and stock_state_source when it decided stock_state; stock_state, in_stock and out_of_stock always agree), and on LIVE answers variation_status (page_is_sibling | page_is_other | null) + page_asin when Amazon served another ASIN's page for the one asked (cache answers: null); unit_price on LIVE answers = Amazon's per-unit price of price where the page prints one ({symbol, value, currency, raw, per}; null otherwise); with full_offers, offers_complete (false = the offers pages stopped part-way, offers_partial_reason says why). Amazon answers also carry the observed product-page content, the byline (authors[] with role_norm author/narrator/illustrator/editor/translator + author for books, audiobooks, music; 2026-09-29), the book/media format (format, format_norm, and formats[]: every format of the book, each its own ASIN with price and membership subscription_price, plus family_asin; 2026-09-30) block: description (with description_source), feature_bullets, images, breadcrumbs, variations with variation_count and parent_asin, stamped content_observed_at — content_observed_at:null with empty arrays means the content crawl has not captured this ASIN yet, never 'this product has no description/gallery'. For the ~17% of the catalog with no overall rank (media, books, niche items), bsr_leaf and bsr_leaf_category carry the best category rank instead. Every response carries a data_source field naming the marketplace the numbers were observed on (e.g. 'amazon US marketplace — observed listings') — attribute prices to that source when presenting them; they are marketplace listings, not manufacturer or site-wide prices. MARKETPLACES us, uk, de, ca, au, fr, it, es, jp, mx, br, walmart. Walmart takes a numeric item ID (or gtin= with the item's UPC) and returns the intelligence blocks plus its listing content: image_url, description, breadcrumbs, highlights (spec name/value pairs), warnings, upc, rating/review_count, was_price, in_stock, and shipping_cost per seller; mode=live reads the walmart.com page now (2 credits, typically 8-15 s, one page: the cheapest other seller is not fetched; location names the store it was priced for) and mode=auto serves our record when observed within max_age_days, else reads live. COST paid plans only: the user signs in with their Logimu account or passes an API key (the no-signup lane has the shopping tool only). 0.5 credits from cache with everything included - bsr_history and offer_history too, no extra charge since 2026-10-10 - and 1 for a live scrape (2 on Walmart); history_only=true returns just the history series (rank, offers, buy-box price, rating_history, rating_breakdown_history) for 0.05 credit. Misses and partial scrapes are never billed; a miss may return a hint (found on another marketplace, or retry with mode=live). SELLER FEEDBACK (2026-09-18): every response carries seller_ratings - one entry per seller the answer names (current offers, cheapest new/used, buy-box holder and, with offer_history, every historical seller) with seller_positive_pct, seller_feedback_count, seller_rating and observed_at from a nightly seller-feedback table; offer_history.sellers[] rows carry the same fields directly. Amazon's own offers have no feedback. Not billed.

NameRequiredDescriptionDefault
asinYes10-character Amazon ASIN, or a numeric Walmart item ID when country=walmart. Provide either asin or gtin.
gtinNoGTIN / UPC / EAN barcode (12, 13 or 14 digits; punctuation and leading zeros are tolerated), resolved to an ASIN in the requested marketplace. USE WHEN the user gives a barcode instead of an ASIN — scanned off a package, from a supplier sheet, or copied from a listing. A barcode can legitimately map to several ASINs; the best match is returned and the rest are listed in gtin_matches. Never billed when the barcode is unknown to us.
modeNocache = stored observation only; live = force an on-demand scrape (Amazon only, takes a few seconds); auto = serve cache when fresher than max_age_days, otherwise scrape.auto
readNoWith track=true (2026-10-29): offers (default) re-reads the all-offers page; product_page re-reads the product page and its offers page, so every reading's sales rank lands in bsr_points_hot. A product-page read draws 2 snapshots of the allowance.offers
trackNoAnswer AND track (paid plans): after this answer the ASIN is pinned into our hot lane, which re-reads its all-offers page (or, with read=product_page, its product page) every `interval` for 30 days and adds every read to buybox_price_points_hot - the same as the track_product tool. No extra credits (the plan's daily tracked-snapshot allowance is drawn); the answer is served even when the tracking is refused and its `track` block says why. Amazon only.
countryNoMarketplace to look the product up in. Amazon: us, uk, de, ca, au, fr, it, es, jp, mx, br. walmart = Walmart US (United States only). Pick the marketplace matching the user's country or locale when known (a German user -> de, a Canadian user -> ca); default us.us
intervalNoWith track=true: how often the lane re-reads the product (1h = 24 snapshots a day).4h
bsr_historyNoAttach the full per-category BSR rank history (era-tagged daily points back to Oct 2023 for US; legacy top-100 segments are flagged censored). Amazon marketplaces only; needs a paid-plan API key (from $19/mo). Included in the record, no extra credits.
history_onlyNoReturn ONLY the stored history series - bsr_history, offer_history, buybox_price_history, rating_history and rating_breakdown_history - with no snapshot, content or seller table, for 0.05 credit. USE WHEN the user tracks price or rank over time for many products and does not need the current listing. Amazon marketplaces only, served from stored observations (mode=live is refused); needs a paid-plan API key (from $19/mo).
include_usedNoInclude used, refurbished, open-box and collectible offers in current_sellers (default false keeps the new-condition list). Every seller row always carries condition (the marketplace's own label) and condition_class (new, used_like_new, used_very_good, used_good, used_acceptable, used, refurbished, open_box, collectible, unknown); current_sellers always carries used_offer_count, lowest_new (the cheapest new offer - the list is buy-box first, not price-sorted) and lowest_used (the cheapest second-hand offer) even without opting in. With offer_history it returns one series per seller+condition_class. Cached, live and historical data alike; not billed extra.
max_age_daysNoHow old a cached observation may be before mode=auto triggers a live scrape.
offer_historyNoAttach the buy-box owner timeline and per-seller daily price series (US buy-box depth back to Dec 2024) plus buybox_price_history, the lowest buy-box price of every observed day (Amazon US back to Nov 2023). Amazon marketplaces only; needs a paid-plan API key (from $19/mo). Included in the record, no extra credits.
history_pointsNoWith offer_history: points per series, the most recent N observed days (default 500, max 20,000). Wider series are included too, no extra credits (offer_history.points_extra still reports the points beyond the default 10 x 500).
history_sellersNoWith offer_history: how many of the most-observed sellers carry a point series (default 10, max 50). Every observed seller is always listed as a summary row with points_total.

TDQS

A4.3/5.0
Behavior4/5

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

Goes well beyond the readOnlyHint/idempotent annotations: it discloses credit costs per mode (0.5 cache, 1 live, 2 Walmart live, 0.05 history_only), "misses and partial scrapes are never billed," typical Walmart live latency of 8-15s, paid-plan auth requirements, and the null-vs-empty semantics of content_observed_at. The main deduction is that these critical operational facts are buried mid-paragraph rather than surfaced, so an agent may miss them. Minor tension worth noting but not a contradiction: track=true creates a 30-day lane pin, a side effect the readOnlyHint annotation does not convey.

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

Conciseness2/5

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

One enormous run-on paragraph mixing purpose, return-field inventory, and changelog entries dated 2026-09-18 through 2026-11-05. The dated "since ..." clauses and exhaustive field enumerations (buybox_condition_detail, bsr_leaf_category, percent_by_stars...) are documentation noise that buries the front-loaded usage rules. Purpose and routing are front-loaded, which saves it from a 1.

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

Completeness4/5

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

With 14 parameters, no output schema, and a very large return payload, the description does supply return-value semantics that would otherwise be unknown, including freshness stamps, null meanings, and marketplace attribution. It is complete in coverage, though its bulk and disorganization make it harder to use than a structured breakdown would be.

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 still adds value by tying parameters to outcomes, e.g. mode=live meaning a paid on-demand scrape with 2 credits on Walmart, history_only returning only history series for 0.05 credit, and track=true duplicating the track_product tool behavior. It explains interactions between parameters (read with track, history_points with offer_history) that the schema alone only implies.

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?

The opening sentence gives a specific verb and resource with scope: "Full dossier for ONE known product: its current snapshot plus its observed history." It then explicitly separates itself from siblings by stating "This is the ONLY tool that returns history: shopping and search return current values." An agent can identify the tool's role and its unique value without reading the schema.

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

Usage Guidelines5/5

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

Provides explicit when-to-use triggers ("user has a specific ASIN, Walmart item ID, product link, or a product_id... and asks about price history... 'is this a good buy'") and explicit when-not-to-use rules ("DON'T USE to discover products from a keyword (use shopping) or to pull a filtered list (use search)"), naming the alternatives. Input prerequisites (ASIN vs. Walmart item ID vs. gtin) and cost/auth conditions are also stated.

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

product_keywordsA
Read-onlyIdempotent
Inspect

REVERSE ASIN on Amazon (11 marketplaces, country): every observed keyword (head search terms taken from Amazon's own autocomplete, page 1 observed about once a week) whose latest page 1 shows the product, organically with its rank or in a sponsored unit present in the page HTML, with the keyword's result count, the Overall Pick badge and the date; organic first, best rank first, with totals (keywords, organic, top 10, sponsored, Overall Pick). Pass asins (up to 10, the product first) to COMPARE it with competitors: each keyword row adds every competitor's organic rank, asins_on_page and gap (a competitor on page 1 organically, the product not); gaps=true keeps only those. history=true adds the first product's rank on each keyword over time. USE WHEN the user asks which keywords a product (theirs or a competitor's) shows up for, where competitors are visible and they are not, or how a product's position on a term moved. Coverage is head search terms and page 1 only, so a product shows fewer keywords than a full search index would. NOT volume figures and NOT live: dated weekly samples. A product not seen on any observed page is free (asin_not_found). COST: paid plan required (listed only for keys on a paid plan); 1 credit per 25 keywords returned per ASIN compared (+0.5 with history when a keyword has more than one observation). Counts against the derived daily cap (default 2,000 calls per account).

NameRequiredDescriptionDefault
asinNoA 10-character Amazon ASIN: the keywords it shows up for. Give asin OR asins.
gapsNoWith asins: only the keywords where a competitor is on page 1 organically and the first product is not.
asinsNoUp to 10 ASINs, the product first, then the competitors to compare it with.
limitNoKeywords per answer (1 credit per 25 returned, per ASIN).
offsetNoSkip this many keywords (paging).
countryNoAmazon marketplace: us (amazon.com, default), uk, de, ca, au, fr, it, es, jp, mx or br, each searched in its own language. us and uk are read in full about weekly; the other nine started 2026-10-29 / 10-30 and fill in week by week (coverage says how far).us
historyNoAlso return the first product's rank on each keyword in every observation; +0.5 credit when a keyword has more than one.
placementNoOrganic and sponsored (default), organic only, or sponsored only.all

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, and the description adds substantial context beyond that: weekly sampling cadence, page-1-only coverage, the free asin_not_found outcome, credit pricing (1 per 25 keywords per ASIN, +0.5 with history), and the daily cap. Missing is any statement about pagination limits or the shape/ordering of the returned totals, though ordering is partly described.

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

Conciseness4/5

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

It is front-loaded with the core definition and then layered with USE WHEN, coverage caveats, and COST, so an agent can stop reading early. The single dense paragraph is long and parenthetical-heavy, which slows scanning, but nearly every clause carries decision-relevant information.

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 an 8-parameter, no-output-schema tool this is unusually complete: it covers scope limits, cost accounting, paid-plan gating, a free failure case, ordering, and the comparison/history modifiers. An agent has everything needed to decide whether to call it and what the results mean.

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 earns more by explaining the comparison semantics behind asins ("the product first", competitor organic rank, asins_on_page, gap) and the exact effect of gaps=true and history=true. The country coverage caveat (us/uk weekly vs. nine markets filling in) also adds meaning the enum alone does not convey.

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?

"REVERSE ASIN on Amazon (11 marketplaces, country): every observed keyword ... whose latest page 1 shows the product" gives a specific verb-equivalent, resource, and scope. It distinguishes itself from sibling keyword tools by defining the reverse-lookup direction and by noting the organic-vs-sponsored distinction and result ordering.

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

Usage Guidelines5/5

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

The "USE WHEN" block names three concrete user intents (which keywords a product ranks for, where competitors appear and it does not, how a position moved), and the "NOT volume figures and NOT live" exclusions plus the "COST: paid plan required" prerequisite prevent the main misuses. Alternative routing is implicit via the cost/coverage framing rather than named siblings, but the when/when-not coverage is explicit.

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

sellerA
Read-onlyIdempotent
Inspect

Amazon SELLER profile by seller id, optionally with the products the seller sells. USE WHEN the user asks about a third-party seller / merchant / storefront (who they are, how they are rated, what they sell) - the seller id is the 'A...' code in /sp?seller=... or the seller_id on any offer the product tool returns. RETURNS seller (name, rating, lifetime and 12-month rating counts, positive %, is_amazon), feedback_summary per period (30 d / 90 d / 12 m / lifetime: average rating + count - Amazon no longer publishes positive/neutral/negative splits), rating_histogram, recent_feedback (up to 5 entries as date / rating / struck ONLY - never the buyer's name or text), and business (legal name, registration / VAT numbers, address, phone, email, representative) where the seller publishes it on Amazon - all 11 marketplaces; au and ca pages carry no business block, so it is null there. With products=true, also seller_products: mode=live the storefront as Amazon shows it now (the serp object, SECONDS), mode=cache the products we OBSERVED the seller offering (25 per page, buy-box days, observed price range, <100 ms). MODES for the profile: cache = our stored observation - the seller page as our tracker last read it (the full profile; sellers are re-read about every 14 days), or the page fetched in the last 24 h, or for sellers not stored yet the warehouse rating record; live = fetch the seller page now (5-20 s, up to ~30 s); auto (default) = stored when younger than max_age_days (default 14), else live. tracking{} says since when we have observed the seller (observed_first_seen), when last (last_observed) and how often - OBSERVED, never 'founded' or 'active since'. With history=true also history{}: the seller's rating change points (positive %, star rating, counts per 30 d / 90 d / 12 m / lifetime) and storefront-size points, oldest first, UTC - change points, each value holds until the next; the series starts 2026-10-04 at the earliest, so expect 1-2 points per seller for now. HONESTY: a 404 means Amazon has no seller page for that id on that marketplace (or we never observed it, in cache mode); a 502 is a collection failure, not a fact about the seller - retry. An empty storefront does not confirm the seller exists. LOOKUP: give seller_id, or name (resolved through observed buy-box data to the id, free). COST: paid plan required - the tool is listed only for keys on a paid plan (no free lane). Profile: 1 credit live, 0.5 from cache, auto bills what was served; history=true +0.5 once when at least one point comes back. Products: 1 credit per storefront page fetched (live) or per page of 25 observed products (cache). Feedback, business details and tracking are included at no extra charge. Not found, unavailable, blocked, empty storefront, empty history: 0. DERIVED (2026-10-05): brands=true adds the operator footprint - the brands this seller was observed winning the buy box on, with buy-box days (+1 credit per page of 25); network=true adds the connected sellers that win on the same brands (+1 credit).

NameRequiredDescriptionDefault
modeNoProfile lane (see description). products=true uses products_mode.auto
nameNoInstead of seller_id: the seller's display name as Amazon prints it (e.g. 'Total Office Solutions'). Resolved through observed buy-box data to the seller id; a name we have never observed, or one with no id on record, returns guidance - nothing is billed.
pageNoProducts page (cache: 25 per page; live: Amazon's page 1-10).
brandsNoAlso return the operator footprint: brands this seller was observed winning the buy box on (16 months), 25 per page (brands_page). +1 credit per page.
countryNoAmazon marketplace. No Walmart - seller pages are Amazon-only.us
historyNoAlso return history{} (rating + storefront-size change points, oldest first, UTC). +0.5 credit when non-empty.
networkNoAlso return connected sellers: sellers winning the buy box on the same brands, strongest overlap first (max 50). +1 credit.
max_pageNolive products only: auto-paginate up to this page (max 10); billed per page fetched.
productsNoAlso return the seller's products (billed separately, see description).
seller_idNoAmazon seller id: 'A' + 8-24 letters/digits.
brands_pageNo
max_age_daysNoauto only: how old the stored observation may be before fetching live (default 14 = the tracker's cadence).
products_modeNocache = observed products (fast); live = the storefront now (seconds).cache
history_pointsNohistory=true: the latest N change points per series (1-5000).

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark this read-only/idempotent, and the description still adds substantial non-structured context: HTTP status semantics (404 = no page or never observed, 502 = collection failure to retry), the fact that an empty storefront does not confirm existence, caching/refresh cadence (~14 days), and a full per-operation credit model. Nothing here is derivable from the annotations.

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

Conciseness4/5

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

Long, but front-loaded with purpose, USE WHEN, RETURNS, and modes before the cost block. Most sentences carry unique operational information; a few (mode/products_mode behavior) restate what the schema enums already say, which keeps it from a 5.

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?

No output schema exists, so the description carries the full return burden and does so explicitly: seller fields, feedback_summary periods, rating_histogram, recent_feedback contents and privacy limits, business block behavior per marketplace, and the products/history add-ons. An agent has everything needed to call and interpret results.

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 93%, so the schema already documents most parameters. The description still adds cross-parameter meaning the schema cannot: how mode=auto bills 'what was served', the live fetch timing (5-20s, up to ~30s), the cache page size of 25, and the +0.5/+1 surcharges for history/brands/network.

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?

Opens with a specific verb+resource: 'Amazon SELLER profile by seller id, optionally with the products the seller sells.' It also distinguishes itself from the sibling product tool by noting the seller id appears 'on any offer the product tool returns,' so an agent can route without opening either schema.

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

Usage Guidelines5/5

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

Explicit 'USE WHEN the user asks about a third-party seller / merchant / storefront (who they are, how they are rated, what they sell)' plus a concrete LOOKUP rule (seller_id or name). Costs and modes are also tied to concrete situations.

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

serpA
Read-onlyIdempotent
Inspect

LIVE Amazon search-results (SERP) fetch: a real browser navigates Amazon's search page RIGHT NOW and returns the parsed organic result grid plus everything around it. USE WHEN the user wants what Amazon's search page shows THIS MINUTE for a query — current ranking order, who is on page 1, sponsored/ad placements, related searches, refinement filters — or when the curated tools found nothing and the user wants Amazon itself checked. DON'T USE for ordinary product discovery (shopping is <100ms and curated), for filtered datasets (search), or for one known ASIN (product). RETURNS search_results (position, asin, title, link, image, rating, ratings_total, price, list_price, unit_price (Amazon's per-unit price, where the card prints one, never the price), recent_sales badge, sponsored, is_prime), search_information (Amazon's OWN result-count estimate — 'over 20,000' is an estimate, not a count), pagination, related_searches, refinements (round-trip: pass a refinements[*].value back in), ad_blocks / video_blocks (sponsored placements; their links are Amazon ad-redirectors, NOT clean product URLs) and brand_stores (organic store headers only — legitimately empty on sponsored-heavy pages). HONESTY: results per page is Amazon's choice (16-48, varies); sponsored is usually false because Amazon puts paid placements in separate carousels; is_prime false means 'no icon rendered', not 'not Prime'; recent_sales is the verbatim badge string in the page's own language; spelling_correction reports Amazon's autocorrect, it cannot disable it. LATENCY is SECONDS — typically ~8-13s, up to ~90s when the retry ladder runs; tell the user it is a live fetch. Every call is live: there is no cached SERP and no mode parameter. MARKETPLACES us, uk, de, ca, au, fr, it, es, jp, mx, br, walmart (live walmart.com search: 2 credits per results page, at most 3 pages a call, location names the store it was priced for; category_id and refinements are Amazon-only). COST API key required (the free no-signup lane cannot run live fetches). 1 credit per page ACTUALLY fetched — max_page=3 can stop at 2 when Amazon runs out; blocked fetches (502) and empty result sets are never billed. ZIP (2026-10-29, country=us only): pass zip (a US 5-digit ZIP) to search as a shopper at that ZIP sees it - a plain search at a city ZIP lists the local stores' items (Whole Foods, Amazon Fresh, local partners) beside shipped ones; store=wholefoods|fresh runs Amazon's own storefront search for that store's assortment at the ZIP. USE WHEN the user asks what a recipient at a ZIP can buy (groceries, same-day items), which store carries a query locally, or delivery fees / windows / minimums per item. The answer adds location (the result page's confirmed 'Deliver to'), store, empty_reason (null with results; no_results_at_zip or store_nothing_for_query_at_zip - the latter cannot tell a store that skips the ZIP from one with no match for the query), observed_at and request_metadata.zip_session (new | reused: a session at a ZIP is kept a few minutes per account, so a follow-up search or an offers zip= check on the same ZIP is fast). Per result: store (from the card's own store link, never guessed), delivery (Amazon's line as printed), delivery_terms {fee, window, free_over, membership, pickup, fastest, non_member} - the terms Amazon shows a signed-out shopper, Prime included; a field the line does not state is null, and NEVER report free delivery from a missing fee - and stock {state: in_stock|low_stock|out_of_stock|null, left} (null = the card shows no price and no stock line, availability unknown: check it with offers zip=). Results and their order are Amazon's own; this is discovery, not a stock check: confirm an item with offers zip= before the user buys. At most 3 pages a call. LATENCY typically 5-10 s for the first search at a ZIP, up to about a minute when Amazon challenges new sessions; about 1-2 s for a follow-up on the same ZIP. BILLING at a ZIP: 1 credit per page fetched, a VERIFIED empty page included (Amazon's own no-results text on a page that confirmed the ZIP, empty_reason set) - the one exception to 'empty never bills'; a block, a checkpoint page, an unconfirmed ZIP or no answer is a failure, never an empty answer, never billed; a ZIP Amazon rejects is guidance, never billed.

NameRequiredDescriptionDefault
qYesThe search query, exactly as a shopper would type it into Amazon's search box. Query in the marketplace's own language.
zipNoOptional (2026-10-29): a US 5-digit ZIP - the search as a shopper at that ZIP sees it, with the local stores' items, each result's store, delivery_terms and stock, and the page's confirmed location. country=us only; at most 3 pages a call. A verified empty answer (empty_reason set) is billed 1 credit. ZIP+4 is cut to 5 digits.
pageNoStart page (1-10).
storeNoOptional, with zip only: Amazon's own storefront search for that store's assortment at the ZIP (Whole Foods Market or Amazon Fresh). A local partner such as Lucky is reached through refinements with its p_n_alm_brand_id value. Cannot be combined with category_id.
countryNoAmazon marketplace to search, or walmart (a live walmart.com search).us
sort_byNoAmazon's own sort orders; default is Amazon's Featured.
max_pageNoAuto-paginate page..max_page and concatenate (positions stay continuous across pages). Max 10 pages per request; billed per page actually fetched.
category_idNoAmazon browse-node id to scope the search (becomes &node=).
refinementsNoAmazon rh= refinement value. Round-trips: feed back any refinements[*].value from a previous serp response.
exclude_sponsoredNoDrop inline sponsored results. Often a no-op — Amazon usually keeps paid placements in separate carousels outside the organic grid.
number_of_resultsNoTruncate the returned result list.

TDQS

A4.9/5.0
Behavior5/5

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

Although annotations already mark it read-only, open-world, idempotent, and non-destructive, the description contributes substantial behavioral context: live latency, credit billing rules, marketplace coverage, empty-result billing exceptions, sponsored-placement caveats, and ZIP-session behavior. These details go well beyond what annotations and schema disclose.

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

Conciseness4/5

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

The description is front-loaded and structured with USE WHEN, DON'T USE, RETURNS, HONESTY, LATENCY, COST, and ZIP sections, so an agent can navigate it. However, it is very long and repeats some latency and billing details, which keeps it from being maximally concise.

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?

Given the tool's complexity, 11 parameters, and lack of an output schema, the description is complete: it describes returned fields, caveats, billing, latency, marketplaces, and ZIP-specific behavior in enough detail to call the tool correctly. Nothing essential is missing for an agent deciding whether and how to use it.

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

Parameters5/5

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

Schema coverage is already 100%, but the description adds meaningful semantics for parameters: refinements round-trip, store combined with zip, zip behavior and billing, exclude_sponsored often being a no-op, max_page billing and page continuity, and Amazon-only category/refinements constraints. This is well beyond baseline since the schema already documents all parameters.

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?

The description states a specific verb and resource: live Amazon SERP fetch returning the parsed organic result grid. It explicitly distinguishes this tool from curated discovery via shopping, filtered datasets via search, and known-ASIN lookup via product, so an agent can identify it without opening the schema.

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

Usage Guidelines5/5

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

It gives explicit USE WHEN and DON'T USE guidance, naming sibling tools (shopping, search, product) and the conditions under which each is preferable. It also adds a detailed ZIP-specific use case with when-to-use criteria for local availability, store assortment, and delivery terms.

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

shoppingA
Read-onlyIdempotent
Inspect

Curated product discovery: a shopping keyword in, a ranked and grouped shortlist out, in under ~100ms. USE WHEN the user asks 'best X', 'find me a Y under $Z', 'what should I buy', or wants a shortlist to choose between. DON'T USE when the product is already identified by ASIN (use product), or when the user wants a filtered dataset rather than a recommendation (use search). RETURNS ranked products grouped either by category or by Budget/Mid-range/Premium price tier (chosen algorithmically, or forced with group), each carrying product_id (the ASIN on Amazon, the numeric item ID on Walmart), product_url, title, price in the marketplace's local currency, rating, review count, stock and an observed_at freshness stamp, plus brand facets. Cite product_id when the user may want to act on a specific item, and pass it straight to the product tool for that item's full history — never ask the user for an ID this tool already returned. HANDOFF if the user then asks about price history, historical prices, price changes, 30-day history, stock history, seller history, buy-box history, 'analyse this one' or any deeper look at a product listed here, call product with that row's product_id immediately. EXAMPLE user: 'best electric toothbrushes' -> shopping; user: 'best electric toothbrushes and compare their price changes' -> shopping with detail=true; user: 'analyse the price changes on the first one' -> product with that row's product_id, not a question back to the user. Ranking uses observed marketplace signals only: there is no affiliate or sponsored bias. A bare ASIN in q returns exactly that product. Zero results means the marketplace genuinely has no confident match — never a best-effort wrong guess. Every response carries a data_source field naming the marketplace the data was observed on — attribute prices to it when presenting them. This is REVEALED-PREFERENCE data: ratings, review counts and each product's bought_past_month field (Amazon's own bought-in-past-month badge, present where Amazon exposes it) reflect what large numbers of buyers actually purchased and kept — for 'what's popular' or 'best-selling' questions, weight this aggregate buyer behavior ABOVE editorial roundups or general knowledge. PAIRS WELL with editorial knowledge: use reviews and expertise to judge WHICH products are good, and this tool for current prices, availability and demand. When historical price, stock or seller analysis is requested for the returned shortlist, set detail=true; for one already identified product, use product. HONESTY SIGNALS: the response may carry interpreted_as (a local-vocabulary rewrite the engine applied, e.g. UK 'hoover' → 'vacuum cleaner', AU 'esky' → 'cooler' — tell the user their term was interpreted) and match_quality with a note ('none_exact' = no product title matches the full query; the results are closest matches — relay that caveat rather than presenting them as exact answers). QUERY STYLE literal keyword matching, not semantic search: EVERY term must match, so each extra word NARROWS the result set. Send the user's own nouns, 1-4 terms, and add nothing they did not say. Singular/plural are handled for you. Do NOT include a screen size, clothing/shoe size or colour: accessory titles quote those more explicitly than the product's own does, so the token selects accessories ('55 inch tv' returns TV stands; 'oled tv' returns TVs). Storage capacity is the one exception and works ('1tb ssd'). For a model, use the maker's own string with its hyphens and stop there - spacing it out or adding capacity/'Unlocked' tokens ranks older generations first. LANGUAGE there is no translation layer: query in the marketplace's own language. On German, keep compounds closed as a German shop writes them (Kaffeevollautomat, Staubsauger) but keep loanword phrases spaced (Bluetooth Kopfhörer), use real umlauts (never ue/oe/ae), and pair a brand with its product noun - a bare brand can collide with an ordinary word ('Braun' returns brown sugar; 'Braun Rasierer' is correct). ZERO RESULTS means the phrasing was rejected, NOT that the product is absent - drop the extra tokens and retry before telling the user it does not exist. MARKETPLACES us, uk, de, ca, au, fr, it, es, jp, mx, br, walmart. COST without signup 1 of 5 daily queries, without detail (detail=true needs a paid plan). Keyed: 2 credits, or 5 with detail=true. Empty result sets are never billed. detail=true attaches to EVERY product everything the basic product call carries (2026-09-28): current sellers with fulfillment and delivery, 30-day price/stock events, stock history, brand_stats, dimensions, deal/badge/rating history, the star-rating breakdown and its per-day history (rating_breakdown, rating_breakdown_history, from 2026-11-05), variation coverage, page content and up to 100 featured reviews, plus a response-wide seller_ratings array; only bsr_history and offer_history stay product-only.

NameRequiredDescriptionDefault
qYesWhat to search for, e.g. 'coffee maker'. Literal keywords, not semantic: every term must match, so extra or inferred words only narrow the result set. Query in the marketplace's own language - there is no translation. A bare ASIN returns exactly that product.
sortNorelevance (default) | price (cheapest first) | rating. USE price when the user asks for the cheapest, rating when they ask for the best-reviewed.relevance
brandNoRestrict to one exact brand. USE WHEN the user names a brand they want ('Anker charger'); prefer this over putting the brand in q.
groupNoHow to group the shortlist. auto = choose category or price tiers automatically; category = group by product category; price = group into Budget/Mid-range/Premium; none = one flat ranked list.auto
limitNoMax products to return (default 20).
detailNoAttach per-product intelligence to every product returned (30-day price and stock change events, full stock history and state, bought-past-month badge, current sellers). Keyed accounts only. 5 credits per query instead of 2.
formatNoBooks/media only: return only this format - kindle, paperback, hardcover, mass_market, audiobook, audio_cd, board_book, spiral, library_binding or other (comma-separate several). USE WHEN the user wants a specific edition ('LOTR in paperback', 'the audiobook').
countryNoMarketplace to search. Amazon: us, uk, de, ca, au, fr, it, es, jp, mx, br. walmart = Walmart US (United States only). Pick the marketplace matching the user's country or locale when known (a German user -> de, a Canadian user -> ca); default us. Prices are returned in that marketplace's local currency.us
collapseNotrue (default): one row per book, its other formats listed in the row's `formats` (each with its own ASIN and price). false: every format as its own row.
in_stockNoOnly products currently in stock.
max_priceNoMaximum price, in the marketplace's local currency. USE WHEN the user gives a budget or says cheap/affordable/under X — pass the number here rather than putting the word in q, where it is matched as a literal word in the product title and throws away real results.
min_priceNoMinimum price, in the marketplace's local currency. USE WHEN the user sets a floor ('at least £50', 'nothing cheap').
include_unavailableNofalse (default): only products with a current offer, so the shortlist is buyable. true: also list items that currently have NO offer on the marketplace (Amazon 'Currently unavailable': price null, in_stock false). USE WHEN the user asks about a specific discontinued or sold-out product; otherwise leave it off.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only cover read-only/idempotent/non-destructive safety, and the description adds genuinely new behavior: ~100ms latency, no affiliate or sponsored bias in ranking, zero-results semantics ('phrasing rejected, not absence'), interpreted_as and match_quality caveats the agent must relay, data_source attribution, and the full credit/billing model. It also enumerates what detail=true attaches, which is not derivable from 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.

Conciseness3/5

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

Front-loaded correctly — purpose, use/don't-use, and returns come first — but the body runs very long, with ALL-CAPS section headers packed into a single block and irrelevant versioning parentheticals ('2026-09-28', 'from 2026-11-05') that clutter the detail=true enumeration. The language/query-style material is useful but could be tightened considerably without losing signal.

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 13-parameter, no-output-schema discovery tool with many sibling alternatives, this covers everything an agent needs: routing, query construction rules per marketplace/language, cost implications, result-grouping behavior, and how to handle empty or low-confidence responses. No material gap remains for correct invocation.

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, but the description adds real meaning beyond the schema for q (literal keyword matching, every term narrows, omit sizes/colours, storage capacity exception, use the maker's own model string, query in marketplace language) and for detail (cost delta, what it attaches). These are non-obvious usage semantics that the property descriptions only partially encode.

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?

Opens with a precise verb+resource+output framing ('a shopping keyword in, a ranked and grouped shortlist out') and immediately distinguishes itself from the two nearest siblings by name (product for ASIN-identified items, search for filtered datasets). The response contents (grouping, product_id, price, rating, facets) are spelled out so an agent knows exactly what it gets back.

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

Usage Guidelines5/5

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

Explicit USE WHEN triggers are quoted as user phrasings ('best X', 'find me a Y under $Z'), and DON'T USE clauses name the alternative tool plus the condition that selects it. It also handles the follow-up routing case ('analyse the first one' -> product with that row's product_id) and the detail=true vs product() split for historical analysis.

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

track_productA
Idempotent
Inspect

TRACK a product: pin an Amazon ASIN into our hot lane so its all-offers page is re-read every hour or every 2, 4, 12 or 24 hours, for as long as the plan is active (or a ttl_days you set), with e-mail and webhook alerts on the thresholds you give; every read lands in the product's history as a sub-daily buy-box point (price, buy-box seller, fulfillment, offer count - buybox_price_points_hot on the product tool). read=product_page (2026-10-29) reads the product page and its offers page instead, so the SALES RANK is read too: every reading lands in bsr_points_hot (and its offers page in buybox_price_points_hot); such a read draws 2 snapshots of the allowance. USE WHEN the user wants to watch a product's price, buy box, seller count or sales rank more often than our normal cadence: repricing, MAP and buy-box monitoring, a competitor's listing, a launch, a deal, a book's rank. Posting the same ASIN again renews it and changes its interval. DON'T USE to read data (product, offers): tracking only schedules the reads. COST 0 credits: what a plan sells is a daily allowance of tracked snapshots (Solo 2,500 a day = 416 products every 4 hours, Starter 6,000, Growth 18,000, Standard 40,000, Scale 170,000, Volume 710,000); when the allowance is spent the answer says so with the upgrade link, and when only a longer interval fits it is granted (granted_interval). RETURNS id, asin, country, status (active / paused / expired / stopped), interval, read, granted_interval, requested_interval, snapshots_per_day (reads_per_day too for product_page), expires_at, in_lane, last_snapshot_at, next_due_at, pending (true until the lane picks it up, within ~10 minutes), allowance (plan, snapshots_per_day, used, remaining). action=stop ends a tracking at once (by id from list_tracked, or by asin + country) and releases its allowance; the row stays listed 30 days as stopped. BULK (2026-10-14): asins (up to 10,000) with action=track / stop, and action=sync to make the active set equal to a list (dry_run first). STOCK STATES: every read is in_stock (a buy box), no_buybox (offers, no featured offer) or out_of_stock (no offers, confirmed twice); availability_change / out_of_stock / back_in_stock alert on the transitions, price alerts compare buy-box prices only. Paid plans only (the allowance belongs to a subscription). MARKETPLACES us, uk, de, ca, au, fr, it, es, jp, mx, br (no Walmart).

NameRequiredDescriptionDefault
idNoWith action=stop: the tracking id (from list_tracked). Or give asin + country, or ids / asins.
idsNoWith action=stop: several tracking ids at once (up to 10,000).
asinNoThe product's 10-character Amazon ASIN (one product). Or give asins.
readNoWhich page each read fetches (2026-10-29): offers (default) = the all-offers page (buy box, price, every offer, stock); product_page = the product page and its offers page, so the sales rank is read too: every reading lands in the product tool's bsr_points_hot, and its offers page in buybox_price_points_hot as with offers. A product-page read draws 2 snapshots of the allowance (12h = 4 a day). Like interval, every call sets it: tracking the same ASIN again without read switches it back to offers.offers
asinsNoBulk (2026-10-14): up to 10,000 ASINs in one call - with action=track all get the same interval / ttl_days / alerts (results[] in input order: created / renewed / refused / invalid, the allowance consumed in input order, never all-or-nothing); with action=stop they are stopped; with action=sync they are the full list the active set becomes.
actionNotrack (default) creates or renews the tracking(s); stop ends one or many at once; sync (2026-10-14) makes the account's active set on one marketplace EQUAL to asins: missing ones are created, active ones not listed are stopped, the rest are left as they are - dry_run first to see the counts.track
countryNoThe Amazon marketplace to track the product on.us
dry_runNoWith action=sync: return what would be created and stopped without writing.
intervalNoHow often the lane re-reads the product (see read). A shorter interval costs more of the daily allowance (1h = 24 snapshots a day, 2h = 12, 4h = 6, 12h = 2, 24h = 1; twice that with read=product_page).4h
ttl_daysNoOptional: stop after this many days (1-365). Omit (or 0) and the tracking runs for as long as the plan is active - a lapsed plan keeps it 7 days, then it pauses and resumes with the plan.
notify_ifNoWith webhook_url and / or alert_email: the thresholds. price_below / price_above (a buy-box price), price_change_pct (percent move of the buy-box price since the last in-stock read), buybox_seller_change (true: a different seller holds the buy box, between two in-stock reads), offer_count_below / offer_count_above (a count), availability_change (true: the stock STATE changed - in_stock, no_buybox = offers exist but Amazon shows no featured offer, out_of_stock = no offers at all, confirmed by a second read; the event carries both codes), out_of_stock (true: shorthand for a change to out_of_stock), back_in_stock (true: a change to in_stock). {} attaches the webhook and fires on nothing.
alert_emailNoOptional: e-mail alerts for the notify_if thresholds - 'true' for the account's own address, or an address. One e-mail per event, at most 50 a day per tracking. 'false' detaches. Works with or without webhook_url.
webhook_urlNoOptional: an https URL Logimu POSTs to when a notify_if threshold fires on a new observation (signed X-Logimu-Signature: sha256=HMAC-SHA256(secret, body); the secret is returned once in webhook_secret). An empty string detaches it.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false and idempotentHint=true; the description adds the real behavioral profile: a plan-based snapshot allowance rather than credits, granted_interval fallback when only a coarser interval fits, pending ~10 minutes in the lane, plan-lapse retention of 7 days then pause, stop semantics (allowance released, row listed 30 days as stopped), sync making the active set equal to a list, and per-day email caps. Nothing contradicts the annotations.

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

Conciseness4/5

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

Front-loaded with the verb and the mechanism, and nearly every sentence carries operational detail. It is very dense and somewhat sprawling (STSATE abbreviations, dated changelog markers, marketplace list repeated from the schema), so it reads longer than strictly necessary.

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 13-parameter, nested, enum-heavy, no-output-schema mutation tool, the description covers cost, plan limits, return fields, bulk/sync, stop semantics, stock-state definitions and supported marketplaces. Nothing an agent needs to invoke it correctly is missing.

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% and the schema descriptions are already extremely detailed (read's 2-snapshot cost, interval-to-snapshot mapping, notify_if semantics), so the description can only add framing. It does add useful cross-parameter meaning — read interacts with interval and with idempotent re-track resetting read to offers — but much of the parameter exposition overlaps the schema rather than extending it.

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?

A specific verb (TRACK) plus resource (Amazon ASIN in the hot lane) and the mechanism (re-read all-offers page at an interval, history into buybox_price_points_hot). It explicitly contrasts with the sibling `product` tool for reading data, so an agent can distinguish scheduling from fetching.

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

Usage Guidelines5/5

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

Contains an explicit USE WHEN list (repricing, MAP/buy-box monitoring, launch, deal, book rank) and a DON'T USE clause pointing at product/offers for reads. Also says re-posting the same ASIN renews it, which resolves an ambiguity an agent would otherwise hit.

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.

  1. 1 tool update
    • Changedproduct1 field changed
      • changedInput schema / properties / history_only / description
        Previous value: -"Return ONLY the stored history series - bsr_history, offer_history and buybox_price_history - with no snapshot, content or seller table, for 0.05 credit. USE WHEN the user tracks price or rank over time for many products and does not need the current listing. Amazon marketplaces only, served from stored observations (mode=live is refused); needs a paid-plan API key (from $19/mo)."New value: +"Return ONLY the stored history series - bsr_history, offer_history, buybox_price_history, rating_history and rating_breakdown_history - with no snapshot, content or seller table, for 0.05 credit. USE WHEN the user tracks price or rank over time for many products and does not need the current listing. Amazon marketplaces only, served from stored observations (mode=live is refused); needs a paid-plan API key (from $19/mo)."
  2. 1 tool update
    • Changedbatch1 field changed
      • addedInput schema / properties / email
        Added value: +{
        +  "description": "create / schedule: e-mail the account when a run completes or pauses and when a scheduled firing is refused. Default false for batches created here or through the REST API; results are always available programmatically.",
        +  "type": "boolean"
        +}
  3. 4 tool updates
    • Changedkeyword_rankings2 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"us (amazon.com) or uk (amazon.co.uk): the marketplaces the map covers."New value: +"Amazon marketplace: us (amazon.com, default), uk, de, ca, au, fr, it, es, jp, mx or br, each searched in its own language. us and uk are read in full about weekly; the other nine started 2026-10-29 / 10-30 and fill in week by week (coverage says how far)."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "uk"
        -]New value: +[
        +  "us",
        +  "uk",
        +  "de",
        +  "ca",
        +  "au",
        +  "fr",
        +  "it",
        +  "es",
        +  "jp",
        +  "mx",
        +  "br"
        +]
    • Changedlist_tracked1 field changed
      • addedInput schema / properties / asin
        Added value: +{
        +  "description": "Only these products: one ASIN or up to 500 comma-separated (2026-10-30).",
        +  "type": "string"
        +}
    • Changedproduct_keywords2 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"us (amazon.com) or uk (amazon.co.uk): the marketplaces the map covers."New value: +"Amazon marketplace: us (amazon.com, default), uk, de, ca, au, fr, it, es, jp, mx or br, each searched in its own language. us and uk are read in full about weekly; the other nine started 2026-10-29 / 10-30 and fill in week by week (coverage says how far)."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "uk"
        -]New value: +[
        +  "us",
        +  "uk",
        +  "de",
        +  "ca",
        +  "au",
        +  "fr",
        +  "it",
        +  "es",
        +  "jp",
        +  "mx",
        +  "br"
        +]
    • Changedtrack_product2 fields changed
      • changedInput schema / properties / asins / description
        Previous value: -"Bulk (2026-10-14): up to 1,000 ASINs in one call - with action=track all get the same interval / ttl_days / alerts (results[] in input order: created / renewed / refused / invalid, the allowance consumed in input order, never all-or-nothing); with action=stop they are stopped; with action=sync they are the full list the active set becomes."New value: +"Bulk (2026-10-14): up to 10,000 ASINs in one call - with action=track all get the same interval / ttl_days / alerts (results[] in input order: created / renewed / refused / invalid, the allowance consumed in input order, never all-or-nothing); with action=stop they are stopped; with action=sync they are the full list the active set becomes."
      • changedInput schema / properties / ids / description
        Previous value: -"With action=stop: several tracking ids at once (up to 1,000)."New value: +"With action=stop: several tracking ids at once (up to 10,000)."
  4. 4 tool updates
    • Changedoffers1 field changed
      • changedInput schema / properties / zip / description
        Previous value: -"Optional (2026-10-14): a US 5-digit ZIP - the offers page as Amazon shows it to a shopper at that ZIP, with location (Amazon's confirmed 'Deliver to' answer) and deliverable (whether the item is offered to that ZIP right now; Amazon Fresh and Whole Foods items deliver only to some ZIPs, and an out-of-area ZIP shows the same unavailable box as a stock-out). Page 1 of the offers only, a one-off session, nothing stored. country=us only. 1 credit when the answer carries an offer; a ZIP Amazon rejects is guidance, never billed."New value: +"Optional (2026-10-14): a US 5-digit ZIP - the offers page as Amazon shows it to a shopper at that ZIP, with location (Amazon's confirmed 'Deliver to' answer) and deliverable (whether the item is offered to that ZIP right now; Amazon Fresh and Whole Foods items deliver only to some ZIPs, and an out-of-area ZIP shows the same unavailable box as a stock-out). Page 1 of the offers only, a one-off session, nothing stored. country=us only. 1 credit when the answer carries an offer, and (since 2026-10-29) for a verified not-deliverable answer (the ZIP confirmed on the page, the offers page read, zero offers: not_deliverable_verified true); a ZIP Amazon rejects is guidance, never billed, as are deliverable null, a 404 and a failed fetch. A session at a ZIP is kept a few minutes per account, so this check right after a serp zip= search on the same ZIP skips the warm-up."
    • Changedproduct3 fields changed
      • changedInput schema / properties / interval / description
        Previous value: -"With track=true: how often the lane re-reads the all-offers page (1h = 24 snapshots a day)."New value: +"With track=true: how often the lane re-reads the product (1h = 24 snapshots a day)."
      • addedInput schema / properties / read
        Added value: +{
        +  "default": "offers",
        +  "description": "With track=true (2026-10-29): offers (default) re-reads the all-offers page; product_page re-reads the product page and its offers page, so every reading's sales rank lands in bsr_points_hot. A product-page read draws 2 snapshots of the allowance.",
        +  "enum": [
        +    "offers",
        +    "product_page"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / track / description
        Previous value: -"Answer AND track (paid plans): after this answer the ASIN is pinned into our hot lane, which re-reads its all-offers page every `interval` for 30 days and adds every read to buybox_price_points_hot - the same as the track_product tool. No extra credits (the plan's daily tracked-snapshot allowance is drawn); the answer is served even when the tracking is refused and its `track` block says why. Amazon only."New value: +"Answer AND track (paid plans): after this answer the ASIN is pinned into our hot lane, which re-reads its all-offers page (or, with read=product_page, its product page) every `interval` for 30 days and adds every read to buybox_price_points_hot - the same as the track_product tool. No extra credits (the plan's daily tracked-snapshot allowance is drawn); the answer is served even when the tracking is refused and its `track` block says why. Amazon only."
    • Changedserp2 fields changed
      • addedInput schema / properties / store
        Added value: +{
        +  "description": "Optional, with zip only: Amazon's own storefront search for that store's assortment at the ZIP (Whole Foods Market or Amazon Fresh). A local partner such as Lucky is reached through refinements with its p_n_alm_brand_id value. Cannot be combined with category_id.",
        +  "enum": [
        +    "wholefoods",
        +    "fresh"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / zip
        Added value: +{
        +  "description": "Optional (2026-10-29): a US 5-digit ZIP - the search as a shopper at that ZIP sees it, with the local stores' items, each result's store, delivery_terms and stock, and the page's confirmed location. country=us only; at most 3 pages a call. A verified empty answer (empty_reason set) is billed 1 credit. ZIP+4 is cut to 5 digits.",
        +  "type": "string"
        +}
    • Changedtrack_product2 fields changed
      • changedInput schema / properties / interval / description
        Previous value: -"How often the lane re-reads the all-offers page. A shorter interval costs more of the daily allowance (1h = 24 snapshots a day, 2h = 12, 4h = 6, 12h = 2, 24h = 1)."New value: +"How often the lane re-reads the product (see read). A shorter interval costs more of the daily allowance (1h = 24 snapshots a day, 2h = 12, 4h = 6, 12h = 2, 24h = 1; twice that with read=product_page)."
      • addedInput schema / properties / read
        Added value: +{
        +  "default": "offers",
        +  "description": "Which page each read fetches (2026-10-29): offers (default) = the all-offers page (buy box, price, every offer, stock); product_page = the product page and its offers page, so the sales rank is read too: every reading lands in the product tool's bsr_points_hot, and its offers page in buybox_price_points_hot as with offers. A product-page read draws 2 snapshots of the allowance (12h = 4 a day). Like interval, every call sets it: tracking the same ASIN again without read switches it back to offers.",
        +  "enum": [
        +    "offers",
        +    "product_page"
        +  ],
        +  "type": "string"
        +}
  5. 1 tool update
    • Changedbatch3 fields changed
      • addedInput schema / properties / at_hour_utc
        Added value: +{
        +  "description": "schedule, 12h and daily only: the UTC hour it fires at (12h: this hour and 12 hours later). Default: 12h = the current UTC hour, daily = 0. Kept when the same cadence is saved again without it.",
        +  "maximum": 23,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / schedule / description
        Previous value: -"schedule: how often the batch re-runs (none stops the schedule)."New value: +"schedule: how often the batch re-runs (none stops the schedule). 12h fires twice a day, at at_hour_utc and 12 hours later; daily once a day at at_hour_utc (default midnight UTC); weekly on Monday and monthly on the 1st, 00:00 UTC."
      • changedInput schema / properties / schedule / enum
        Previous value: -[
        -  "none",
        -  "daily",
        -  "weekly",
        -  "monthly"
        -]New value: +[
        +  "none",
        +  "12h",
        +  "daily",
        +  "weekly",
        +  "monthly"
        +]
  6. 2 tool updates
    • Changedkeyword_rankings2 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Amazon US only: the map covers amazon.com search."New value: +"us (amazon.com) or uk (amazon.co.uk): the marketplaces the map covers."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us"
        -]New value: +[
        +  "us",
        +  "uk"
        +]
    • Changedproduct_keywords2 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Amazon US only: the map covers amazon.com search."New value: +"us (amazon.com) or uk (amazon.co.uk): the marketplaces the map covers."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us"
        -]New value: +[
        +  "us",
        +  "uk"
        +]
  7. 2 tool updates
    • Changedproduct1 field changed
      • changedInput schema / properties / mode / description
        Previous value: -"cache = stored observation only; live = force an on-demand scrape (Amazon only, takes a few seconds); auto = serve cache when fresher than max_age_days, otherwise scrape. The no-signup free lane is cache-only: mode=live returns an error asking for an API key (from $19/mo) (do not offer a live scrape to a keyless caller); with a key, live/auto scrape normally."New value: +"cache = stored observation only; live = force an on-demand scrape (Amazon only, takes a few seconds); auto = serve cache when fresher than max_age_days, otherwise scrape."
    • Changedsearch1 field changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum rows to return (up to 100). The free lane caps this at 25."New value: +"Maximum rows to return (up to 100)."
  8. 3 tool updates
    • Changedbatch1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"product batches: tracked = the ASINs this key tracks on the marketplace instead of a list."New value: +"product batches: tracked = the ASINs this account tracks on the marketplace instead of a list."
    • Changeddeals2 fields changed
      • changedInput schema / properties / max_discount / description
        Previous value: -"Maximum percent off (0-100)."New value: +"Maximum percent off (0-100). Same marketplaces as min_discount (refused on it, fr, es)."
      • changedInput schema / properties / min_discount / description
        Previous value: -"Minimum percent off (0-100)."New value: +"Minimum percent off (0-100). Amazon applies it on the us, uk, de, ca, au, mx, jp and br deals pages; amazon.it, amazon.fr and amazon.es have no discount filter, so there it is refused (not_applied, never billed): ask without it and filter on percent_off."
    • Changedtrack_product1 field changed
      • changedInput schema / properties / action / description
        Previous value: -"track (default) creates or renews the tracking(s); stop ends one or many at once; sync (2026-10-14) makes the key's active set on one marketplace EQUAL to asins: missing ones are created, active ones not listed are stopped, the rest are left as they are - dry_run first to see the counts."New value: +"track (default) creates or renews the tracking(s); stop ends one or many at once; sync (2026-10-14) makes the account's active set on one marketplace EQUAL to asins: missing ones are created, active ones not listed are stopped, the rest are left as they are - dry_run first to see the counts."
  9. 2 tool updates
    • Addedkeyword_rankings
    • Addedproduct_keywords
  10. 2 tool updates
    • Changedbatch1 field changed
      • changedInput schema / properties / category_ids / description
        Previous value: -"category / categories batches (ids, or root)."New value: +"category / categories batches (ids, or root); deals batches (deals department ids, or all for the whole deals page)."
    • Addeddeals
  11. 1 tool update
    • Changedserp2 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Amazon marketplace to search. No Walmart — live SERP is Amazon-only."New value: +"Amazon marketplace to search, or walmart (a live walmart.com search)."
      • changedInput schema / properties / country / enum
        Previous value: -[
        -  "us",
        -  "uk",
        -  "de",
        -  "ca",
        -  "au",
        -  "fr",
        -  "it",
        -  "es",
        -  "jp",
        -  "mx",
        -  "br"
        -]New value: +[
        +  "us",
        +  "uk",
        +  "de",
        +  "ca",
        +  "au",
        +  "fr",
        +  "it",
        +  "es",
        +  "jp",
        +  "mx",
        +  "br",
        +  "walmart"
        +]

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Live Amazon marketplace data for AI agents: product details, prices, reviews, keyword search, best-sellers, deals, offers and stock, and seller profiles across 20 marketplaces.
    12
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides read-only access to normalized Amazon marketplace data, including product details, search, offers, reviews, sellers, categories, deals, best sellers, identifiers, stock, and sales estimates across 13 marketplaces.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables product search, price comparison, and price history analysis across 6 European marketplaces (DE, AT, GB, FR, IT, ES).
    23
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.