Skip to main content
Glama
Pangolin-spg

Pangolinfo Amazon Data MCP

Pangolinfo Amazon Data MCP

Listed on mcpservers.org

Pangolinfo Amazon Data MCP gives AI agents real-time access to Amazon commerce intelligence, WIPO design-patent data, Google Trends and search intelligence, and local market data.

This package is Pangolinfo's official stdio bridge to the hosted Streamable HTTP MCP server. It discovers the current remote tool schemas at startup and forwards MCP tool calls without storing your API key or result data.

Capabilities

The server exposes 19 business data tools, plus the free pangolinfo_capabilities navigation tool:

  • Amazon research: product search and detail, reviews, delivery estimates, best sellers, new releases, seller catalogs, category products, and Rufus recommendations.

  • Market selection: category discovery and trees, category metrics, niche filtering, and category paths.

  • Broader intelligence: WIPO design-patent and litigation-risk search, Google SERP/AI Overview search, Google Trends, Google Maps local search, and a generic Amazon URL scraper.

See the full product overview and current capability details at pangolinfo.com/amazon-data-mcp.

Related MCP server: Webotee Amazon Product Research

Requirements

  • Node.js 18 or newer

  • A Pangolinfo API key

Run with npx

PANGOLINFO_API_KEY="your-key" npx -y pangolinfo-amazon-data-mcp

Do not put a production key in source code or commit it to Git.

MCP client configuration

For clients that launch local stdio servers:

{
  "mcpServers": {
    "pangolinfo-amazon-data": {
      "command": "npx",
      "args": ["-y", "pangolinfo-amazon-data-mcp"],
      "env": {
        "PANGOLINFO_API_KEY": "your-key"
      }
    }
  }
}

Clients with native Streamable HTTP support can connect directly:

  • Endpoint: https://mcp.pangolinfo.com/mcp

  • Header: Authorization: Bearer YOUR_PANGOLINFO_API_KEY

Agent-oriented installation instructions are also available in llms-install.md.

Run with Docker

Pull the public multi-platform image from Docker Hub or GitHub Container Registry:

docker pull pangolinfo/amazon-data-mcp:latest
docker pull ghcr.io/pangolin-spg/amazon-data-mcp:latest

Run it as a stdio MCP server while passing the key only at runtime:

docker run --rm -i \
  -e PANGOLINFO_API_KEY \
  pangolinfo/amazon-data-mcp:latest

Or build the official bridge locally:

docker build -t pangolinfo-amazon-data-mcp .

Run the local image:

docker run --rm -i -e PANGOLINFO_API_KEY pangolinfo-amazon-data-mcp

Set PANGOLINFO_API_KEY in your shell or secret manager. Do not bake it into the image, Dockerfile, or source tree.

How the bridge works

The package opens an authenticated Streamable HTTP connection to Pangolinfo, then exposes the remote tools/list and tools/call methods over local stdio. Tool definitions therefore stay synchronized with the hosted service; the package contains no embedded customer data and does not log credentials.

An optional PANGOLINFO_MCP_URL environment variable can override the endpoint for approved testing environments. For safety, only HTTPS URLs are accepted.

License and trademarks

The bridge source code is licensed under the MIT License. Pangolinfo names, logos, product marks, and brand assets are not granted under that license; see BRANDING.md.

Available Tools

21 tools
filter_categoriesA

[Amazon category commercial-metrics filter] Filter categories by dozens of metrics (sales, GMS, search volume, conversion, return rate, price tier, competitor density, …) — or use as a "category detail" endpoint by passing a single categoryId. Use when: user says "find categories worth entering" / "high-sales categories" / "low return-rate categories" / "high search-volume but low competition categories" / "show me all metrics for category X"; category-level blue-ocean hunt; getting the 30+ metric snapshot of one category. Don't use: for niche-level (use filter_niches — finer granularity); for actual products in a category (use list_category_products); for just the readable name (use get_category_paths). Returns: data.items.data[{ id, categoryId, marketplaceId, timeRange, sampleScope, snapshotDate, unitSoldSum, glanceViewsSum, searchVolumeSum, netShippedGmsSum, buyBoxPriceAvg, buyBoxPriceTier, searchToPurchaseRatio, returnRatio, asinCount, offersPerAsin, newAsinCount, newBrandCount, avgAdSpendPerClick, unitSoldTrendDirection, unitSoldChangeRateBucket, ... trend + quantile-bucket fields }] + data.items.pagination.{ total, page, size, hasNext }. Pagination: use the 'page' param (default 1, 1-based, size capped at 10); 'pagination.hasNext=true' means more pages exist, 'hasNext=false' means last page. Pair with: ↑ required timeRange ('l7d' common) + sampleScope ('all_asin') + marketplaceId (defaults US); categoryId from search_categories / get_category_children; ↓ feed high-potential categories into list_category_products / list_bestsellers for real listings. Cost: ~1 point/page, ~5s. Tips: size capped at 10 (backend hard limit); only paginate when the user explicitly asks for more candidate categories — single-detail or quick-filter calls are fine on page 1; long-tail filter fields (unitSoldTrendDirections / metricChangeRateBuckets / dozens more) pass through via extraFilters.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, 1-based.
sizeNoPage size, max 10 (backend hard limit).
sortFieldNoSort field; any response field name is accepted (e.g. 'unitSoldSum', 'netShippedGmsSum').
sortOrderNoSort order: 'asc' or 'desc'.
timeRangeYesAggregation time range (required). Examples: 'l7d' (last 7 days — verified working). The exact enum is backend-defined; 'l7d' is the safest known value.
categoryIdNoWhen set, returns the full metric row for that single category (this endpoint doubles as the 'detail' endpoint). Omit to list multiple categories matching the filters. Example: '979832011'.
sampleScopeYesSample scope (required). Examples: 'all_asin' (all ASINs — verified working).
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。
extraFiltersNoPass-through for any other upstream filter (e.g. unitSoldTrendDirections, newAsinCountLevels, metricChangeRateBuckets). Keys must match the upstream doc verbatim.
marketplaceIdNoAmazon marketplace id. ⚠️ Backend currently supports US only; other marketplaces will fail or fall back. Use US (the default).US
unitSoldSumMaxNoMax total units sold.
unitSoldSumMinNoMin total units sold.
buyBoxPriceTiersNoPrice-tier filter. Allowed: budget, mainstream, premium, luxury.
buyBoxPriceAvgMaxNoMax average buy-box price.
buyBoxPriceAvgMinNoMin average buy-box price (marketplace currency).
returnRatioLevelsNoReturn-rate quality buckets. Allowed: excellent, average, risk.
searchVolumeSumMaxNoMax total search volume.
searchVolumeSumMinNoMin total search volume.
netShippedGmsSumMaxNoMax total GMS.
netShippedGmsSumMinNoMin total GMS (gross merchandise sales).
searchToPurchaseRatioLevelsNoSearch-to-purchase conversion buckets. Allowed: to_improve, average, excellent.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses cost (~1 point/page, ~5s), the backend pagination cap (size max 10), the US-only marketplace limitation, and the pass-through behavior of extraFilters. It does not explicitly state authentication requirements or reversibility, but for a read-only filter endpoint this is a strong disclosure.

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 tightly front-loaded with labeled sections (Use when / Don't use / Returns / Pair with / Cost / Tips), so an agent can scan to the relevant part. Slightly over-dense with the full field enumeration, but each section is purposeful.

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 21-parameter tool with no output schema, the description compensates fully: it enumerates the returned data shape, pagination fields, cost, and constraints. An agent has everything needed to select and invoke it correctly.

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 value beyond the schema: the provenance of categoryId (from search_categories / get_category_children), the recommended required values ('l7d', 'all_asin'), the default marketplaceId, and the long-tail pass-through contract for extraFilters. The pagination semantics (1-based page, hasNext) are also spelled out.

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 ('Filter categories by dozens of metrics') and immediately names what it is not, distinguishing it from filter_niches, list_category_products, and get_category_paths. It also clarifies the dual role as a single-category detail endpoint, which an agent could not infer otherwise.

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' trigger phrases, a 'Don't use' section routing each alternative use case to the correct sibling, and a 'Pair with' workflow showing upstream (search_categories/get_category_children) and downstream (list_category_products/list_bestsellers) tools. Nothing is left to inference.

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

filter_nichesA

[Amazon niche filter] Filter Amazon Niches (a finer-grained "demand cluster" than categories) by 50+ commercial metrics, or use as a "niche detail" endpoint for one niche. Use when: user says "find blue ocean" / "high search volume + low competition niches" / "fast-growing small markets" / "niche scouting" / "give me the deep report on this niche" / "low return-rate niches" / "niches with return rate under 10%"; the core filter step of GTM scouting SOPs; getting fee structure / brand age / new-launch trends for one niche. Don't use: for full categories (use filter_categories); for actual products in a niche (the niche record only carries 1 referenceAsin; combine with categoryId + list_category_products); for plain keyword search (use search_amazon). Returns: data.items.data[{ nicheId, nicheTitle, referenceAsinImageUrl, currency, searchVolumeT90, searchVolumeT360, searchVolumeGrowthT90, minimumPrice, maximumPrice, avgPrice, productCount, sponsoredProductsPercentage, primeProductsPercentage, top5ProductsClickShare, top20BrandsClickShare, brandCount, sellingPartnerCount, avgBrandAge, avgBestSellerRank, avgProductPrice, avgReviewCount, avgReviewRating, avgDetailPageQuality, newProductsLaunchedT180/T360, successfulLaunchesT90/T180/T360, returnRateT360, fee fields T365 … 100+ fields }] + data.items.pagination.{ total, page, size, hasNext }. Pagination: use the 'page' param (default 1, 1-based, size capped at 10 (default 3)); 'pagination.hasNext=true' means more pages exist, 'hasNext=false' means last page. Pair with: ↑ marketplaceId required (defaults US); nicheTitle for keyword filter, nicheId for single-niche detail; ↓ feed referenceAsin into get_amazon_product to see the representative product; niche doesn't carry a categoryId directly — derive separately if needed. Cost: ~1 point/call, ~5s. Tips: size capped at 10 (default 3); pass long-tail filters (50+ fields) via extraFilters; classic blue-ocean combo = high searchVolumeT90Min + low top5ProductsClickShareT360Max + moderate productCountMax + positive searchVolumeGrowthT90Min + returnRateT360Max ≤ 0.10 (low-return). For return-rate filtering use returnRateT360Max (upper bound, 0-1 decimal); the response includes returnRateT360 with the actual return rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, 1-based.
sizeNoPage size, max 10 (backend hard limit), default 3 (small default to keep responses under AI context limits — pass size=10 explicitly when you need a wider sweep).
nicheIdNoWhen set, returns the full deep report for that single niche (this endpoint doubles as the niche-detail endpoint). Omit to list multiple niches matching the filters. Example: '8140a265-768d-4679-8bc2-994cb1c96f0b' (UUID).
sortFieldNoSort field; any response field name is accepted (e.g. 'searchVolumeT90', 'avgProductPrice').
sortOrderNoSort order: 'asc' or 'desc'.
nicheTitleNoKeyword match against niche titles. Examples: 'iphone 16 wallet case' / 'wireless earbuds for sports'.
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。
extraFiltersNoPass-through for any other upstream filter (e.g. sponsoredProductsPercentageT360Min, successfulLaunchesT360Max, avgBestSellerRankMax). Keys must match the upstream doc verbatim.
marketplaceIdNoAmazon marketplace id (required). ⚠️ Backend currently supports US only; other marketplaces will fail or fall back. Use US (the default).US
maximumPriceMaxNoUpper bound on the niche's maximum product price.
minimumPriceMinNoLower bound on the niche's minimum product price.
productCountMaxNoMax product count in the niche.
productCountMinNoMin product count in the niche.
avgReviewCountMaxNoMax average review count — lower means less competition.
avgReviewCountMinNoMin average review count.
returnRateT360MaxNoMax return rate over 360 days (0-1).
avgReviewRatingMinNoMin average review rating (0-5).
searchVolumeT90MaxNoMax search volume over last 90 days.
searchVolumeT90MinNoMin search volume over last 90 days.
searchVolumeT360MaxNoMax search volume over last 360 days.
searchVolumeT360MinNoMin search volume over last 360 days.
searchVolumeGrowthT90MaxNoMax 90-day search-volume growth rate.
searchVolumeGrowthT90MinNoMin 90-day search-volume growth rate (decimal, 0.1 = +10%).
top5ProductsClickShareT360MaxNoMax top-5-products click share over 360 days (0-1). Lower = more fragmented niche, more opportunity.

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses pagination semantics (hasNext, page, size cap), a hard marketplace limitation (US only, others fail/fall back), cost (~1 point/call, ~5s), and the fact that size is capped at 10. These are the operational traits an agent needs that structured fields do not supply.

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/Pair-with/Cost/Tips in a scannable order. It is dense and long, and the Returns field list is somewhat verbose, but nearly every line aids correct invocation, so little is wasted.

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 24-parameter, no-output-schema tool, the description supplies the return shape (so no output schema is needed), pagination behavior, pairing guidance (get_amazon_product, categoryId derivation), and the missing-categoryId caveat. Nothing an agent needs to call it correctly is absent.

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 100%, yet the description still adds meaning: it explains extraFilters as the pass-through for 50+ long-tail filters, gives the concrete blue-ocean filter combo with the correct field names, clarifies returnRateT360Max as a 0-1 upper bound, and notes marketplaceId defaults to US. This is genuine value beyond the schema.

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 ('Filter Amazon Niches') and immediately disambiguates the concept ('a finer-grained demand cluster than categories'), plus discloses a dual mode ('niche detail' endpoint for one niche). An agent can distinguish this from filter_categories and list_category_products without opening any 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' section with concrete user utterances (blue ocean, low return-rate, niche scouting) and an explicit 'Don't use' section naming the correct siblings for full categories, products in a niche, and plain keyword search. Routing is unambiguous.

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

get_amazon_alexa_questionsA

Alexa Listing API: extract both Alexa/Rufus preset-question regions from a logged-in Amazon PDP and optionally answer them in that ASIN context. Extracted questions cost 5 points and each answered region adds 20 (0/5/25/45 total); valid no-question and service failures cost 0, while an explicitly invalid ASIN costs 5.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoAmazon.com product-detail URL. Provide either asin or url.
asinNo10-character Amazon ASIN. Provide asin or url; if both are provided they must identify the same product.
regionNoOnly selects which regions receive answers when includeAnswers=true: region1 is below the main image, region2 is below Product information, and all means both. It never filters returned questions.all
concurrencyNoMaximum answer-generation concurrency, 1-10. Defaults to 5.
includeAnswersNoWhether to generate Rufus answers. Questions from both regions are always returned; when false, every answer is null.

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations the description carries the full burden, and it delivers real behavioral disclosure: point costs (5 for extraction, +20 per answered region, 0/5/25/45 totals), zero cost for valid no-question results and service failures, and 5 points for an invalid ASIN. It does not cover authentication mechanics, rate limits, or failure/return shape, so it falls short of full transparency for a scraping 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?

Two tightly packed sentences with the core action front-loaded and the cost model compressed into a single clause. The cost parenthetical is dense but earns its place; nothing is padded.

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

Completeness3/5

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

For a 5-parameter, zero-required tool with no output schema and no annotations, the description covers purpose and cost but omits the return structure (what the question/answer payload looks like) and any auth prerequisites beyond 'logged-in'. It is adequate but not fully self-contained.

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 explains url/asin duality, the region enum semantics, concurrency bounds, and includeAnswers behavior in detail. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

The description uses a specific verb (extract) and resource (Alexa/Rufus preset-question regions) scoped to a logged-in Amazon PDP, plus the optional answer-generation behavior. It is very clear about what it does, but it never names or distinguishes itself from the sibling search_amazon_alexa or get_amazon_reviews, leaving the agent to infer the boundary.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the tool operates on a logged-in Amazon PDP and the answering step is optional. There is no explicit when-to-use, when-not-to-use, or which sibling to pick for a related question, so the agent gets context but no routing guidance.

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

get_amazon_delivery_timeA

[Amazon Delivery Time] Return the full listing detail for one ASIN plus address-dependent delivery estimates. Use when: the user explicitly needs estimated arrival, free vs paid delivery timing, the fastest option, handling lead time, or the listing's high-return warning. Don't use: for ordinary product detail only; use get_amazon_product at the lower 1-point cost. Returns: data.json[0].data.results[0] inherits every get_amazon_product field and adds frequentlyReturnedItem, leadTime, and delivery{deliveryTime,fastestDelivery,deliveryTimeFree,deliveryTimePay,deliveryFastest}. Unavailable extra fields are empty strings. Cost: 2 points/call, ~5s. Delivery results depend on the zipcode address.

ParametersJSON Schema
NameRequiredDescriptionDefault
asinYesAmazon ASIN, 10 letters/digits (case-insensitive; auto-uppercased).
siteNoAmazon marketplace. Defaults to amz_us.amz_us
zipcodeNoZIP code matching the marketplace country. Delivery estimates vary by address; the backend selects a country-matched ZIP when omitted.
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses cost (2 points/call), latency (~5s), the address/zipcode dependency of results, the fallback when zipcode is omitted, and that unavailable extra fields come back as empty strings rather than erroring. This is unusually complete behavioral context for a mutation-free lookup.

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?

Labeled sections (Use when / Don't use / Returns / Cost) put the decision-relevant content first and every sentence earns its place. Dense but zero 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?

There is no output schema, yet the description spells out the return path (data.json[0].data.results[0]) and the incremental fields (frequentlyReturnedItem, leadTime, delivery{...}), so an agent knows what to expect. Combined with cost and the zipcode caveat, nothing needed 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%, so the baseline is 3; the description goes beyond it by explaining that delivery estimates are dependent on the address/zipcode and that the backend substitutes a country-matched ZIP when omitted, which is meaningful semantics the schema only hints at.

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 ('Return the full listing detail for one ASIN plus address-dependent delivery estimates') and immediately distinguishes itself from the sibling get_amazon_product by scope and cost. An agent can tell exactly what this returns versus ordinary product detail 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?

Provides explicit 'Use when' triggers (estimated arrival, free vs paid timing, fastest option, lead time, high-return warning) and an explicit 'Don't use' clause with the named alternative and its cheaper cost. Routing is fully determined.

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

get_amazon_productA

[Amazon single-product detail] Scrape the full PDP for one ASIN. Use when: user supplies a specific ASIN ("look at B0XXXXXXXX" / "check this product's price/rating/seller" / "analyse this competitor"); or as a SOP step after candidate ASINs are picked. Don't use: for many products at once (use search_amazon or list_* series for lists); for reviews only (use get_amazon_reviews — cheaper and more focused). Returns (format='json', default): data.json[0].data.results[0] = { asin, title, itemName, itemHighlights, price, star, rating, brand, seller{name,id,link,hasLink}, parentAsin, videos[{type,section,mp4,m3u8,previewMp4,cover,title,duration,author}], shippingFee (buyer shipping fee as a number, e.g. "750"; "0" when free shipping or no info, varies by the zipcode address), delivery{deliveryTime,fastestDelivery}, ratingDistribution[], aiReviewsSummary, bestSellersRankItems, reviews[{date,star,content,helpful,...}], productOverview[], features[], productDescription[], images[], variantDetails[], attributes[], category_id, breadCrumbs, ... } — 30+ fields (variantDetails summary included). videos[].section: product=main media gallery, brand=brand module, related=related videos, customerReview=customer review videos. Use get_amazon_delivery_time when you need the high-return warning, free/paid/fastest delivery breakdown, or handling lead time. Title fields (Amazon split the title into two parts starting 2026-07-27): title=the full raw title string (for rolled-out listings it contains a " | " separator, unsplit); itemName=the title body (the part before " | ", i.e. the product name, ≤75 chars); itemHighlights=the title highlights (the part after " | ", e.g. material/use-case/selling points, ≤125 chars). For legacy (not-yet-rolled-out) listings itemName=the full title and itemHighlights is an empty string. Use itemName for the clean product name, itemHighlights for selling points. Pair with: ↑ asin typically comes from search_amazon / list_bestsellers / filter_niches; ↓ feed the same asin into get_amazon_reviews for more reviews (the PDP carries only ~5-10). Cost: ~1 point/call, ~5s.

ParametersJSON Schema
NameRequiredDescriptionDefault
asinYesAmazon ASIN, 10 letters/digits (case-insensitive — auto-uppercased). Example: 'B0B4NLGCH5'.
siteNoAmazon marketplace. Defaults to 'amz_us' (US).amz_us
formatNoResponse format. Defaults to 'json' — a structured payload (title, price, rating, reviews, seller, etc.) ready for programmatic use. Use 'markdown' if you want the rendered PDP text instead.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).
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses cost (~1 point/call, ~5s), the fact that the PDP carries only ~5-10 reviews, and the exact return shape. It stops short of stating auth requirements, rate limits, or failure behavior, which keeps it out of 5 territory.

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?

Well front-loaded with labeled sections (purpose, use/don't use, returns, pairing, cost). The dense "Returns" block is long but justified given there is no output schema; only minor redundancy in restating the title split.

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 5-parameter read tool with no output schema and no annotations, the description supplies everything an agent needs: return-field enumeration, title/itemName/itemHighlights semantics, video section meanings, cost, and a pointer to get_amazon_delivery_time for delivery nuance.

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 all five parameters (asin, site, format, zipcode, clientSource) are already documented, including the zipcode cross-country rejection rule. The description adds little about inputs beyond the default format, so the baseline of 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 ("Scrape the full PDP for one ASIN") and immediately distinguishes itself from siblings by naming search_amazon, the list_* series, and get_amazon_reviews. An agent can route correctly without opening any 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 (user supplies a specific ASIN, or as a SOP step after candidate ASINs) and explicit "Don't use" exclusions with named alternatives for both bulk lookups and review-only needs. Pairing notes (upstream/downstream) close the loop.

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

get_amazon_reviewsA

[Amazon review batch scrape] Page-fetch real buyer reviews for an ASIN. Filterable by star / sort / media type. Use when: user says "look at X's negative reviews" / "mine pain points" / "analyse competitor reviews" / "do VOC" / "find user complaints for Listing copy"; or pre-launch critical-review scan; or finding improvement points for listing optimization. Don't use: when the few reviews already in the PDP would suffice (get_amazon_product carries 5-10 reviews + aiReviewsSummary — enough for a quick read); for keyword search (use search_amazon). Returns: data.json[0].data = { totalReviews (total review count; empty when unavailable), results[{ reviewId, date, country, star, title, content, author, authorId, authorLink, imgs[], videos, purchased, vineVoice, helpful, attributes }] } — ~10 reviews per page. Pair with: ↑ asin typically from search_amazon / get_amazon_product / list_bestsellers; ↓ review text can be fed directly to an LLM for pain-point clustering and keyword extraction. Cost: 10 points per page (expensive). Start with pageCount=1 to confirm data, scale to 3-5 only when needed. Prefer filterByStar='critical' — highest signal density. Tips: filterByStar = all_stars / five_star ... one_star / positive / critical; sortBy = recent (default) | helpful; mediaType = all_contents (default) | media_reviews_only (with photos/videos, higher credibility).

ParametersJSON Schema
NameRequiredDescriptionDefault
asinYesAmazon ASIN (10 letters/digits, case-insensitive — auto-uppercased). Example: 'B0B4NLGCH5'.
siteNoAmazon review marketplace: 10 supported sites including Japan (amz_jp). Defaults to amz_us.amz_us
sortByNoSort order: 'recent' (newest first — track current sentiment) or 'helpful' (most-upvoted first — highest impact reviews).recent
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).
mediaTypeNoReview type: 'all_contents' for all, 'media_reviews_only' for reviews with photos/videos only (higher credibility).all_contents
pageCountNoNumber of review pages to fetch (~10 reviews per page). **Costs 10 points per page** — control accordingly. Defaults to 1.
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。
filterByStarNoFilter by star rating. For VOC pain-point mining, pass 'critical' (1-3 star reviews) to surface defects; for positive-aspect extraction, pass 'positive'.all_stars

TDQS

A4.6/5.0
Behavior5/5

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

No annotations exist, so the description carries the full behavioral burden and largely does: it discloses the cost model (10 points per page), the pagination granularity (~10 reviews/page), a scaling strategy (pageCount=1 first, then 3-5), backend zip-country validation with rejection, and an empty totalReviews when unavailable. That is material operational context an agent needs before calling.

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 and organized into labeled sections (Use when / Don't use / Returns / Pair with / Cost / Tips), so it scans fast despite being long. There is some duplication with the schema (cost and mediaType semantics appear in both), which costs it a point.

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 tool with no output schema and no annotations, it supplies everything needed: required input provenance (ASIN from search_amazon/get_amazon_product/list_bestsellers), a full return-shape sketch, cost control guidance, and a downstream pairing note. Nothing essential to correct invocation is missing.

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 baseline is 3. The description mostly restates schema content (star enum values, sort options, mediaType credibility, per-page cost) rather than adding syntax or defaults beyond it; the one genuinely additive note is the recommendation to prefer filterByStar='critical' for signal density.

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 concrete verb+resource ("Page-fetch real buyer reviews for an ASIN") plus the filter surface (star/sort/media type). It also names the siblings it is NOT (get_amazon_product, search_amazon), so an agent can route 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?

Explicit "Use when:" block with concrete user utterances ("look at X's negative reviews", "do VOC") and an explicit "Don't use:" block that names the alternative tool and the condition that selects it (PDP's built-in 5-10 reviews suffice). This is exactly the when/when-not/alternative structure.

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

get_category_childrenA

[Amazon category tree drilldown] List direct children from any node (or omit parent to start at the roots). Use when: user says "show me Amazon's category tree" / "subcategories under X" / "list top-level departments" / "drill to level 3"; building a category map; deciding which level is right after search_categories returned candidates. Don't use: when a keyword jump is faster (use search_categories); when you want products in the category, not its subcategories (use list_category_products). Returns: data.items.data[{ browseNodeId, browseNodeIdPath, browseNodeName, browseNodeNameCn, parentBrowseNodeIdPath, productType, sellable, hasChild }] + data.items.pagination.{ total, page, size, hasNext }; omit parentBrowseNodeIdPath to fetch top-level roots; hasChild=1 means the node has further children. Pagination: use the 'page' param (default 1, size default 10 / max 50); 'pagination.hasNext=true' means the node has more children not yet listed. Pair with: ↑ parentBrowseNodeIdPath either omitted (roots) or from search_categories; ↓ feed each result's browseNodeIdPath back in to drill another level, or into list_category_products / filter_categories. Cost: ~1 point/page, ~3s. Only paginate when a node has unusually many children (>size) and the user explicitly wants all subcategories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, 1-based.
sizeNoPage size.
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。
parentBrowseNodeIdPathNoParent node path. Either a single browseNodeId or a slash-joined path. Examples: '2619526011' (Appliances, drill from top) / '2619526011/18116197011' (Appliances > Ranges/Ovens/Cooktops, level-3 drill). Omit to fetch top-level roots.

TDQS

A4.6/5.0
Behavior4/5

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

No annotations are supplied, so the description carries the full burden. It discloses cost (~1 point/page, ~3s), pagination semantics, and the hasChild flag, plus the root-vs-child behavior when parent is omitted. It omits auth/permission requirements, keeping it 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.

Conciseness4/5

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

Front-loaded and sectioned (Use when / Don't use / Returns / Pair with / Cost) for easy scanning. Slightly redundant, with pagination covered in both the Returns and Cost sections, which prevents a perfect score.

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?

The description fully compensates for the absent output schema by enumerating returned fields, and it explains the pagination model, root-node behavior, and the drill-down workflow. 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% (baseline 3), but the description adds real meaning beyond the schema: omitting parentBrowseNodeIdPath fetches top-level roots, and it explains how each result's browseNodeIdPath feeds back in for the next drill level. page/size defaults restate the schema but the pagination-strategy note is additive.

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 direct children of an Amazon category node) and immediately scopes it against siblings like search_categories and list_category_products. An agent can differentiate it from every neighboring tool 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?

Explicit 'Use when' triggers (drill to level 3, list top-level departments) and 'Don't use' exclusions that name the correct alternatives (search_categories for keyword jumps, list_category_products for products). The Pair with section further clarifies upstream/downstream usage.

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

get_category_pathsA

[Amazon category breadcrumb resolver] Batch-resolve categoryId list to full paths (e.g. 'Electronics > Headphones > Over-Ear Headphones'). Use when: a report needs readable category context (not bare IDs); user has a list of numeric IDs and wants the names; multiple categories need labels for comparison. Don't use: for a single ID — most other tools already return browseNodeNamePath in their responses; for tree structure (use get_category_children). Returns: data.items[{ categoryId, categoryName, categoryNameCn, browseNodeNamePaths[], browseNodeNamePathCns[] }] — one row per input ID. Pair with: ↑ categoryIds from any prior step (filter_niches/filter_categories output, user-pasted ID list); ↓ usually presentation-only, downstream rarely depends on it. Cost: ~1 point/call, ~2s (cheaper than N single resolutions).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoAmazon marketplace. Defaults to 'amz_us' (US).amz_us
categoryIdsYesCategory IDs to resolve full path for. Examples: ['2619526011'] (Appliances) / ['172282', '11965861'] (Electronics + Musical Instruments).
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.4/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden, and it does most of it: return shape, cost (~1 point/call, ~2s), and the efficiency claim vs N single resolutions. It stops short of permission/auth behavior, but for a read-only resolver the disclosed cost, latency, and return contract are substantial.

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 the purpose before labeled sections, and every section (Use when / Don't use / Returns / Pair with / Cost) earns its place. Slightly verbose with the arrow notation in 'Pair with', but nothing is wasted.

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, and the description compensates by spelling out the exact returned fields (categoryId, categoryName, browseNodeNamePath, etc.) and noting one row per input ID. An agent has everything needed to call and 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%, so all three parameters are already documented (including the categoryIds example and site default). The description adds no parameter-level semantics beyond the schema, 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+resource: 'Batch-resolve categoryId list to full paths' with a concrete example output ('Electronics > Headphones > Over-Ear Headphones'). It explicitly distinguishes itself from get_category_children, so an agent can tell it apart from the closest sibling 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' section names three triggering conditions (readable category context, list of numeric IDs needing names, labeling for comparison) and 'Don't use' rules out single-ID use and tree traversal, naming get_category_children as the alternative. Routing is fully specified.

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

list_bestsellersA

[Amazon Best Sellers] Top-50 ranking for a category with 24h rank deltas. Use when: user says "X category bestsellers" / "who's #1 in X" / "any new entrants climbing" / "benchmark top sellers"; setting baseline products during niche scouting; tracking category leadership in competitor radars. Don't use: for new arrivals (use list_new_releases); for full category listings beyond top 50 (use list_category_products); when you only have a keyword (use search_categories first). Returns: data.json[0].data.{ reftag, recsList } — recsList is a JSON-string array (parse twice); each row { id, metadataMap.{ render.zg.rank, currentSalesRank, percentageChange, twentyFourHourOldSalesRank } }. Pair with: ↑ categorySlug from user or scene inference (e.g. 'electronics' / 'home-garden' / 'beauty'); ↓ feed id (ASIN) into get_amazon_product for single-product deep-dive. Cost: ~1 point/call, ~5s. Tips: categorySlug is the hyphenated English slug in amazon.com/Best-Sellers URL paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoAmazon marketplace. Defaults to amz_us.amz_us
formatNoResponse format. Defaults to 'json' — structured Top-50 ranked ASIN list. 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).
categorySlugYesAmazon Best Sellers category slug (lowercase, hyphenated). Examples: 'electronics', 'home-garden', 'beauty', 'toys-and-games'. Find these in the URL path on amazon.com/Best-Sellers.
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses cost (~1 point/call), latency (~5s), and the double-parse quirk of recsList being a JSON string. It does not cover error behavior, auth requirements, or rate ceilings, so it falls short of fully self-sufficient.

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?

Labeled sections (Use when / Don't use / Returns / Pair with / Cost / Tips) are front-loaded and scannable. Despite its length, every block carries distinct operational information — there is no 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?

No output schema exists, and the description compensates by unpacking the exact return path (data.json[0].data.{reftag, recsList}) and row fields. For a 5-param, annotation-free tool this is complete enough to call correctly on the first attempt.

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 slug format, site enum, and zipcode constraints are already documented in the schema. The description adds the downstream pairing tip (feed ASIN into get_amazon_product), which is useful but modest added value over structured data.

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+scope: 'Top-50 ranking for a category with 24h rank deltas.' It also names the sibling tools it is not (list_new_releases, list_category_products, search_categories), so an agent can distinguish it without opening any 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' triggers quote real user phrasings ('who's #1 in X', 'any new entrants climbing') and a 'Don't use' block names three alternatives with the condition that selects each. Nothing is left to inference.

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

list_category_productsA

[Amazon category listing] List concrete on-sale products under a Browse Node ID (paginated, 24 rows/page). Use when: user says "what's selling in category X" / "list products in node 12345" / "show me what's in this category"; after picking a categoryId during scouting, you want to see real listings; competitor-research on category density. Don't use: when only the top-50 winners matter (use list_bestsellers — cheaper and more signal); for category-level aggregate metrics (use filter_categories — sales/search volume/competitor density); for niche rather than full category (use filter_niches). Returns: data.json[0].data.{ pageIndex, maxPage, nextPage, categoryName, pagination, results[{ asin, title, price, star, rating, rank, img }] } — 24 rows/page. Pagination: use the 'page' param (default 1, 1-based); 'nextPage' holds the next page number, 'nextPage=null' or 'page>=maxPage' means last page reached. Pair with: ↑ nodeId from search_categories (keyword→category) or get_category_children (tree drilldown); ↓ asin into get_amazon_product; same categoryId can also feed filter_categories for aggregate metrics. Cost: ~1 point/page, ~5s. Only paginate when the user explicitly asks for more / all results — otherwise the first page is enough.

ParametersJSON 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 results** — otherwise the first page is enough.
siteNoAmazon marketplace. Defaults to amz_us.amz_us
formatNoResponse format. Defaults to 'json' — structured category listings. Use 'markdown' for the rendered page text.json
nodeIdYesAmazon category Browse Node ID (numeric). Examples: '172282' (Electronics) / '2619526011' (Appliances) / '11965861' (Musical Instruments). Obtain via search_categories or get_category_children.
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).
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses pagination semantics (nextPage=null means last page), cost (~1 point/page, ~5s), and a sensible 'only paginate when explicitly asked' constraint. It omits backend/auth requirements and rate-limit behavior, so it falls just short of fully covering the no-annotation gap.

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?

Organized into labeled sections (Use when / Don't use / Returns / Pair with / Cost), front-loading the core action and scoping constraint. Every sentence carries routing, cost, or pagination information with no 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?

For a 6-parameter, no-annotation, no-output-schema listing tool, the description supplies return shape (data.json[0].data...results fields), pagination mechanics, cost, and cross-tool relationships. An agent has everything needed to invoke and interpret it correctly.

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 page, site, format, nodeId, zipcode, and clientSource. The description largely restates the 'page' and 'nodeId' semantics rather than adding new meaning, so 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 ('List concrete on-sale products under a Browse Node ID') with scope details (paginated, 24 rows/page). It explicitly distinguishes itself from list_bestsellers, filter_categories, and filter_niches, so an agent can route correctly without opening sibling schemas.

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 'Use when' triggers with user-phrasing examples, an explicit 'Don't use' block naming three alternatives and the conditions that select them, and 'Pair with' upstream/downstream tool relationships. Nothing is left to inference.

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

list_new_releasesA

[Amazon New Releases] Best-selling Top-50 ASINs that hit the market within the last 30 days for a category (backend cap; not 100). Use when: user says "new arrivals in X" / "any breakout new products" / "newly-launched that sell well" / "trending new directions" / "new entrants to monitor"; GTM scouting for new angles; competitor radar catching new entrants. Don't use: for evergreen winners (use list_bestsellers); for full category listings (use list_category_products); when you only have a keyword (use search_categories first). Returns: data.json[0].data.{ reftag='zg_bsnr_g_', recsList } — recsList is a JSON-string array (parse twice); each row { id, metadataMap.{ render.zg.rank, ... } }. Pair with: ↑ categorySlug as in list_bestsellers; ↓ feed id (ASIN) into get_amazon_product to see why it climbed (pitch, pricing, variant strategy). Cost: ~1 point/call, ~5s.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoAmazon marketplace. Defaults to amz_us.amz_us
formatNoResponse format. Defaults to 'json' — structured ranking list. 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).
categorySlugYesAmazon New Releases category slug (lowercase, hyphenated). Examples: 'electronics', 'home-garden'. Find these in the URL path on amazon.com/gp/new-releases.
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.5/5.0
Behavior4/5

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

No annotations, so the description carries the full burden and largely succeeds: it discloses the ~1 point/5s cost, the backend cap, and a non-obvious return quirk (recsList is a JSON-string that must be parsed twice). It does not cover auth requirements or rate-limit semantics, but the operational cost and data-shape disclosures are more than most tools provide.

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?

Dense but organized into labeled sections (Use when / Don't use / Returns / Pair with / Cost) with the core purpose front-loaded. Every sentence carries actionable information; no 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 compensates by describing the return path and row structure. Combined with pairing guidance and cost, an agent has everything needed to call and interpret this tool correctly.

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% with enums for site/format/clientSource, so parameters are already well documented. The description adds only light context (categorySlug convention 'as in list_bestsellers', reftag slug format) which is marginal beyond the schema's own examples.

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+scope: 'Top-50 ASINs that hit the market within the last 30 days for a category', plus an honest backend cap caveat. The 'Don't use' section explicitly names sibling tools (list_bestsellers, list_category_products, search_categories), so an agent can differentiate without opening schemas.

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 concrete trigger phrases ('new arrivals in X', 'any breakout new products'), use cases (GTM scouting, competitor radar), and explicit exclusions with the alternative tool to use instead for each. This is textbook when/when-not/alternatives guidance.

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

list_seller_productsA

[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'.

ParametersJSON 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 调用省略即可。

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.

pangolinfo_capabilitiesA

[Pangolinfo MCP self-introspection] One call to get the full capability catalog, canonical workflows, and usage tips — no backend call, free. Use when: an AI client first connects to pangolinfo-mcp and needs to quickly grasp "what tools exist" / "how do they chain" / "which workflow for which scene"; user asks "what can you do" / "what capabilities are there"; capability audit before SOP planning. Don't use: for the full description of one specific tool (use tools/list — the 'summary' mode here gives one-liners only); for account balance or remaining credits (CONTRACT §9 forbids exposing account endpoints via MCP). Returns: { version, locale, liveTools[{name, domain, oneLiner, cost}], workflows[{title, steps[], note}], tips[] }. Pair with: ↓ AI decides which concrete tool to call next; does not consume downstream tools. Cost: 0 points (local data, no backend round-trip).

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo'summary' returns tool catalog + canonical workflows (default, token-light); 'full' also expands all 20 tool descriptions (use on first integration or when context budget allows).summary
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses no backend call, zero cost/local data, that it does not consume downstream tools, that summary mode only gives one-liners, and cites a contract constraint (CONTRACT §9) preventing account endpoints. That is unusually rich behavioral context for a read-only introspection 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?

Labeled sections (Use when / Don't use / Returns / Pair with / Cost) make it scannable and front-loaded. Minor redundancy: 'no backend call, free' is repeated later as 'Cost: 0 points (local data, no backend round-trip)', costing a small amount of tightness.

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, the description enumerates the return shape (version, locale, liveTools[{name, domain, oneLiner, cost}], workflows, tips), and covers cost, side effects, and next-step pairing. 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.

Parameters3/5

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

Schema description coverage is 100% and both params are enum-documented, so the schema already explains detail modes and clientSource. The description's phrase 'the summary mode here gives one-liners only' adds slight nuance about the detail param but largely restates the schema, so the baseline of 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?

States a specific verb and resource ('get the full capability catalog, canonical workflows, and usage tips') and explicitly frames itself as self-introspection, which cleanly separates it from all 20 sibling tools that hit Amazon data. An agent can immediately tell this is the meta/menu tool rather than a data tool.

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 'Use when' triggers (first connection, 'what can you do' questions, SOP planning) and an explicit 'Don't use' clause that routes to tools/list for single-tool detail and forbids using it for account balance. Both the alternative and the exclusion condition are named.

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

scrape_urlA

[Generic Amazon scrape — power-user escape hatch] Scrape pages the 5 purpose-built tools don't cover. Two input modes (pick one): ① content=bare fragment (keyword / nodeId / sellerId / ASIN) + site — backend builds a basic URL per parserName. content mode carries NO filter/sort/pagination — it's just the bare fragment. Best for simple pages when you only have the fragment. ② url=full Amazon link — put ANY filter/sort/pagination into this url (the only way, since content mode can't). Filter syntax examples: price $25-50 → '/s?k=earbuds&low-price=25&high-price=50'; sort by reviews → '&s=review-rank'; paginate → '&page=2'; category+price → '/s?i=aps&rh=n%3A172282&fs=true&low-price=25'. Use when: a standard tool can't build the target URL — "search X but only $25-50" / "results sorted by reviews" / "category filtered by price"; or the user already has a specific Amazon link. For any filtering, use url mode. Don't use: when a purpose-built tool fits — plain keyword search → search_amazon, single ASIN → get_amazon_product, seller → list_seller_products, category ranks → list_bestsellers/list_new_releases. Returns (format='json'): data.json[0].data.{ ... results[] ... }, shape depends on parserName. amzFollowSeller returns items[{options,price,delivery,shipsFrom,soldBy,hasSoldByLink,isFeatured?}], where hasSoldByLink explicitly tells whether the seller name was a hyperlink. ⚠️ If content/url doesn't match parserName, the backend returns data.{ status_code, rawHtml, url } (unparsed). Pair with: ↓ feed asin into get_amazon_product / get_amazon_reviews. Cost: ~1 point/call, ~5s. ⚠️ Pass exactly one of content / url (both or neither errors); filtering/pagination requires url mode; parserName must match the page type.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoFull Amazon URL (https://). Pass this OR content. Use when you already have a ready link (e.g. a filtered/sorted SERP copied from the browser). Example: 'https://www.amazon.com/s?k=earbuds&rh=p_36%3A2500-5000&s=review-rank'. Must match parserName.
siteNoAmazon site (in content mode the backend picks the domain from this). Defaults to amz_us. Optional in url mode (the URL already has the domain).amz_us
formatNoResponse format. Defaults to 'json' (structured results). Use 'markdown' for the rendered page text.json
contentNoBare fragment (backend builds the URL per parserName). Pass this OR url. Examples: 'wireless earbuds' (amzKeyword) / '172282' (nodeId for amzProductOfCategory) / 'ATVPDKIKX0DER' (sellerId for amzProductOfSeller) / 'B0B4NLGCH5' (ASIN for amzProductDetail, amzDeliveryTime, or amzFollowSeller). Users/AI usually only have the fragment — prefer this.
zipcodeNoZIP/postal code matching the site or URL country. Optional; backend picks one when omitted. Supported: US 10041/90001/60601/84104; UK W1S 3AS/EH15 1LR/M13 9PL/M2 5BQ; CA M4C 4Y4/V6E 1N2/H3G 2K8/T2R 0G5; DE 80331/10115/20095/60306; FR 75000/69001/06000/13000; JP 100-0004/060-8588/163-8001/900-8570; IT 20019/50121/00042/30100; ES 41001/28001/08001/46001; AU 2000_SYDNEY/3000_MELBOURNE; MX 01000/55000; SA Riyadh_الرياض/Jeddah_جدة; AE Abu Dhabi_ADCO Compound/Ajman_Aamra; BR 03001-000/20031-000.
parserNameYesParser deciding how the backend extracts the page AND builds the URL from content. Must match the page type: amzKeyword=keyword search (content=keyword) / amzProductOfCategory=category (content=nodeId) / amzProductOfSeller=seller storefront (content=sellerId) / amzProductDetail=single product (content=ASIN) / amzBestSellers / amzNewReleases / amzReviewV2=reviews / amzFollowSeller=follow-seller / amzVariantAsin=variant.
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and largely delivers: it discloses cost (~1 point/call, ~5s), return shapes per parserName, a failure mode where mismatched content/url yields unparsed data.{status_code, rawHtml, url}, and the mutual-exclusion rule that exactly one of content/url must be passed. These are non-obvious operational traits (cost, error semantics, silent-unparsed fallback) that an agent could not infer from the schema alone.

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 long, but the length is driven by a genuinely complex tool (7 params, 9 parsers, two mutually exclusive input modes) and it is well-structured with bold headers, bullets, and a front-loaded statement of what the tool is. A little redundancy between the mode descriptions and the 'Use when' block keeps it just short of 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?

With no output schema, the description supplies the missing return shape (json path, amzFollowSeller item fields including hasSoldByLink) and the unparsed fallback shape. It also covers cost, error conditions, the url-only filtering constraint, and downstream pairing (feed asin into get_amazon_product/get_amazon_reviews), which is everything an agent needs to call it correctly.

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 3 is the baseline, but the description adds genuine semantics the schema does not: that content mode carries NO filter/sort/pagination, that filtering is only possible via url mode, and concrete filter-syntax fragments (low-price/high-price, s=review-rank, page=2, rh/fs category filters). That mode-selection meaning goes beyond the field-level descriptions.

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?

It states a concrete verb+resource ('Scrape pages the 5 purpose-built tools don't cover') and immediately names the escape-hatch role relative to siblings. The 'Don't use' clause routes plain keyword search, single ASIN, seller, and category-rank requests to search_amazon, get_amazon_product, list_seller_products, and list_bestsellers/list_new_releases respectively, so an agent can distinguish it without opening any 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' and 'Don't use' clauses give both positive and negative routing criteria, and the two input modes are gated by their own when-to-use guidance (content for simple pages with only a fragment; url whenever filtering/sorting/pagination is needed, with the rule that filtering requires url mode). Alternatives are named by tool, not left to inference.

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

search_amazonA

[Amazon SERP scrape] Run a real Amazon keyword search and return the first-page ASIN list. Use when: user says "search Amazon for X" / "who sells X" / "top results for keyword X" / "competitors for X"; or you need a list of ASINs for a keyword as upstream input to deeper analysis. Don't use: for a single ASIN detail (use get_amazon_product); for category bestseller ranks (use list_bestsellers); for Google/external demand on the term (use ai_search or keyword_trends). Returns (format='json', default): data.json[0].data.{ pageIndex, nextPage, keyword, results[{ asin, title, price, star, rating, sales, badge, rank, sponsored, image, delivery }] } — ~22 rows/page. Pagination: use the 'page' param (default 1, 1-based); response's 'nextPage' holds the next page number, 'nextPage=null' means last page reached. Pair with: ↓ feed results[].asin into get_amazon_product / get_amazon_reviews for single-product deep-dive; ↓ feed the same keyword into keyword_trends to compare in-site vs external demand. Cost: ~1 point/page, ~5s. Only paginate when the user explicitly asks for more / Top-N (N>22) / all results — otherwise the first page is enough.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, 1-based. ~22 ASINs per page. Use response's pageIndex/nextPage to decide whether to continue: nextPage holds the next page number; nextPage=null (or absent) means last page reached. **Only paginate when the user explicitly asks for more / Top-N where N exceeds one page / all results** — otherwise the first page is enough.
siteNoAmazon marketplace. Defaults to 'amz_us' (US).amz_us
formatNoResponse format. Defaults to 'json' — structured search rows (asin, title, price, star, rating, sales, badge, rank, ...) ready for programmatic use. Use 'markdown' if you want the rendered SERP text instead.json
keywordYesSearch keyword. Examples: 'wireless earbuds' / 'stanley quencher' / 'iphone 16 case' / 'kitchen knife set'.
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).
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.8/5.0
Behavior5/5

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

No annotations exist, so the description carries the full burden and does so well: it discloses cost (~1 point/page, ~5s), page size (~22 rows), pagination semantics via nextPage, and the operational discipline 'only paginate when the user explicitly asks'. This is the behavioral context an agent needs that no structured field provides.

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?

Well front-loaded with labeled sections (Use when / Don't use / Returns / Pair with / Cost) that make scanning easy. Slightly verbose — pagination guidance is repeated in both the body and the schema's 'page' description — but every section earns its place.

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 structure (data.json[0].data.{...results[]}), page size, cost, pagination, and downstream pairing. Nothing an agent needs 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?

Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema: it explains the format='json' default and its row shape, and reinforces pagination intent with nextPage semantics. It does not contradict the schema's own parameter docs, though there is some overlap.

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 ('Run a real Amazon keyword search and return the first-page ASIN list') and explicitly names the sibling tools it is not (get_amazon_product, list_bestsellers, ai_search, keyword_trends). An agent can distinguish it from every related tool 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 explicit 'Use when' triggers (user says 'search Amazon for X', need ASINs as upstream input) and 'Don't use' exclusions that route to the correct alternatives per scenario. When-to-use, when-not, and alternatives are all covered.

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

search_amazon_alexaA

[Alexa Agent API] Ask Amazon Rufus and receive answers, grouped product recommendations and follow-up suggestions. Separate pools support the United States (default) and Japan. Use when: scenario-based discovery, gifts or open-ended shopping advice. Use search_amazon for explicit keywords and get_amazon_product for a single ASIN. Returns: data.json[{prompt,content,products[{title,items[{asin,url,title,cover,score,ratingsCount,price,originalPrice,describe}]}],follow_up_questions[]}]. Products and suggestions depend on Amazon's answer and may be empty. Cost: 6 points per prompt; N prompts=N×6. Turns within one call share context; separate calls do not. Non-screenshot requests use native HTTP; screenshots use the browser path. Latency varies with initialization, network and question, with no fixed-time guarantee. Allow at least 120 seconds in the client; do not issue concurrent duplicates while waiting.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoAmazon marketplace: us (United States, default) or jp (Japan). Pools are isolated; unavailable markets fail rather than falling back to the US.us
promptsYes1–5 natural-language prompts. Prompts within one call form a sequential conversation; separate calls do not retain context. Each prompt costs 6 points (N prompts=N×6); multiple turns increase latency.
screenshotNoReturn a page screenshot. False uses native HTTP; true explicitly selects the slower browser-rendered path.
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.6/5.0
Behavior5/5

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

There are no annotations, so the description carries the entire burden and does so thoroughly: point cost (6 per prompt, N×6), a 120-second client-side timeout requirement, an explicit warning against concurrent duplicate calls, the distinction between the native HTTP path and the slower browser screenshot path, and the caveat that products and suggestions may be empty. It also discloses that context is shared only within a single call, which materially affects how an agent should batch prompts.

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 before the labeled Use when / Returns / Cost / operational blocks, and each block is a single dense sentence. It runs long, but on a tool with no annotations and no output schema nearly every line carries information an agent needs; only the returns-format block slightly duplicates what the schema's nested field naming implies.

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 and no annotations, the description fills both gaps: it sketches the return shape (prompt, content, products with nested items, follow_up_questions), warns results may be empty, and covers cost, latency, concurrency, and market-pool behavior. Nothing an agent needs to invoke this correctly or set expectations is missing.

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 every parameter already carries its own documentation, including the pool-isolation failure mode, the 1–5 prompt limit, per-prompt cost, and the screenshot path. The description largely restates the same facts rather than adding new meaning such as prompt phrasing guidance or examples, 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?

The first sentence names a specific verb and mechanism (ask Amazon Rufus) and enumerates the concrete outputs: answers, grouped product recommendations, follow-up suggestions. It also frames the scope boundary (US vs Japan pools), and the 'Use when' clause explicitly distinguishes it from search_amazon and get_amazon_product, so an agent can separate it from all three siblings 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?

Explicit when-to-use is given ('scenario-based discovery, gifts or open-ended shopping advice') paired with named alternatives and the condition that selects each ('search_amazon for explicit keywords', 'get_amazon_product for a single ASIN'). This is the full when/when-not/alternative pattern rather than an implied context.

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

search_categoriesA

[Amazon category search] Match Amazon's category tree by keyword (Chinese or English) and return candidate nodes. Use when: user gave a keyword/concept rather than a category id, and a downstream tool needs categoryId / browseNodeId (e.g. filter_niches / filter_categories / list_category_products / inferring list_bestsellers slug); when you need to know where a product concept lives in Amazon's taxonomy. Don't use: when you already have categoryId/nodeId (use get_category_paths for breadcrumbs or a downstream filter directly); when you want to drill the subtree (use get_category_children). Returns: data.items.data[{ browseNodeId, browseNodeIdPath, browseNodeName, browseNodeNameCn, browseNodeNamePath, browseNodeNamePathCn, parentBrowseNodeIdPath, productType, sellable, hasChild }] + pagination. Pair with: ↓ feed browseNodeId into list_category_products / list_bestsellers (derive slug from path) / filter_niches / filter_categories; ↓ feed into get_category_children to drill further; ↓ feed into get_category_paths for breadcrumbs. Cost: ~1 point/call, ~3s.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoMarketplace to search categories in. Defaults to 'amz_us'.amz_us
keywordYesCategory name keyword (Chinese or English). Examples: 'headphones' / 'kitchen knives' / '无线耳机' / 'wireless earbuds'.
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the return shape (browseNodeId, path, names, sellable, hasChild, pagination) and cost (~1 point/call, ~3s). It implies a read-only search but never explicitly states non-mutating behavior or pagination limits, so a 4 rather than 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.

Conciseness4/5

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

Front-loaded with the core purpose followed by labeled Use/Don't use/Returns/Pair with/Cost sections that each earn their place. It is dense and slightly long, but structured and scannable rather than padded.

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 keyword-search tool with no output schema and no annotations, the description covers purpose, routing, return fields, cost, and downstream pairing – everything an agent needs to invoke it correctly and chain it.

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 coverage is 100%, so both the keyword and site parameters are already documented in the schema, including the Chinese/English keyword examples that the description merely echoes. Baseline 3 is correct since the schema does the heavy lifting.

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 (match/search) and resource (Amazon category tree by keyword) and immediately names the sibling tools it is not (get_category_children, get_category_paths). An agent can distinguish it from sibling category tools without opening any 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' and 'Don't use' sections give conditions including the case of already having a categoryId/nodeId, routing to get_category_paths or get_category_children as alternatives. Nothing is left to inference.

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

search_local_mapsA

[Local Maps via Google Maps] Local-business search (data source: Google Maps; use must comply with Google Terms of Service). Search local businesses at a given lat/lng — returns name, address, rating, review count, etc. Use when: user says "Y businesses in city X" / "local retail research" / "offline channel distribution" / "coffee shops/supermarkets/wholesalers in area" / "physical-store coverage density"; offline competitor/channel research; gauging physical-supply density of a category in a region. Don't use: for e-commerce listings (Amazon series); for global trends (use keyword_trends); for Google search results (use ai_search). Returns: data.organicResults[{ place_id, name, about, rating, number_of_reviews, borough, street_addr, city, postal_code, ... }]. Pair with: ↑ query (business keyword) + latitude/longitude/zoom (zoom 1=world, 13=city, 21=single building); ↓ presentation-focused, downstream rarely consumes. Cost: ~1.5 points/call, ~5s. Tips: zoom 13 (city, default) gives you a whole neighborhood; zoom 17+ narrows to one street.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoomNoMap zoom level, 1=world, 13=city, 21=building. Default 13.
limitNoMax results to return (1-100).
queryYesLocal search query. Examples: 'coffee shop' / 'wholesale electronics' / '电子产品批发' / 'pet store'.
languageNoBCP-47 language code, e.g. 'en', 'zh-CN'.en
latitudeYesLatitude of search center. Examples: 37.7822 (San Francisco) / 40.7128 (New York) / 34.0522 (Los Angeles).
longitudeYesLongitude of search center. Examples: -122.4642 (San Francisco) / -74.0060 (New York) / -118.2437 (Los Angeles).
clientSourceNo调用来源标记。仅由 Pangolinfo Skill 传 skill;普通 MCP 调用省略即可。

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the data source (Google Maps), a Terms-of-Service compliance obligation, cost (~1.5 points/call) and latency (~5s). It stops short of stating quota/rate-limit ceilings or failure modes on empty geocodes, so it is strong but not exhaustive.

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?

Labeled sections (Use when / Don't use / Returns / Pair with / Cost / Tips) make it scannable and front-loaded with purpose. The opening sentence's partial return list ('name, address, rating, review count') is then restated in the Returns block, a small redundancy in an otherwise dense, purposeful text.

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?

No output schema exists, so the description correctly enumerates the return shape (data.organicResults with place_id, name, about, rating, borough, city, etc.). With 7 parameters and only 3 required, it documents zoom/query/lat/lng but is silent on limit, language, and clientSource, leaving minor gaps for a search tool of this complexity.

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 description coverage is 100%, so the baseline is 3, but the description adds practical meaning: zoom 13 yields a whole neighborhood while 17+ narrows to one street, and it pairs query with latitude/longitude/zoom as the dial that controls result scope. It adds less for limit, language, and clientSource, which remain schema-only.

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

Purpose5/5

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

States a specific verb and resource ('Local-business search') and pins the scope to a lat/lng center returning name, address, rating, review count. It explicitly names what it is not (e-commerce Amazon series, keyword_trends, ai_search), 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?

Contains explicit 'Use when' triggers (local business counts, offline channel/competitor research, physical-store density) and a 'Don't use' block that routes to three named sibling tools for the cases this tool does not cover. Both directions are covered with concrete examples.

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. 21 tool updatesv0.1.2
    • First observedai_search
    • First observedfilter_categories
    • First observedfilter_niches
    • First observedget_amazon_alexa_questions
    • First observedget_amazon_delivery_time
    • First observedget_amazon_product
    • First observedget_amazon_reviews
    • First observedget_category_children
    • First observedget_category_paths
    • First observedkeyword_trends
    • First observedlist_bestsellers
    • First observedlist_category_products
    • First observedlist_new_releases
    • First observedlist_seller_products
    • First observedpangolinfo_capabilities
    • First observedscrape_url
    • First observedsearch_amazon
    • First observedsearch_amazon_alexa
    • First observedsearch_categories
    • First observedsearch_local_maps
    • First observedwipo_search

TDQS

A4.2/5.0

Scored across 21 tools

Disambiguation5/5

Every tool description carries explicit 'Use when' / 'Don't use' sections that cross-reference sibling tools (e.g. get_amazon_product vs get_amazon_delivery_time, search_amazon vs search_amazon_alexa, list_bestsellers vs list_new_releases vs list_category_products), leaving almost no room for misselection. The category cluster (search_categories, get_category_children, filter_categories, filter_niches, get_category_paths) is dense but each is clearly delineated by purpose and cost. scrape_url is explicitly framed as a fallback escape hatch, so its overlap is intentional and bounded.

Naming Consistency4/5

The dominant pattern is verb_noun with a consistent verb vocabulary (get_/list_/search_/filter_), applied cleanly across most tools. A few names deviate: ai_search, keyword_trends, pangolinfo_capabilities (noun-only) and wipo_search (noun_verb ordering). Deviations are minor and the names remain readable, so this is mostly consistent.

Tool Count4/5

21 tools sit at the heavy end, but the server spans genuinely distinct data domains (Amazon PDP/reviews/categories/niches/sellers/rankings, Google SERP, Google Trends, Maps, WIPO IP, Alexa), so most tools earn their place. A couple (get_amazon_delivery_time, get_amazon_alexa_questions) are narrow additions to existing tools, but nothing feels redundant. Slightly over-weight rather than bloated.

Completeness4/5

The surface covers a full scouting lifecycle: discovery (search_amazon, bestsellers, new releases), detail (get_amazon_product, reviews, delivery), taxonomy/metrics (categories, niches, paths), seller catalogs, external demand (SERP, Trends, Maps), and IP clearance (WIPO). CRUD-style gaps are not relevant to a read-only intelligence server, and chaining paths are well documented. Minor gaps exist (e.g. no standalone niche-to-category resolver), but agents can work around them via existing tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Hosted Amazon market-intelligence MCP for Claude and ChatGPT: query brands, sellers, ASINs, under-competed niches, the cross-seller operator network, observed buy-box history, and Amazon/Walmart cross-marketplace overlap. 65 read-only research tools over a pre-collected research dataset.
    1
    72
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    One MCP server providing access to 160+ live web data APIs (search, social media, e-commerce, real estate, jobs, travel, news, finance, and more) using dynamic discovery via 4 generic tools to avoid the agent's tool limit.
    5
    3
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    One MCP install that lets your AI agents discover and pay (x402 micropayments, USDC on Base + Solana) for 66 specialized real-time intelligence APIs - finance, crypto, insurance, immigration, legal, markets and more. 68 tools, pey-per-query, no subscription.
    69
    10 npm
    3
    Apache 2.0