Skip to main content
Glama
Pangolin-spg

Pangolinfo Amazon Data MCP

list_seller_products

Get all Amazon seller storefront products by merchant ID. Use pagination and category filters to analyze SKUs, prices, ratings, and in-store rank for competitor research.

Instructions

[Amazon seller storefront] List all listings under a merchant ID, paginated (24 rows/page). Use when: user says "show me this seller's products" / "how many SKUs does store X carry" / "competitor storefront category breadth" / "what is this seller pushing" / "research a seller's catalog strategy". Don't use: without a merchant ID (find 'sold by' link on any product PDP first); for a single product (use get_amazon_product). Returns: data.json[0].data.{ pageIndex, maxPage, nextPage, results[{ asin, title, price, star, rating, rank, img }] } — 24 rows/page. Every row carries rank (its display order in the storefront, ≈ that seller's in-store popularity ranking) plus star/rating, so this single call is enough to rank and tabulate the seller's listings — no need to re-fetch each PDP. Two pagination modes: ① page locates a specific page (default 1); ② pageCount accumulates the first N pages in one call (N≤3, flat-merged into the same results). When pageCount>1, pageIndex/nextPage are blanked (pages already merged). Category filter: categoryId filters the seller's products by category. Pair with: ↑ sellerId usually from get_amazon_product's seller.id field, or from amazon.com/sp?seller=... URL; categoryId extractable from the storefront URL's rh=n:; ↓ feed asin into get_amazon_product to deep-dive hero products. Chaining pitfall — "what does this seller carry + sort by sales/rank": ❌ Do NOT "run get_amazon_product on every ASIN to pull each small-category BSR, then sort" — a storefront often has dozens-to-hundreds of SKUs; fanning out one PDP per ASIN hits the 2-QPS rate wall, bills N times, and blows the Fast-tier budget. ✅ Correct: the results[] from one call (or pageCount≤3) already carry rank; sort by rank ascending for the in-store order and tabulate with star/rating. Only when the user explicitly wants exact global small-category BSR should you run get_amazon_product on a small head set (e.g. the top 5-10 pre-filtered by list rank) to read bestSellersRankItems[], batched at ≤2 concurrent — never fan out across the whole store. Cost: ~1 point/page, ~5s; pageCount=N billed by pages actually crawled (failed pages refunded). Tips: use pageCount to grab the full multi-page SKU set in one shot (max 3 pages); use page to view one specific page; the first page is enough to glance at what the store sells. For sorting, prefer results[].rank (free, already in this response) — don't fan out PDP fetches just to sort. Amazon first-party sellerId = 'ATVPDKIKX0DER'.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, 1-based. 24 rows per page. Use response's pageIndex/maxPage/nextPage to decide whether to continue: nextPage holds the next page number; nextPage=null or page>=maxPage means last page reached. **Only paginate when the user explicitly asks for more / all SKUs** — otherwise the first page is enough. NOTE: when pageCount>1 (multi-page accumulate) is set, page is ignored (the backend always accumulates from page 1).
siteNoAmazon marketplace. Defaults to amz_us.amz_us
formatNoResponse format. Defaults to 'json' — structured seller listings. Use 'markdown' for the rendered page text.json
zipcodeNoZIP code that must match the site country (amz_us → US zip, amz_jp → JP zip, ...). Optional; backend picks a random one from the per-country pool when omitted. Cross-country zips (e.g. amz_us + JP zip) are rejected by the backend. Examples: 10001 (NY) / 90001 (LA) / 100-0001 (Tokyo).
sellerIdYesAmazon merchant ID (14-char alphanumeric). Examples: 'ATVPDKIKX0DER' (Amazon.com first-party) / 'A2L77EE7U53NWQ' (Amazon Warehouse). Find it in a product page's 'sold by' link or amazon.com/sp?seller=... URL.
pageCountNoMulti-page accumulate: passing N crawls the first N pages in one call and returns them flat-merged (e.g. 3 = all products from pages 1+2+3). Default 1 (single page, uses the `page` flow); cap 3, larger values treated as 3. Difference vs `page`: `page` locates one specific page, `pageCount` pulls the first N pages merged. **Use only when you need the full multi-page SKU set in one shot.** Billed by pages actually crawled (a failed page is refunded).
categoryIdNoCategory filter ID — filters the seller's products by category. A single leaf category ID (e.g. '7161074011'), or comma-separated multi-level categories (e.g. '172282,502394,7161073011'). Omit = all products of the seller. Extractable from the rh=n:<categoryId> part of an Amazon storefront URL.
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.2

TDQS

A4.8/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden and it does so: cost (~1 point/page, ~5s), billing semantics (pageCount billed by pages actually crawled, failed pages refunded), the 2-QPS rate wall and budget implications of fanning out, plus the state-mutating effect that pageIndex/nextPage are blanked when pageCount>1.

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-loads when-to-use and return shape before the deep chaining guidance, and every section has a job. It is dense and somewhat repetitive — the 'sort by results[].rank, do not fan out PDP fetches' instruction appears three times across the returns, chaining pitfall, and tips blocks.

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?

Although no output schema exists and no annotations exist, the description spells out the exact return path and fields (data.json[0].data.{pageIndex,maxPage,nextPage,results[{asin,title,price,star,rating,rank,img}]}) plus pagination termination via nextPage/maxPage, which is everything an agent needs to call and consume 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?

Schema coverage is already 100%, so the baseline is 3; the description earns above baseline by explaining the cross-parameter interaction between the two pagination modes (page is ignored when pageCount>1, both accumulate from page 1) and by naming concrete extraction points for categoryId (rh=n:<id>) and sellerId.

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 ('List all listings under a merchant ID') and immediately bounds the scope with 'paginated (24 rows/page)'. It also differentiates from the obvious sibling by warning that a single product should use get_amazon_product instead.

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 explicit 'Use when' scenarios quoting actual user phrasings and an explicit 'Don't use' clause naming the blocker (no merchant ID) and the alternative tool (get_amazon_product). The 'Pair with' section further states both upstream sources (get_amazon_product seller.id, /sp?seller= URL) and downstream usage.

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