Skip to main content
Glama
pangolinfo

Amazon All-in-One Scrape MCP

Official

pangolinfo-mcp

Pangolinfo MCP server — 18 Amazon e-commerce & IP data tools for AI assistants via Model Context Protocol.

🔗 Official site: www.pangolinfo.com

Plug your favorite AI client (Claude Code, Cursor, Cline, Windsurf, Codex, Hermes, OpenClaw) into Pangolinfo's Amazon scrape APIs and let the AI run real-time ad tracking, Sponsored Products analysis, VOC sentiment analysis, keyword monitoring, and competitor product audit — plus keyword research, listing analysis, review mining, niche discovery, category navigation, AI search lookups, keyword-trend checks, and WIPO trademark clearance — all from natural-language instructions.

⚠️ BREAKING CHANGE in 0.7.0 — pacer_search retired, merged into wipo_search

The standalone pacer_search tool was removed. US patent-litigation (PACER) lookups are now reached by passing enableLitigation=true to wipo_search — it finds the patent and joins the related US litigation cases in a single call. Prompts/scripts pinning pacer_search will get ToolNotFound; switch to wipo_search with enableLitigation.

Old name (≤ 0.2.x)

New name (0.3.0+)

google_ai_search

ai_search

google_trends

keyword_trends

Tool names changed to remove third-party brand references from the public MCP interface. Tool parameters, return shape, and pricing are unchanged.

Version

0.7.3

Tools

18 business tools (+ a free local pangolinfo_capabilities introspection call)

Transport

stdio (local) · streamable HTTP (hosted — see below)

Runtime

Node.js 18+

License

MIT

Get an API key

https://tool.pangolinfo.com/#/en/system/loading?sourceTag=github_amz


Install

The Pangolinfo Installer detects your AI client, writes the right config files, and you're done. Pass --scope=mcp to install only this MCP server (skip the Skills package).

macOS / Linux

curl -fsSL https://pangolinfo.dev/install.sh | sh -s -- \
  --agent=<your-agent> \
  --scope=mcp \
  --api-key=pgl_xxxxxxxxxxxx

Windows (PowerShell)

irm https://pangolinfo.dev/install.ps1 | iex; `
  Install-Pangolinfo -Agent <your-agent> -Scope mcp -ApiKey pgl_xxxxxxxxxxxx

<your-agent> is one of: claude-code, cursor, cline, windsurf, codex, hermes, openclaw.

After the installer finishes, restart your AI client so it picks up the new mcpServers entry.

Manual install (just download one file)

The release artifact is a single self-contained server.mjs (~800 KB) — all dependencies are bundled in. No npm install needed.

# macOS / Linux
mkdir -p ~/.local/lib/pangolinfo-mcp
curl -fsSL https://github.com/pangolinfo/pangolinfo-mcp/releases/latest/download/server.mjs \
  -o ~/.local/lib/pangolinfo-mcp/server.mjs
chmod +x ~/.local/lib/pangolinfo-mcp/server.mjs
# Windows (PowerShell)
$dir = "$env:LOCALAPPDATA\pangolinfo-mcp"
New-Item -ItemType Directory -Force -Path $dir | Out-Null
irm https://github.com/pangolinfo/pangolinfo-mcp/releases/latest/download/server.mjs `
  -OutFile "$dir\server.mjs"

Then wire it into your AI client — see the per-client snippets below. Point args at the file you just downloaded.

Developers: to build from source, git clone this repo and run npm install && npm run build. The produced dist/server.mjs is identical to the release asset.


Related MCP server: logimu-shopping-mcp

Get an API key

  1. Sign up at https://tool.pangolinfo.com/#/en/system/loading?sourceTag=github_amz

  2. Copy your pgl_xxxxxxxx key from the dashboard

  3. Top up credits if needed (each Amazon scrape call costs 0.75 credits; pangolinfo_capabilities is free)


Manual configuration (per AI client)

Replace /abs/path/to/pangolinfo-mcp/dist/server.mjs with your real path, and pgl_xxxxxxxx with your key.

Claude Code (~/.claude/settings.json)

{
  "mcpServers": {
    "pangolinfo": {
      "command": "node",
      "args": ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"],
      "env": { "PANGOLINFO_API_KEY": "pgl_xxxxxxxx" }
    }
  }
}

Prefer claude mcp add --scope user pangolinfo node /abs/path/to/dist/server.mjs — it writes the same entry without hand-editing JSON.

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "pangolinfo": {
      "command": "node",
      "args": ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"],
      "env": { "PANGOLINFO_API_KEY": "pgl_xxxxxxxx" }
    }
  }
}

Cline (VS Code extension)

Open Cline → MCP Servers → Edit settings JSON, then add:

{
  "mcpServers": {
    "pangolinfo": {
      "command": "node",
      "args": ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"],
      "env": { "PANGOLINFO_API_KEY": "pgl_xxxxxxxx" }
    }
  }
}

The settings file lives at <vscode-user>/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json. If you're on the standalone Cline CLI, use ~/.cline/data/settings/cline_mcp_settings.json instead.

Windsurf (~/.codeium/windsurf/mcp_config.json)

{
  "mcpServers": {
    "pangolinfo": {
      "command": "node",
      "args": ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"],
      "env": { "PANGOLINFO_API_KEY": "pgl_xxxxxxxx" }
    }
  }
}

Codex (~/.codex/config.toml)

[mcp_servers.pangolinfo]
command = "node"
args = ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"]

[mcp_servers.pangolinfo.env]
PANGOLINFO_API_KEY = "pgl_xxxxxxxx"

Hermes (~/.hermes/config.yaml)

mcp_servers:
  pangolinfo:
    command: node
    args: ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"]
    env:
      PANGOLINFO_API_KEY: pgl_xxxxxxxx

OpenClaw (~/.openclaw/openclaw.json)

{
  "mcpServers": {
    "pangolinfo": {
      "command": "node",
      "args": ["/abs/path/to/pangolinfo-mcp/dist/server.mjs"],
      "env": { "PANGOLINFO_API_KEY": "pgl_xxxxxxxx" }
    }
  }
}

Hosted (remote HTTP) — no local install

Don't want to install anything? Point your AI client at the hosted endpoint instead of a local server.mjs. This is the streamable HTTP transport (MCP spec), multi-tenant — you bring your own key on every request.

Endpoint

https://mcp.pangolinfo.com/mcp

Transport

Streamable HTTP (POST + SSE)

Auth

Your pgl_xxxxxxxx key, via Bearer header or URL query

Passing your API key — two ways

1. Authorization header (recommended)

Authorization: Bearer pgl_xxxxxxxx

This is the preferred method: the key stays out of URLs, logs, and browser history. The Bearer scheme is matched case-insensitively (bearer, BEARER, Bearer all work) and extra whitespace is tolerated.

2. ?api_key= URL query (fallback)

https://mcp.pangolinfo.com/mcp?api_key=pgl_xxxxxxxx

Easiest for clients that only let you paste a URL. If your key contains URL-special characters, URL-encode it. The header (method 1) takes precedence if both are supplied.

Client config example (Claude Code / Cursor — "url"-style remote MCP)

{
  "mcpServers": {
    "pangolinfo": {
      "url": "https://mcp.pangolinfo.com/mcp",
      "headers": { "Authorization": "Bearer pgl_xxxxxxxx" }
    }
  }
}

If your client can't set headers, fall back to the URL form: "url": "https://mcp.pangolinfo.com/mcp?api_key=pgl_xxxxxxxx".

Notes for custom / raw HTTP integrations

If you're calling the endpoint directly (not through a standard MCP client):

  • POST your JSON-RPC body to /mcp.

  • The MCP streamable transport normally requires the request to advertise both application/json and text/event-stream in its Accept header. This server backfills the missing media type for you, so a plain Accept: application/json, Accept: */*, or even a missing Accept header all work — you don't need to hand-craft it.

  • A 401 means the key was not found in either the header or the query string — check that your client actually sent it (some libraries drop the Authorization header on cross-origin redirects).


Tools (18)

See MCP-TOOLS-MAP.md for the full coordination graph (which tools chain into which).

#

Tool

Purpose

Cost (credits)

1

search_amazon

Amazon keyword search → structured product list

0.75

2

get_amazon_product

Single-ASIN listing detail (title / bullets / features / aiReviewsSummary)

0.75

3

get_amazon_reviews

Batch reviews for an ASIN (VOC mining)

0.75

4

list_bestsellers

Amazon Bestsellers by category

0.75

5

list_new_releases

Amazon New Releases by category

0.75

6

list_seller_products

Catalog of products under one seller

0.75

7

list_category_products

All products in a category leaf

0.75

8

search_categories

Search Amazon category tree by keyword

0.75

9

get_category_children

Drill down one level in the category tree

0.75

10

filter_categories

Filter category nodes by criteria

0.75

11

filter_niches

Niche discovery (size × competition × growth)

0.75

12

get_category_paths

Resolve full ancestor paths for a category node

0.75

13

search_local_maps

Google Maps local business search

0.75

14

wipo_search

WIPO global design / trademark search (IP clearance). Set enableLitigation=true to also join related US patent-litigation (PACER) cases in the same call

2 (+12 when enableLitigation finds a patent)

15

ai_search

AI Search via Google SERP (AI Overview + organic, with compliance disclaimer)

2

16

keyword_trends

Keyword Trends via Google Trends (with compliance disclaimer)

1.5

17

scrape_url

Power-user escape hatch: scrape a raw Amazon URL + parserName (non-standard pages)

0.75

18

search_amazon_alexa

Amazon Rufus AI conversational product picks (scene-based, no keyword)

6

Plus a free local call: pangolinfo_capabilities returns the full tool catalog, canonical workflows, and usage tips with no backend round-trip (0 credits). It is a self-introspection helper, not one of the 18 data tools.

Default marketplace is Amazon US (marketplaceId=ATVPDKIKX0DER, zip=90001). Override per call via tool arguments.

⏱️ Slow tools & your client's tool-call timeout

Two tools legitimately run long because they wait on live AI generation:

Tool

Typical latency

Worst case

search_amazon_alexa (Rufus)

60–90s per prompt

>200s for multiple prompts

ai_search

~30s

~60s

Most MCP clients enforce a per-tool-call timeout — often 60 seconds of silence — and abort the call if nothing comes back in time. When that happens the client reports a transport-level timeout/disconnect, and the agent mistakes it for "the tool is unavailable/broken." This is the usual reason search_amazon_alexa gets flagged as unavailable — it reliably crosses the silent 60s line.

Two things keep this from happening:

  1. The server emits progress heartbeats. While a tool runs, the server sends a notifications/progress every 15s if your client included a progressToken in the call. Spec-compliant clients reset their idle timeout on each heartbeat, so the whole 60–90s render stays under the wire. Most modern MCP clients send a progressToken automatically — no action needed.

  2. Raise the client timeout for clients that don't honor progress. If your client has no progressToken support or a hard cap, bump its MCP tool-call timeout to ≥120s before using search_amazon_alexa. Where to set it depends on the client (examples):

    • Claude Code / config-based clients: raise the MCP request/tool timeout in the client config.

    • Custom SDK clients: pass a larger timeout (and, ideally, a progressToken) in the callTool request options.

Also prefer exactly one prompt per search_amazon_alexa call — multiple prompts stack latency linearly and make the timeout far more likely.


Auth resolution order

The server resolves the API key with this priority:

  1. CLI args: --api-key=pgl_xxx --api-base=... --scrape-base=...

  2. Env vars: PANGOLINFO_API_KEY, PANGOLINFO_API_BASE, PANGOLINFO_SCRAPE_BASE

  3. Config file at ~/.pangolinfo/config.json:

    {
      "api_key": "pgl_xxxxxxxxxxxx",
      "api_base": "https://extapi.pangolinfo.com",
      "scrape_base": "https://scrapeapi.pangolinfo.com"
    }
  4. Missing key → startup failure with an actionable error.

CLI args win over env vars — convenient when you want per-server keys without polluting the global environment.


Internationalization

Tool descriptions and error hints are available in English and Chinese. The language is resolved in this order: --lang=zh|enPANGOLINFO_LANG=zh|en → OS locale ($LANG starting with zh* → Chinese, otherwise English) → English when there is no locale signal at all. So a Chinese-locale machine gets Chinese automatically; everyone else gets English. Force a language explicitly:

"env": {
  "PANGOLINFO_API_KEY": "pgl_xxxxxxxx",
  "PANGOLINFO_LANG": "zh"
}

Startup logs are always English (operator-facing); tool descriptions and error hint fields follow the resolved locale.


Verify your install

After restarting your AI client, ask it:

List all available pangolinfo MCP tools.

You should see 18 tools. Then try:

Use pangolinfo_capabilities with mode "summary".

This is a free local call — if it returns the tool catalog, your install is wired correctly. Next, run something paid like:

Search Amazon for "wireless mouse" and return the top 5 results.

Expected: ~0.75 credits deducted, ~300 KB of structured product data returned.


Development

npm install
npm run dev        # tsx src/server.ts — hot-reload
npm run build      # esbuild → dist/server.mjs
npm run typecheck  # tsc --noEmit
npm start          # node dist/server.mjs

Project layout

src/
├── server.ts           MCP stdio entry + tool registration
├── auth.ts             API key resolution (CLI > env > config file)
├── client.ts           HTTP client (Authorization, User-Agent)
├── errors.ts           PangolinfoError + status-code mapping
├── config.ts           Default endpoints / constants
├── i18n.ts             zh/en translation lookup
└── tools/
    ├── _types.ts             Tool / ToolContext type definitions
    ├── index.ts              Tool registry (18 tools + capabilities)
    └── <verb_noun>.ts        One file per tool

Adding a new tool

  1. Create src/tools/<verb_noun>.ts exporting a Tool object — mirror search_amazon.ts.

  2. Import it in src/tools/index.ts and append to the tools array.

  3. Schema is zod; .describe() every field — the AI reads those.

  4. Never call fetch directly — use ctx.client.post(...). Auth is already injected.

  5. Throw PangolinfoError on failure; the HTTP client already throws this for non-2xx responses.


Security & Data Handling

We take operator and user safety seriously. By design, this MCP server:

  • Brings your own key. Authentication is via your personal PANGOLINFO_API_KEY (issued at https://tool.pangolinfo.com/#/en/system/loading?sourceTag=github_amz). The key is read locally from your AI client's config or environment — it is never transmitted anywhere except to https://scrapeapi.pangolinfo.com (or https://mcp.pangolinfo.com for the hosted variant) over TLS 1.2+.

  • No telemetry. This server does not phone home, does not collect usage analytics, and does not log your prompts. The only outbound traffic is the actual Amazon / Google / WIPO scrape API calls you explicitly invoke through tools.

  • No PII collection. No user account info, no email, no IP geolocation, and no prompt content is persisted by this server. Tool calls forward only the parameters you (or the AI agent) supplied.

  • Read-only. Every tool is a strictly read-only data lookup. None of them can write to Amazon, place orders, post reviews, modify listings, or take any side-effecting action on third-party platforms.

  • HTTPS-only transport. Both the stdio variant (local) and the hosted variant (https://mcp.pangolinfo.com/mcp) require HTTPS; HTTP requests are refused.

  • Open source. The full source is in this repository under MIT license — anyone can audit what the server sends and where.

  • Responsible use. Pangolinfo APIs aggregate public e-commerce data. You are responsible for using the returned data in compliance with the terms of service of the underlying platforms (Amazon, Google, etc.) and with applicable laws in your jurisdiction.

Report security issues privately to security@pangolinfo.com — please do not file public GitHub issues for vulnerabilities.


Support


License

MIT © Pangolinfo

Available Tools

19 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
marketplaceIdNoAmazon marketplace id. Common: US, UK, DE, JP, FR, IT, ES, CA. Defaults to US.US
timeRangeYesAggregation time range (required). Examples: 'l7d' (last 7 days — verified working). The exact enum is backend-defined; 'l7d' is the safest known value.
sampleScopeYesSample scope (required). Examples: 'all_asin' (all ASINs — verified working).
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'.
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'.
unitSoldSumMinNoMin total units sold.
unitSoldSumMaxNoMax total units sold.
netShippedGmsSumMinNoMin total GMS (gross merchandise sales).
netShippedGmsSumMaxNoMax total GMS.
searchVolumeSumMinNoMin total search volume.
searchVolumeSumMaxNoMax total search volume.
buyBoxPriceAvgMinNoMin average buy-box price (marketplace currency).
buyBoxPriceAvgMaxNoMax average buy-box price.
buyBoxPriceTiersNoPrice-tier filter. Allowed: budget, mainstream, premium, luxury.
returnRatioLevelsNoReturn-rate quality buckets. Allowed: excellent, average, risk.
searchToPurchaseRatioLevelsNoSearch-to-purchase conversion buckets. Allowed: to_improve, average, excellent.
extraFiltersNoPass-through for any other upstream filter (e.g. unitSoldTrendDirections, newAsinCountLevels, metricChangeRateBuckets). Keys must match the upstream doc verbatim.

TDQS

A4.5/5.0
Behavior4/5

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

Discloses cost (~1 point/page, ~5s), pagination limits, and extraFilters pass-through. No annotations, so description covers behavior adequately, though could explicitly state read-only nature.

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-structured with purpose upfront, then usage, don't-use, returns, pairing, cost, and tips. Slightly long but every sentence adds value; could be more concise.

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

Completeness4/5

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

For a tool with 20 parameters and no output schema, the description covers return structure, pagination, cost, and limitations. Additional info like example field names and pairing with other tools enhances completeness.

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?

All parameters have schema descriptions (100% coverage). Description adds context: categoryId dual role, timeRange examples, pagination limits, and extraFilters usage. Adds value beyond 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?

Clearly states it filters categories by metrics or acts as a detail endpoint. Distinguishes from siblings like filter_niches and list_category_products.

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?

Explicitly lists when to use (e.g., 'find categories worth entering') and when not to use, with specific alternative tools. Provides pairing and pagination tips.

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
marketplaceIdNoAmazon marketplace id (required). Common: US, UK, DE, JP, FR, IT, ES, CA. Defaults to US.US
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).
nicheTitleNoKeyword match against niche titles. Examples: 'iphone 16 wallet case' / 'wireless earbuds for sports'.
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).
sortFieldNoSort field; any response field name is accepted (e.g. 'searchVolumeT90', 'avgProductPrice').
sortOrderNoSort order: 'asc' or 'desc'.
searchVolumeT90MinNoMin search volume over last 90 days.
searchVolumeT90MaxNoMax search volume over last 90 days.
searchVolumeT360MinNoMin search volume over last 360 days.
searchVolumeT360MaxNoMax search volume over last 360 days.
searchVolumeGrowthT90MinNoMin 90-day search-volume growth rate (decimal, 0.1 = +10%).
searchVolumeGrowthT90MaxNoMax 90-day search-volume growth rate.
minimumPriceMinNoLower bound on the niche's minimum product price.
maximumPriceMaxNoUpper bound on the niche's maximum product price.
productCountMinNoMin product count in the niche.
productCountMaxNoMax product count in the niche.
avgReviewCountMinNoMin average review count.
avgReviewCountMaxNoMax average review count — lower means less competition.
avgReviewRatingMinNoMin average review rating (0-5).
top5ProductsClickShareT360MaxNoMax top-5-products click share over 360 days (0-1). Lower = more fragmented niche, more opportunity.
returnRateT360MaxNoMax return rate over 360 days (0-1).
extraFiltersNoPass-through for any other upstream filter (e.g. sponsoredProductsPercentageT360Min, successfulLaunchesT360Max, avgBestSellerRankMax). Keys must match the upstream doc verbatim.

TDQS

A5/5.0
Behavior5/5

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

With no annotations, the description fully discloses pagination behavior (page 1-based, size capped at 10, default 3, hasNext flag), cost (~1 point, ~5s), and filter range semantics (e.g., return rate as decimal 0-1).

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?

Well-structured with clear sections (use, don't use, returns, pair with, cost, tips), front-loaded with purpose, and every sentence adds value without redundancy.

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 tool with 23 parameters, no output schema, and no annotations, the description is comprehensive: covers pagination, cost, return fields, filter examples, and pairings, making it fully actionable.

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%, but the description adds critical context: size default rationale (AI context limits), extraFilters pass-through, sortField accepting any response field, and a classic blue-ocean filter combo.

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

Purpose5/5

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

The description clearly states it filters Amazon niches by 50+ commercial metrics, serves as a niche detail endpoint, and explicitly distinguishes from sibling tools like filter_categories and search_amazon.

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

Usage Guidelines5/5

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

Provides explicit when-to-use examples (blue ocean, high search/low competition, niche detail) and when-not-to (full categories, products, plain keyword search) with alternative tool names.

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, price, star, rating, brand, seller{name,id}, parentAsin, ratingDistribution[], aiReviewsSummary, bestSellersRankItems, reviews[{date,star,content,helpful,...}], productOverview[], features[], productDescription[], images[], variantDetails[], attributes[], category_id, breadCrumbs, ... } — 30+ fields (variantDetails summary included). 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 chars uppercase. Examples: 'B09B8V1LZ3' (Echo Dot 5) / 'B0CRMZHDG8' (Stanley Quencher) / 'B0BDHWDR12' (AirPods Pro 2).
siteNoAmazon marketplace. Defaults to 'amz_us' (US).amz_us
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).
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

TDQS

A5/5.0
Behavior5/5

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

No annotations exist, so the description carries full burden. It discloses cost (~1 point/call, ~5s), that PDP carries only ~5-10 reviews, and details the return structure. This is highly transparent.

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?

Every sentence is purposeful, structured with clear sections (use/don't use/returns/pair/cost). There is zero waste, and it is front-loaded with the core purpose.

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?

Despite no output schema, the description fully enumerates the return fields. It covers cost, timing, pairing, and limitations. The description is complete for an agent to invoke correctly.

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%, but the description adds value with examples (ASIN examples), usage context for zipcode (cross-country rejection), and format explanations (json vs markdown). It also outlines the entire return object.

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

Purpose5/5

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

The description starts with 'Scrape the full PDP for one ASIN', which is a specific verb+resource. It clearly distinguishes from siblings like search_amazon and get_amazon_reviews.

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 (specific ASIN, SOP step), when-not-to-use (many products, reviews only), and alternatives (search_amazon, list_*, get_amazon_reviews) are all provided.

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.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-char uppercase alphanumeric). Examples: 'B09B8V1LZ3' / 'B0CRMZHDG8'.
siteNoAmazon marketplace. Defaults to amz_us.amz_us
pageCountNoNumber of review pages to fetch (~10 reviews per page). **Costs 10 points per page** — control accordingly. Defaults to 1.
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
sortByNoSort order: 'recent' (newest first — track current sentiment) or 'helpful' (most-upvoted first — highest impact reviews).recent
mediaTypeNoReview type: 'all_contents' for all, 'media_reviews_only' for reviews with photos/videos only (higher credibility).all_contents
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).

TDQS

A4.8/5.0
Behavior5/5

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

No annotations provided, but description fully discloses expensive cost (10 points per page), recommends starting with pageCount=1, and provides strategic tips on filters. Also explains return structure and pairing with other tools for downstream tasks.

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-structured with sections (use when, don't use, returns, cost, tips) and front-loaded with purpose. Though lengthy, each sentence adds value; slight reduction possible without losing clarity.

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, but description provides detailed return structure (fields like reviewId, date, star, content) and explains pairing with other tools. Covers all aspects for a complex 7-param tool with enums and strategic advice.

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. Description adds significant value by explaining the purpose of each filter (e.g., 'critical' for pain-point mining), giving usage examples, and providing cost/strategy tips beyond schema details.

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

Purpose5/5

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

Clearly states batch scraping of real buyer reviews for an ASIN with filtering options. Uses specific verb 'page-fetch' and resource 'reviews', distinguishing from get_amazon_product which carries only 5-10 reviews.

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?

Explicitly lists use cases (e.g., 'look at X's negative reviews', 'mine pain points') and when not to use (when PDP reviews suffice or for keyword search), with alternative tools named (get_amazon_product, search_amazon).

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
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.
pageNoPage number, 1-based.
sizeNoPage size.

TDQS

A4.8/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. It discloses response structure (fields like browseNodeId, hasChild), pagination details (page, size, hasNext), cost (~1 point/page, ~3s), and a usage caveat (only paginate when necessary).

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?

Description is detailed but well-structured: purpose first, then usage guidelines, return details, pairing, cost. Every sentence adds value. Could be slightly more concise, but front-loading ensures agent gets key info quickly.

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

Completeness5/5

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

Given no annotations and no output schema, description covers all essential aspects: purpose, when to use vs avoid, parameter details, return structure, pagination, cost, and pairing with siblings. No gaps for an agent to invoke 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 has 100% coverage, but description adds value by explaining parameter usage beyond schema: examples of parentBrowseNodeIdPath values (e.g., '2619526011'), how omitting it fetches roots, and pagination parameter behavior (defaults, max size). Adds context without redundancy.

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

Purpose5/5

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

The description clearly states the tool lists direct children of a category node in Amazon's category tree, using specific verbs ('List direct children') and resources ('from any node or start at roots'). It distinguishes from siblings like search_categories (keyword jump) and list_category_products (products vs subcategories).

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?

Explicitly provides when to use (e.g., 'show me Amazon's category tree', 'subcategories under X', 'list top-level departments') and when not to use (keyword jumps, product listing). Also mentions pairing with sibling tools like search_categories and list_category_products.

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
categoryIdsYesCategory IDs to resolve full path for. Examples: ['2619526011'] (Appliances) / ['172282', '11965861'] (Electronics + Musical Instruments).
siteNoAmazon marketplace. Defaults to 'amz_us' (US).amz_us

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses cost (~1 point/call), speed (~2s), and that it's cheaper than N single resolutions. Also notes downstream rarely depends on it (presentation-only). No contradictions.

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?

Description is well-organized into sections with bullet points for returns and pairing. Slightly verbose but each sentence adds value. Could be slightly more concise but no waste.

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, but description explains return structure in detail (data.items with fields). Parameter meanings are clear from schema and description. For a simple 2-param tool, this is fully complete.

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% with both parameters having descriptions. The description adds context beyond schema: provides example paths, explains batch behavior, and details return format. Baseline 3, increased due to added value.

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?

Description clearly states it batch-resolves category IDs to full paths with an example ('Electronics > Headphones'). Explicitly distinguishes from sibling tool get_category_children (tree structure) and notes other tools already return browseNodeNamePath for single IDs.

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?

Explicitly states when to use (need readable category context, multiple IDs) and when not to use (single ID, tree structure). Also mentions pairing with prior steps like filter_niches/filter_categories output.

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
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.
siteNoAmazon marketplace. Defaults to amz_us.amz_us
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).
formatNoResponse format. Defaults to 'json' — structured Top-50 ranked ASIN list. Use 'markdown' for the rendered page text.json

TDQS

A4.7/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. It discloses the cost (~1 point, ~5s), response structure details (including nested JSON), and behavior of the zipcode parameter (optional, random when omitted). It could mention rate limits or authentication, but the provided information is sufficient for safe invocation.

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?

The description is exceptionally well-structured: a bold summary, then clear 'Use when', 'Don't use', 'Returns', 'Pair with', and 'Cost/Tips' sections. Every sentence adds value without redundancy. It is packed with information while remaining easy to scan.

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?

Despite having no output schema, the description thoroughly explains the return value structure, including the need to parse recsList twice and the fields within each row. It also covers cost, tips, and parameter behavior. For a tool with 4 parameters, this is complete.

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 adds value by explaining how to find the categorySlug (via URL), the meaning of the zipcode parameter with examples, and the purpose of the format parameter. This extra context elevates the score above the baseline.

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

Purpose5/5

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

The description opens with a clear statement: 'Top-50 ranking for a category with 24h rank deltas.' It specifies the resource (Amazon Best Sellers), the verb (list), and key features (rank, deltas). It also distinguishes from siblings like list_new_releases and list_category_products, making the purpose unmistakable.

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

Usage Guidelines5/5

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

The description provides explicit 'Use when' scenarios (e.g., 'user says X category bestsellers'), explicit 'Don't use' cases with alternatives (e.g., 'for new arrivals use list_new_releases'), and pairing suggestions with other tools. Tips for obtaining the categorySlug and cost/time estimates further guide appropriate use.

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
nodeIdYesAmazon category Browse Node ID (numeric). Examples: '172282' (Electronics) / '2619526011' (Appliances) / '11965861' (Musical Instruments). Obtain via search_categories or get_category_children.
siteNoAmazon marketplace. Defaults to amz_us.amz_us
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).
formatNoResponse format. Defaults to 'json' — structured category listings. Use 'markdown' for the rendered page text.json
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.

TDQS

A4.9/5.0
Behavior5/5

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

Discloses pagination logic (page param, nextPage, maxPage), cost (~1 point/page, ~5s), and explicit instruction to only paginate when user asks. No annotations exist, but description fully covers behavioral traits.

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 well-structured: core purpose first, then guidelines, return format, pagination, pairing, cost. Every sentence earns its place, but slightly verbose with repetition of pagination info in both description and param section.

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, description details return structure and pagination behavior. Covers pairing, cost, and when to paginate. Complete for a complex tool with five parameters.

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%, but description adds context: nodeId sources, zipcode cross-country rejection, format 'markdown' usage, and pagination details for page param. Each parameter is enriched with usage 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?

The description clearly states it lists on-sale products under a Browse Node ID, paginated with 24 rows per page. It distinguishes from siblings like list_bestsellers and filter_categories, making the purpose unambiguous.

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?

Explicitly states when to use (category listing after picking nodeId) and when not to use (top 50 winners, aggregate metrics, niche). Also specifies pairing with other tools, providing comprehensive guidance.

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
categorySlugYesAmazon New Releases category slug (lowercase, hyphenated). Examples: 'electronics', 'home-garden'. Find these in the URL path on amazon.com/gp/new-releases.
siteNoAmazon marketplace. Defaults to amz_us.amz_us
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).
formatNoResponse format. Defaults to 'json' — structured ranking list. Use 'markdown' for the rendered page text.json

TDQS

A4.9/5.0
Behavior5/5

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

In the absence of annotations, the description fully discloses behavior: backend cap, cost (~1 point/call, ~5s), and detailed return structure including parsing instructions for recsList. No contradictions.

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

Conciseness5/5

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

Despite length, description is well-structured with clear sections (what, use when, don't use, returns, pair with, cost). Each sentence adds value; no redundancy.

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

Completeness5/5

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

Given 4 parameters and no output schema, the description provides complete guidance: param details, return format with parsing, pairing suggestions, and cost. All necessary information for correct invocation is present.

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%, but the description adds extra context (e.g., where to find categorySlug, cross-country zip rejection, format usage). This goes beyond the schema descriptions, justifying a score above baseline 3.

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

Purpose5/5

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

The description clearly states it returns the top-50 best-selling new releases (within 30 days) for a category, with explicit mention of 'Amazon New Releases' and backend cap. It distinguishes from siblings by specificity to new releases.

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?

Explicitly lists when to use (e.g., 'new arrivals', 'breakout new products') and when not to use (e.g., 'for evergreen winners use list_bestsellers'). Provides clear alternatives and context.

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. 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. 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. Amazon first-party sellerId = 'ATVPDKIKX0DER'.

ParametersJSON Schema
NameRequiredDescriptionDefault
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.
siteNoAmazon marketplace. Defaults to amz_us.amz_us
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).
formatNoResponse format. Defaults to 'json' — structured seller listings. Use 'markdown' for the rendered page text.json
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).
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.

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 fully bears the burden of behavioral disclosure. It details two pagination modes (page vs pageCount), how pageCount merges pages, what happens to response fields when multi-page accumulate is used (pageIndex/nextPage blanked), billing (1 point/page), timing (~5s), and error handling (failed pages refunded).

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

Conciseness4/5

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

The description is well-structured with paragraphs, bullet points, and clear headings. It front-loads the core purpose and usage guidance. While it is lengthy, every sentence adds value – the tool is complex and requires this level of detail. A slight improvement could be further condensing the 'Tips' section into the parameter descriptions.

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?

Despite having no output schema, the description explicitly documents the response structure (data.json[0].data.{ pageIndex, maxPage, nextPage, results[...] }) and explains how to iterate with nextPage. It covers all parameters, two pagination modes, category filtering, marketplace defaults, and integration with sibling tools. For a 7-parameter tool with multiple modes, this is very complete.

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?

The input schema already has 100% coverage, but the description adds substantial context: how to find sellerId (from product page 'sold by' link or amazon.com/sp URL), zipcode cross-country rejection, the difference between page and pageCount (one locates a specific page, the other accumulates), and how to extract categoryId from storefront URL. This goes far beyond what the schema alone provides.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'List all listings under a merchant ID, paginated (24 rows/page).' It immediately communicates the tool's scope (entire catalog of a seller) and distinguishes it from single-product tools like get_amazon_product.

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

Usage Guidelines5/5

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

The description provides extensive usage guidance: explicit use cases ('show me this seller's products', 'competitor storefront category breadth'), a clear 'Don't use' section (requires merchant ID, not for single product), and pairs with sibling tools (get_amazon_product for deep-dives). It even explains how to extract the required sellerId.

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 the full description of every tool (~8KB — use on first integration or when context budget allows).summary

TDQS

A4.9/5.0
Behavior5/5

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

No annotations provided, so description fully bears the burden. Discloses that it's local with no backend call, cost 0 points, and returns a specific structure. No contradictions; all behavioral traits are clearly stated.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, use cases, don't use, returns, pairing, cost). However, it is slightly verbose; could streamline some phrasing without losing meaning. Still very effective.

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

Completeness5/5

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

Given no output schema, the description provides a detailed return structure (version, locale, tools, workflows, tips). Parameter semantics fully covered. Context about cost and usage pairs is complete. Siblings are many but tool's unique role is clear.

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% with one parameter 'detail'. Description adds value by explaining the enum values ('summary' vs 'full') and their effects, including token size estimates. This goes beyond the schema's description.

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

Purpose5/5

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

The description clearly defines the tool as a self-introspection call that returns the full capability catalog, canonical workflows, and usage tips. It uses specific verbs ('get') and resources ('capability catalog') and distinguishes from siblings by being local and free, contrasting with tools/list for detailed descriptions.

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?

Explicitly states when to use (first connection, user asks 'what can you do', capability audit before SOP planning) and when not to use (for full tool descriptions, for account balance). Also mentions pairing with deciding which tool to call next, providing clear guidance.

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. ⚠️ 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
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.
contentNoBare fragment (backend builds the URL per parserName). Pass this OR url. Examples: 'wireless earbuds' (amzKeyword) / '172282' (nodeId for amzProductOfCategory) / 'ATVPDKIKX0DER' (sellerId for amzProductOfSeller) / 'B09B8V1LZ3' (ASIN for amzProductDetail). Users/AI usually only have the fragment — prefer this.
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
zipcodeNoZIP code matching the site's country. Optional; backend picks one if omitted.

TDQS

A5/5.0
Behavior5/5

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

Despite no annotations, the description discloses behavioral traits: input modes, that content mode carries no filter/sort/pagination, that exactly one of content/url must be provided, that parserName must match the page type, the return shape, error behavior when mismatch, cost (~1 point, ~5s), and pairing advice. This is thorough disclosure.

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

Conciseness5/5

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

The description is well-structured with sections (①②), bullet points, and clear warnings. Every sentence adds value; it is efficient and not verbose. The structure makes it easy to parse quickly.

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

Completeness5/5

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

Given the tool's complexity (6 parameters, 9 parserName options, two modes), the description covers all necessary aspects: input modes, limitations, prerequisites (parserName match), return shape, cost, pairing with other tools, and error behavior. No gaps are apparent.

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%, but the description adds significant meaning beyond the schema: it explains the two input modes with examples, when to use each, filter syntax examples for url, parserName mappings, optionality of site and zipcode, and default values. This far exceeds the schema's 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?

The description clearly states that this is a generic Amazon scrape for pages not covered by 5 purpose-built tools, and explicitly names those sibling tools. It distinguishes itself as a 'power-user escape hatch' with two input modes, making the purpose very specific and unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use each mode (content vs url), including filter/sort/pagination requirements, and explicitly states when not to use it (when a purpose-built tool fits), listing exact alternatives like search_amazon, get_amazon_product, etc. This is comprehensive.

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
keywordYesSearch keyword. Examples: 'wireless earbuds' / 'stanley quencher' / 'iphone 16 case' / 'kitchen knife set'.
siteNoAmazon marketplace. Defaults to 'amz_us' (US).amz_us
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).
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
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.

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 fully covers behavioral traits: pagination details (nextPage, page param), response structure, cost (~1 point/page, ~5s), and when to paginate (only on explicit user request). No contradictions.

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

Conciseness4/5

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

The description is dense and well-structured, front-loading purpose and usage. While every sentence is informative, it is slightly verbose due to extensive usage guidelines and pairing info. Could be more concise but still effective.

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

Completeness5/5

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

Given no output schema, the description covers return structure, pagination, cost, and pairing with siblings. All parameter details are thorough, and the context of sibling tools is addressed. Complete for a search tool.

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?

All 5 parameters have schema descriptions (100% coverage). The description adds value by explaining format choices, zipcode cross-country rejection, and pagination guidance beyond 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?

The description begins with a clear verb and resource: 'Run a real Amazon keyword search and return the first-page ASIN list.' It also distinguishes from siblings by explicitly listing tools for single ASIN detail, bestseller ranks, and external demand.

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

Usage Guidelines5/5

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

Provides explicit when-to-use triggers (e.g., 'user says "search Amazon for X"') and when-not-to-use alternatives (e.g., 'Don't use: for a single ASIN detail (use get_amazon_product)'). Also includes pairing instructions for deeper analysis.

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

search_amazon_alexaA

[Amazon Rufus AI conversational recommendations] Ask Amazon's AI shopping assistant Rufus in natural language, get grouped structured product recommendations + Rufus text reply + follow-up questions. Use when: user says "ask Amazon AI X" / "Rufus recommendations" / "find products conversationally" / "products for a scene (gifting / camping / moving)" / "open-ended sourcing" / "I have no keyword, just a scenario". Don't use: when you already have a clear keyword and want SERP (use search_amazon); category bestseller ranks (use list_bestsellers); single-ASIN detail (use get_amazon_product); Google-side AI search (use ai_search). Returns: data.json[{ prompt, content, products[{ title, items[{ asin,url,title,cover,score,ratingsCount,price,originalPrice,describe }] }], follow_up_questions[], screenshot }] + top-level taskId / url / screenshot. Note: follow_up_questions is snake_case (passed through from backend verbatim). Pair with: ↓ feed asin into get_amazon_product / get_amazon_reviews for deep-dive; follow_up_questions can seed the next round's prompts for multi-turn exploration. Cost: 6 points PER PROMPT (billed by prompts count, NOT a flat 6 per call; N prompts = N×6 points). ⚠️ Slow tool: strongly prefer sending exactly 1 prompt per call. A single prompt typically takes 60–90s (Rufus generates the conversation live — far slower than a normal scrape); multiple prompts add up linearly and can exceed 200s, costing both time and points. Treat this as a long-running call: set a generous timeout, and do NOT retry or fire concurrent duplicate calls just because it didn't return instantly. For several needs, make several single-prompt calls rather than batching them.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptsYesConversation prompts (zh or en). Each item is sent to Rufus independently and returns its own grouped results. **Billed per prompt: 6 points each** (N prompts = N×6 points, NOT a flat 6 per call). **Strongly prefer exactly 1 prompt per call**: this is a slow tool — 60–90s for one, and multiple add up linearly and can exceed 200s. Max 5, but multiple is both slow and costly; for several needs make several single-prompt calls. Examples: ['gifts for a 5-year-old who loves dinosaurs'] / ['camping gear under $50'].
screenshotNoReturn the Rufus conversation screenshot URL. Defaults to false. Setting true adds backend load; only enable when you need an image proof for end users.

TDQS

A4.8/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. Details: 6 points per prompt (not per call), slow (60-90s per prompt), linear scaling, do not retry, output structure including snake_case follow_up_questions.

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?

Description is well-structured with clear sections but somewhat verbose. Front-loaded purpose and usage, but could be trimmed without losing essential info.

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

Completeness5/5

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

Given complexity (cost, slowness, output structure) and no output schema, description is thorough: explains return format, cost billing, pairing, and warnings.

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% with detailed descriptions. Description adds value by emphasizing cost, slowness, and usage recommendations beyond 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?

Description clearly states it uses Amazon Rufus AI for conversational product recommendations. Explicitly distinguishes from siblings: lists when not to use and alternatives (search_amazon, list_bestsellers, get_amazon_product, ai_search).

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' and 'Don't use' sections. Also gives strong guidance on preferring 1 prompt per call due to cost and slowness.

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
keywordYesCategory name keyword (Chinese or English). Examples: 'headphones' / 'kitchen knives' / '无线耳机' / 'wireless earbuds'.
siteNoMarketplace to search categories in. Defaults to 'amz_us'.amz_us

TDQS

A4.9/5.0
Behavior5/5

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

Although no annotations are provided, the description fully discloses behavioral traits: it is a search (read-only implied), returns a detailed structure with fields, costs ~1 point and ~3 seconds, and pairs with downstream tools. No contradictions exist.

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?

The description is well-structured with clear sections: summary, use when, don't use, returns, pair with, and cost. Every sentence adds value, and the key information is front-loaded. It is concise yet comprehensive for the tool's complexity.

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

Completeness5/5

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

Given the tool has only 2 parameters and no output schema, the description provides a complete picture: it explains the output format in detail, lists return fields, gives usage guidance, and mentions cost. It covers all necessary context for an AI agent to use the tool 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?

The schema covers both parameters (keyword and site) with descriptions and examples. The description adds value by explaining the purpose of keyword (Chinese or English) and providing concrete examples, which goes beyond the schema's basic description. Baseline is 3, extra context raises to 4.

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

Purpose5/5

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

The description clearly states the tool matches Amazon's category tree by keyword and returns candidate nodes. It uses specific verbs ('Match') and resources ('Amazon's category tree'), and distinguishes from siblings by listing use cases and alternatives like get_category_paths and get_category_children.

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

Usage Guidelines5/5

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

The description explicitly provides 'Use when' and 'Don't use' conditions, including specific alternative tools (e.g., get_category_paths, get_category_children). It gives clear context for when to use—when user provides a keyword instead of a category ID—and when not to, making it highly actionable for an AI agent.

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
queryYesLocal search query. Examples: 'coffee shop' / 'wholesale electronics' / '电子产品批发' / 'pet store'.
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).
zoomNoMap zoom level, 1=world, 13=city, 21=building. Default 13.
languageNoBCP-47 language code, e.g. 'en', 'zh-CN'.en
limitNoMax results to return (1-100).

TDQS

A4.5/5.0
Behavior4/5

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

Discloses data source (Google Maps), cost (~1.5 points), latency (~5s), and zoom behavior tips. No annotations provided, so description carries burden; lacks details on authentication or rate limits.

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-structured with clear sections, front-loaded purpose. Slightly verbose but every sentence adds value; appropriate for tool complexity.

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?

Covers purpose, usage, return structure, cost, tips. No output schema, so return description is helpful but could elaborate on field semantics. Overall adequate for a search tool.

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. Description adds value with zoom level usage examples ('13 gives neighborhood, 17+ narrows to street') and pairing hints. Slightly above baseline.

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?

Clearly states 'Local-business search' at a lat/lng, lists returned fields, and distinguishes from sibling tools like ai_search and keyword_trends with explicit 'Don't use' instructions.

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' and 'Don't use' sections with concrete examples and alternatives (e.g., 'use keyword_trends' for global trends), plus pairing advice.

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. Dates show when Glama detected each change.

  1. 19 tool updatesv0.7.3
    • Changedai_search4 fields changed
      • changedInput schema / properties / followups / description
        Previous value: -"多轮追问列表(仅 mode='ai_mode' 时生效)。每条是基于前一轮答案的追问。**超过 5 条响应效率显著下降**。"New value: +"Follow-up question list (only honored when mode='ai_mode'). Each item is a follow-up question on the previous answer. **More than 5 entries significantly degrades response time.**"
      • changedInput schema / properties / mode / description
        Previous value: -"搜索模式:'overview'(默认)= 标准 Google SERP + 顶部 AI Overview 摘要,适合一次性查询;'ai_mode' = Google AI Mode 沉浸式搜索(udm=50),适合复杂问题拆解和多轮追问。"New value: +"Search mode: 'overview' (default) = standard Google SERP with AI Overview at the top, best for one-shot queries; 'ai_mode' = Google AI Mode immersive search (udm=50), best for complex multi-step questions with follow-ups."
      • changedInput schema / properties / query / description
        Previous value: -"搜索关键词或问题。Examples: 'wireless earbuds reviews' (单点查询) / 'how does noise cancellation work' (问句) / 'what do people complain about Stanley Quencher' (用户痛点)。"New value: +"Search keyword or question. Examples: 'wireless earbuds reviews' (single keyword) / 'how does noise cancellation work' (question) / 'what do people complain about Stanley Quencher' (user pain point)."
      • changedInput schema / properties / screenshot / description
        Previous value: -"是否返回搜索页截图 URL。默认 false。"New value: +"Whether to return a screenshot URL of the rendered search page. Defaults to false."
    • Changedfilter_categories20 fields changed
      • changedInput schema / properties / buyBoxPriceAvgMax / description
        Previous value: -"平均黄金购物车价格上限。"New value: +"Max average buy-box price."
      • changedInput schema / properties / buyBoxPriceAvgMin / description
        Previous value: -"平均黄金购物车价格下限(按站点本币)。"New value: +"Min average buy-box price (marketplace currency)."
      • changedInput schema / properties / buyBoxPriceTiers / description
        Previous value: -"价格档位筛选。可选:budget、mainstream、premium、luxury。"New value: +"Price-tier filter. Allowed: budget, mainstream, premium, luxury."
      • changedInput schema / properties / categoryId / description
        Previous value: -"传入单个类目 ID 时返回该类目的全维度详情(替代“详情接口”);不传则按筛选条件返回多个类目。Example: '979832011'。"New value: +"When 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'."
      • changedInput schema / properties / extraFilters / description
        Previous value: -"透传任意上游字段(如 unitSoldTrendDirections、newAsinCountLevels、metricChangeRateBuckets 等)。键名按 Pangolinfo 文档原样填写。"New value: +"Pass-through for any other upstream filter (e.g. unitSoldTrendDirections, newAsinCountLevels, metricChangeRateBuckets). Keys must match the upstream doc verbatim."
      • changedInput schema / properties / marketplaceId / description
        Previous value: -"Amazon 站点 ID。常见值:US、UK、DE、JP、FR、IT、ES、CA。默认 US。"New value: +"Amazon marketplace id. Common: US, UK, DE, JP, FR, IT, ES, CA. Defaults to US."
      • changedInput schema / properties / netShippedGmsSumMax / description
        Previous value: -"GMS 上限。"New value: +"Max total GMS."
      • changedInput schema / properties / netShippedGmsSumMin / description
        Previous value: -"商品销售总额 (GMS) 下限。"New value: +"Min total GMS (gross merchandise sales)."
      • changedInput schema / properties / page / description
        Previous value: -"页码,从 1 开始。"New value: +"Page number, 1-based."
      • changedInput schema / properties / returnRatioLevels / description
        Previous value: -"退货率质量等级。可选:excellent、average、risk。"New value: +"Return-rate quality buckets. Allowed: excellent, average, risk."
      • changedInput schema / properties / sampleScope / description
        Previous value: -"数据样本范围(必填)。Examples: 'all_asin'(全部 ASIN,已验证有效)。"New value: +"Sample scope (required). Examples: 'all_asin' (all ASINs — verified working)."
      • changedInput schema / properties / searchToPurchaseRatioLevels / description
        Previous value: -"搜索到购买转化率等级。可选:to_improve、average、excellent。"New value: +"Search-to-purchase conversion buckets. Allowed: to_improve, average, excellent."
      • changedInput schema / properties / searchVolumeSumMax / description
        Previous value: -"总搜索量上限。"New value: +"Max total search volume."
      • changedInput schema / properties / searchVolumeSumMin / description
        Previous value: -"总搜索量下限。"New value: +"Min total search volume."
      • changedInput schema / properties / size / description
        Previous value: -"每页条数,上限 10(服务端硬限制)。"New value: +"Page size, max 10 (backend hard limit)."
      • changedInput schema / properties / sortField / description
        Previous value: -"排序字段,支持任意响应字段名(如 'unitSoldSum'、'netShippedGmsSum')。"New value: +"Sort field; any response field name is accepted (e.g. 'unitSoldSum', 'netShippedGmsSum')."
      • changedInput schema / properties / sortOrder / description
        Previous value: -"排序顺序:'asc' 升序,'desc' 降序。"New value: +"Sort order: 'asc' or 'desc'."
      • changedInput schema / properties / timeRange / description
        Previous value: -"数据聚合时间范围(必填)。Examples: 'l7d'(近 7 天,已验证有效)。具体可选值由后端决定,l7d 是已知能跑通的取值。"New value: +"Aggregation time range (required). Examples: 'l7d' (last 7 days — verified working). The exact enum is backend-defined; 'l7d' is the safest known value."
      • changedInput schema / properties / unitSoldSumMax / description
        Previous value: -"总销量上限。"New value: +"Max total units sold."
      • changedInput schema / properties / unitSoldSumMin / description
        Previous value: -"总销量下限。"New value: +"Min total units sold."
    • Changedfilter_niches23 fields changed
      • changedInput schema / properties / avgReviewCountMax / description
        Previous value: -"平均评论数上限——评论数越低意味着竞争越弱。"New value: +"Max average review count — lower means less competition."
      • changedInput schema / properties / avgReviewCountMin / description
        Previous value: -"平均评论数下限。"New value: +"Min average review count."
      • changedInput schema / properties / avgReviewRatingMin / description
        Previous value: -"平均评分下限(0-5)。"New value: +"Min average review rating (0-5)."
      • changedInput schema / properties / extraFilters / description
        Previous value: -"透传任意上游字段(如 sponsoredProductsPercentageT360Min、successfulLaunchesT360Max、avgBestSellerRankMax 等)。键名按 Pangolinfo 文档原样填写。"New value: +"Pass-through for any other upstream filter (e.g. sponsoredProductsPercentageT360Min, successfulLaunchesT360Max, avgBestSellerRankMax). Keys must match the upstream doc verbatim."
      • changedInput schema / properties / marketplaceId / description
        Previous value: -"Amazon 站点 ID(必填)。常见值:US、UK、DE、JP、FR、IT、ES、CA。默认 US。"New value: +"Amazon marketplace id (required). Common: US, UK, DE, JP, FR, IT, ES, CA. Defaults to US."
      • changedInput schema / properties / maximumPriceMax / description
        Previous value: -"利基内最高商品价格的上限。"New value: +"Upper bound on the niche's maximum product price."
      • changedInput schema / properties / minimumPriceMin / description
        Previous value: -"利基内最低商品价格的下限。"New value: +"Lower bound on the niche's minimum product price."
      • changedInput schema / properties / nicheId / description
        Previous value: -"传入单个利基 ID 时返回该利基的全维度深度报告(替代“详情接口”);不传则按筛选条件返回多个利基。Example: '8140a265-768d-4679-8bc2-994cb1c96f0b'(UUID 格式)。"New value: +"When 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)."
      • changedInput schema / properties / nicheTitle / description
        Previous value: -"按关键词匹配利基标题。Examples: 'iphone 16 wallet case' / 'wireless earbuds for sports'。"New value: +"Keyword match against niche titles. Examples: 'iphone 16 wallet case' / 'wireless earbuds for sports'."
      • changedInput schema / properties / page / description
        Previous value: -"页码,从 1 开始。"New value: +"Page number, 1-based."
      • changedInput schema / properties / productCountMax / description
        Previous value: -"利基内商品数上限。"New value: +"Max product count in the niche."
      • changedInput schema / properties / productCountMin / description
        Previous value: -"利基内商品数下限。"New value: +"Min product count in the niche."
      • changedInput schema / properties / returnRateT360Max / description
        Previous value: -"近 360 天退货率上限(0-1)。"New value: +"Max return rate over 360 days (0-1)."
      • changedInput schema / properties / searchVolumeGrowthT90Max / description
        Previous value: -"近 90 天搜索量增长率上限。"New value: +"Max 90-day search-volume growth rate."
      • changedInput schema / properties / searchVolumeGrowthT90Min / description
        Previous value: -"近 90 天搜索量增长率下限(小数,0.1 = +10%)。"New value: +"Min 90-day search-volume growth rate (decimal, 0.1 = +10%)."
      • changedInput schema / properties / searchVolumeT360Max / description
        Previous value: -"近 360 天搜索量上限。"New value: +"Max search volume over last 360 days."
      • changedInput schema / properties / searchVolumeT360Min / description
        Previous value: -"近 360 天搜索量下限。"New value: +"Min search volume over last 360 days."
      • changedInput schema / properties / searchVolumeT90Max / description
        Previous value: -"近 90 天搜索量上限。"New value: +"Max search volume over last 90 days."
      • changedInput schema / properties / searchVolumeT90Min / description
        Previous value: -"近 90 天搜索量下限。"New value: +"Min search volume over last 90 days."
      • changedInput schema / properties / size / description
        Previous value: -"每页条数,上限 10(服务端硬限制),默认 3(小默认值避免 AI 上下文超限 — 需要更宽扫描时显式传 size=10)。"New value: +"Page 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)."
      • changedInput schema / properties / sortField / description
        Previous value: -"排序字段,支持任意响应字段名(如 'searchVolumeT90'、'avgProductPrice')。"New value: +"Sort field; any response field name is accepted (e.g. 'searchVolumeT90', 'avgProductPrice')."
      • changedInput schema / properties / sortOrder / description
        Previous value: -"排序顺序:'asc' 升序,'desc' 降序。"New value: +"Sort order: 'asc' or 'desc'."
      • changedInput schema / properties / top5ProductsClickShareT360Max / description
        Previous value: -"近 360 天前 5 商品点击份额上限(0-1)。值越低代表利基越分散、机会越大。"New value: +"Max top-5-products click share over 360 days (0-1). Lower = more fragmented niche, more opportunity."
    • Changedget_amazon_product4 fields changed
      • changedInput schema / properties / asin / description
        Previous value: -"Amazon ASIN,10 位大写字母+数字。Examples: 'B09B8V1LZ3' (Echo Dot 5) / 'B0CRMZHDG8' (Stanley Quencher) / 'B0BDHWDR12' (AirPods Pro 2)。"New value: +"Amazon ASIN, 10 chars uppercase. Examples: 'B09B8V1LZ3' (Echo Dot 5) / 'B0CRMZHDG8' (Stanley Quencher) / 'B0BDHWDR12' (AirPods Pro 2)."
      • changedInput schema / properties / format / description
        Previous value: -"返回格式。默认 'json'——结构化字段(title/price/rating/reviews/seller 等),适合程序处理。需要原始页面阅读时切 'markdown'。"New value: +"Response 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."
      • changedInput schema / properties / site / description
        Previous value: -"Amazon 站点。默认 amz_us(美国站)。"New value: +"Amazon marketplace. Defaults to 'amz_us' (US)."
      • changedInput schema / properties / zipcode / description
        Previous value: -"邮编,必须匹配 site 站点所在国家(amz_us → 美国邮编,amz_jp → 日本邮编 …)。可选;不传时后端会从对应国家邮编池随机挑一个。跨国邮编(如 amz_us + 日本邮编)会被后端拒绝。Examples: 10001 (NY) / 90001 (LA) / 100-0001 (Tokyo)."New value: +"ZIP 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)."
    • Changedget_amazon_reviews7 fields changed
      • changedInput schema / properties / asin / description
        Previous value: -"Amazon ASIN(10 位大写字母+数字)。Examples: 'B09B8V1LZ3' / 'B0CRMZHDG8'。"New value: +"Amazon ASIN (10-char uppercase alphanumeric). Examples: 'B09B8V1LZ3' / 'B0CRMZHDG8'."
      • changedInput schema / properties / filterByStar / description
        Previous value: -"按星级筛选。VOC 痛点挖掘建议传 'critical'(1-3 星差评),找改进点;正面卖点提取传 'positive'。"New value: +"Filter by star rating. For VOC pain-point mining, pass 'critical' (1-3 star reviews) to surface defects; for positive-aspect extraction, pass 'positive'."
      • changedInput schema / properties / mediaType / description
        Previous value: -"评论类型:'all_contents' 全部评论,'media_reviews_only' 仅含图片/视频的评论(更真实可信)。"New value: +"Review type: 'all_contents' for all, 'media_reviews_only' for reviews with photos/videos only (higher credibility)."
      • changedInput schema / properties / pageCount / description
        Previous value: -"拉取的评论页数(1 页约 10 条评论)。**每页扣 10 积点**,请按需控制。默认 1 页。"New value: +"Number of review pages to fetch (~10 reviews per page). **Costs 10 points per page** — control accordingly. Defaults to 1."
      • changedInput schema / properties / site / description
        Previous value: -"Amazon 站点。默认 amz_us。"New value: +"Amazon marketplace. Defaults to amz_us."
      • changedInput schema / properties / sortBy / description
        Previous value: -"排序:'recent' 按时间倒序(看最新口碑),'helpful' 按帮助票数(看影响力大的评论)。"New value: +"Sort order: 'recent' (newest first — track current sentiment) or 'helpful' (most-upvoted first — highest impact reviews)."
      • changedInput schema / properties / zipcode / description
        Previous value: -"邮编,必须匹配 site 站点所在国家(amz_us → 美国邮编,amz_jp → 日本邮编 …)。可选;不传时后端会从对应国家邮编池随机挑一个。跨国邮编(如 amz_us + 日本邮编)会被后端拒绝。Examples: 10001 (NY) / 90001 (LA) / 100-0001 (Tokyo)."New value: +"ZIP 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)."
    • Changedget_category_children3 fields changed
      • changedInput schema / properties / page / description
        Previous value: -"页码,从 1 开始。"New value: +"Page number, 1-based."
      • changedInput schema / properties / parentBrowseNodeIdPath / description
        Previous value: -"父节点路径。可填单个 browseNodeId 或斜杠分隔的完整路径。Examples: '2619526011' (Appliances, 顶级下钻) / '2619526011/18116197011' (Appliances > Ranges/Ovens/Cooktops, 三级下钻)。留空则返回顶级根节点。"New value: +"Parent 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."
      • changedInput schema / properties / size / description
        Previous value: -"每页条数。"New value: +"Page size."
    • Changedget_category_paths2 fields changed
      • changedInput schema / properties / categoryIds / description
        Previous value: -"要解析完整路径的类目 ID 列表。Examples: ['2619526011'] (Appliances) / ['172282', '11965861'] (Electronics + Musical Instruments)。"New value: +"Category IDs to resolve full path for. Examples: ['2619526011'] (Appliances) / ['172282', '11965861'] (Electronics + Musical Instruments)."
      • changedInput schema / properties / site / description
        Previous value: -"Amazon 站点。默认 amz_us(美国站)。"New value: +"Amazon marketplace. Defaults to 'amz_us' (US)."
    • Changedkeyword_trends4 fields changed
      • changedInput schema / properties / keywords / description
        Previous value: -"对比的关键词列表(1-5 个)。Examples: ['wireless earbuds', 'bluetooth earbuds'] (同义词对比) / ['stanley quencher', 'yeti rambler', 'hydro flask'] (竞品品牌对比) / ['halloween costume'] (单词看季节性)。"New value: +"Keywords to compare (1-5). Examples: ['wireless earbuds', 'bluetooth earbuds'] (synonyms) / ['stanley quencher', 'yeti rambler', 'hydro flask'] (competing brands) / ['halloween costume'] (single keyword for seasonality)."
      • changedInput schema / properties / language / description
        Previous value: -"界面语言 BCP-47 代码,影响相关查询的语言。默认 'en-US'。中文用 'zh-CN'。"New value: +"Interface language (BCP-47), affects related-query language. Defaults to 'en-US'. Use 'zh-CN' for Chinese."
      • changedInput schema / properties / region / description
        Previous value: -"地区代码(ISO 国家或 'WORLD' 全球)。常用:'US' / 'GB' / 'DE' / 'JP' / 'CN'。"New value: +"Region code (ISO country, or 'WORLD' for global). Common: 'US' / 'GB' / 'DE' / 'JP' / 'CN'."
      • changedInput schema / properties / timeRange / description
        Previous value: -"时间窗口。常用:'today 12-m'(近 12 月,默认,平衡近况和趋势)、'today 3-m'(近 90 天)、'today 5-y'(5 年长期)、'all'(自 2004 起全部)。"New value: +"Time window. Common: 'today 12-m' (last 12 months, default), 'today 3-m' (last 90 days), 'today 5-y' (5-year long-term), 'all' (since 2004)."
    • Changedlist_bestsellers4 fields changed
      • changedInput schema / properties / categorySlug / description
        Previous value: -"Amazon Best Sellers 类目 slug(小写英文短横线),如 'electronics'、'home-garden'、'beauty'、'toys-and-games'。可以从 amazon.com/Best-Sellers 顶部导航的 URL 路径里读到。"New value: +"Amazon 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."
      • changedInput schema / properties / format / description
        Previous value: -"返回格式。默认 'json'——结构化 Top-50 ASIN 排名列表。需要原始页面阅读时切 'markdown'。"New value: +"Response format. Defaults to 'json' — structured Top-50 ranked ASIN list. Use 'markdown' for the rendered page text."
      • changedInput schema / properties / site / description
        Previous value: -"Amazon 站点。默认 amz_us。"New value: +"Amazon marketplace. Defaults to amz_us."
      • changedInput schema / properties / zipcode / description
        Previous value: -"邮编,必须匹配 site 站点所在国家(amz_us → 美国邮编,amz_jp → 日本邮编 …)。可选;不传时后端会从对应国家邮编池随机挑一个。跨国邮编(如 amz_us + 日本邮编)会被后端拒绝。Examples: 10001 (NY) / 90001 (LA) / 100-0001 (Tokyo)."New value: +"ZIP 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)."
    • Changedlist_category_products5 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"返回格式。默认 'json'——结构化类目商品列表。需要原始页面阅读时切 'markdown'。"New value: +"Response format. Defaults to 'json' — structured category listings. Use 'markdown' for the rendered page text."
      • changedInput schema / properties / nodeId / description
        Previous value: -"Amazon 类目 Browse Node ID(纯数字)。Examples: '172282' (Electronics) / '2619526011' (Appliances) / '11965861' (Musical Instruments)。可通过 search_categories / get_category_children 获得。"New value: +"Amazon category Browse Node ID (numeric). Examples: '172282' (Electronics) / '2619526011' (Appliances) / '11965861' (Musical Instruments). Obtain via search_categories or get_category_children."
      • changedInput schema / properties / page / description
        Previous value: -"页码,从 1 开始。每页 24 条。结合响应里的 pageIndex/maxPage/nextPage 决定是否继续:nextPage 为下一页页码,nextPage=null 或 page>=maxPage 表示到底。**只在用户明确要更多/全部时才翻**,否则首页够用。"New value: +"Page 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."
      • changedInput schema / properties / site / description
        Previous value: -"Amazon 站点。默认 amz_us。"New value: +"Amazon marketplace. Defaults to amz_us."
      • changedInput schema / properties / zipcode / description
        Previous value: -"邮编,必须匹配 site 站点所在国家(amz_us → 美国邮编,amz_jp → 日本邮编 …)。可选;不传时后端会从对应国家邮编池随机挑一个。跨国邮编(如 amz_us + 日本邮编)会被后端拒绝。Examples: 10001 (NY) / 90001 (LA) / 100-0001 (Tokyo)."New value: +"ZIP 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)."
    • Changedlist_new_releases4 fields changed
      • changedInput schema / properties / categorySlug / description
        Previous value: -"Amazon New Releases 类目 slug(小写英文短横线),如 'electronics'、'home-garden'。可以从 amazon.com/gp/new-releases 顶部导航的 URL 路径里读到。"New value: +"Amazon New Releases category slug (lowercase, hyphenated). Examples: 'electronics', 'home-garden'. Find these in the URL path on amazon.com/gp/new-releases."
      • changedInput schema / properties / format / description
        Previous value: -"返回格式。默认 'json'——结构化新品榜单。需要原始页面阅读时切 'markdown'。"New value: +"Response format. Defaults to 'json' — structured ranking list. Use 'markdown' for the rendered page text."
      • changedInput schema / properties / site / description
        Previous value: -"Amazon 站点。默认 amz_us。"New value: +"Amazon marketplace. Defaults to amz_us."
      • changedInput schema / properties / zipcode / description
        Previous value: -"邮编,必须匹配 site 站点所在国家(amz_us → 美国邮编,amz_jp → 日本邮编 …)。可选;不传时后端会从对应国家邮编池随机挑一个。跨国邮编(如 amz_us + 日本邮编)会被后端拒绝。Examples: 10001 (NY) / 90001 (LA) / 100-0001 (Tokyo)."New value: +"ZIP 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)."
    • Changedlist_seller_products7 fields changed
      • changedInput schema / properties / categoryId / description
        Previous value: -"类目筛选 ID,按该类目过滤店铺商品。单个最小类目 ID(如 '7161074011'),或逗号分隔的多级类目(如 '172282,502394,7161073011')。不填 = 返回店铺全部商品。可从 Amazon 店铺页 URL 的 rh=n:<类目ID> 中提取。"New value: +"Category 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."
      • changedInput schema / properties / format / description
        Previous value: -"返回格式。默认 'json'——结构化卖家商品列表。需要原始页面阅读时切 'markdown'。"New value: +"Response format. Defaults to 'json' — structured seller listings. Use 'markdown' for the rendered page text."
      • changedInput schema / properties / page / description
        Previous value: -"页码,从 1 开始。每页 24 条。结合响应里的 pageIndex/maxPage/nextPage 决定是否继续:nextPage 为下一页页码,nextPage=null 或 page>=maxPage 表示到底。**只在用户明确要更多/全部 SKU 时才翻**,否则首页够用。注意:传了 pageCount>1(多页累计)时,page 被忽略(后端固定从第 1 页开始累计)。"New value: +"Page 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)."
      • changedInput schema / properties / pageCount / description
        Previous value: -"多页累计爬取:传 N 则一次连续爬取前 N 页并扁平合并返回(如 3 = 第 1+2+3 页全部商品)。默认 1(单页,走 page 逻辑);上限 3,超过按 3 处理。与 page 的区别:page 是定位看某一页,pageCount 是一次拉前 N 页合并。**只在需要一次性拿多页全量 SKU 时用**;按实际成功页数计费(某页失败退该页费用)。"New value: +"Multi-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)."
      • changedInput schema / properties / sellerId / description
        Previous value: -"Amazon 卖家 ID(merchant ID,14 位字母数字)。Examples: 'ATVPDKIKX0DER'(Amazon 自营)/ 'A2L77EE7U53NWQ'(Amazon Warehouse)。从商品页 'sold by' 链接或 amazon.com/sp?seller=... URL 里读取。"New value: +"Amazon 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."
      • changedInput schema / properties / site / description
        Previous value: -"Amazon 站点。默认 amz_us。"New value: +"Amazon marketplace. Defaults to amz_us."
      • changedInput schema / properties / zipcode / description
        Previous value: -"邮编,必须匹配 site 站点所在国家(amz_us → 美国邮编,amz_jp → 日本邮编 …)。可选;不传时后端会从对应国家邮编池随机挑一个。跨国邮编(如 amz_us + 日本邮编)会被后端拒绝。Examples: 10001 (NY) / 90001 (LA) / 100-0001 (Tokyo)."New value: +"ZIP 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)."
    • Changedpangolinfo_capabilities1 field changed
      • changedInput schema / properties / detail / description
        Previous value: -"'summary' 返回工具清单 + 典型链路(默认,省 token);'full' 把 17 个 tool 的完整 description 也一并展开(约 8KB,第一次接入或上下文不紧时用)。"New value: +"'summary' returns tool catalog + canonical workflows (default, token-light); 'full' also expands the full description of every tool (~8KB — use on first integration or when context budget allows)."
    • Changedscrape_url6 fields changed
      • changedInput schema / properties / content / description
        Previous value: -"裸零件(后端按 parserName 自动拼 URL)。传这个**或** url 二选一。Examples: 'wireless earbuds'(amzKeyword)/ '172282'(amzProductOfCategory 的 nodeId)/ 'ATVPDKIKX0DER'(amzProductOfSeller 的 sellerId)/ 'B09B8V1LZ3'(amzProductDetail 的 ASIN)。用户/AI 通常只有零件,优先用这个。"New value: +"Bare fragment (backend builds the URL per parserName). Pass this OR url. Examples: 'wireless earbuds' (amzKeyword) / '172282' (nodeId for amzProductOfCategory) / 'ATVPDKIKX0DER' (sellerId for amzProductOfSeller) / 'B09B8V1LZ3' (ASIN for amzProductDetail). Users/AI usually only have the fragment — prefer this."
      • changedInput schema / properties / format / description
        Previous value: -"返回格式。默认 'json'(结构化 results);需要原始页面阅读时切 'markdown'。"New value: +"Response format. Defaults to 'json' (structured results). Use 'markdown' for the rendered page text."
      • changedInput schema / properties / parserName / description
        Previous value: -"解析器名,决定后端怎么解析页面 + 怎么从 content 拼 URL。必须和页面类型匹配:amzKeyword=关键词搜索(content=关键词)/ amzProductOfCategory=类目商品(content=nodeId)/ amzProductOfSeller=卖家店铺(content=sellerId)/ amzProductDetail=单品(content=ASIN)/ amzBestSellers / amzNewReleases / amzReviewV2=评论 / amzFollowSeller=跟卖 / amzVariantAsin=变体。"New value: +"Parser 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."
      • changedInput schema / properties / site / description
        Previous value: -"Amazon 站点(content 模式下后端据此选域名拼 URL)。默认 amz_us。url 模式下可省略(url 已含域名)。"New value: +"Amazon 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)."
      • changedInput schema / properties / url / description
        Previous value: -"完整 Amazon URL(https://)。传这个**或** content 二选一。用于你已经有一个现成链接(如浏览器复制的带筛选/排序的搜索结果页)。Example: 'https://www.amazon.com/s?k=earbuds&rh=p_36%3A2500-5000&s=review-rank'。必须和 parserName 匹配。"New value: +"Full 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."
      • changedInput schema / properties / zipcode / description
        Previous value: -"邮编,必须匹配 site 所在国家。可选;不传时后端随机挑一个。"New value: +"ZIP code matching the site's country. Optional; backend picks one if omitted."
    • Changedsearch_amazon5 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"返回格式。默认 'json'——结构化搜索结果(每条含 asin/title/price/star/rating/sales/badge/rank 等),适合程序处理。需要原始页面阅读时切 'markdown'。"New value: +"Response 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."
      • changedInput schema / properties / keyword / description
        Previous value: -"搜索关键词。Examples: '蓝牙耳机' / 'wireless earbuds' / 'stanley quencher' / 'iphone 16 case'。"New value: +"Search keyword. Examples: 'wireless earbuds' / 'stanley quencher' / 'iphone 16 case' / 'kitchen knife set'."
      • changedInput schema / properties / page / description
        Previous value: -"页码,从 1 开始。每页约 22 条 ASIN。结合响应里的 pageIndex/nextPage 决定是否继续翻:nextPage 为下一页页码,nextPage=null(或缺失)表示已到最后一页。**只在用户明确要更多/Top-N(N>单页量)/全部时才翻**,否则首页够用。"New value: +"Page 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."
      • changedInput schema / properties / site / description
        Previous value: -"Amazon 站点。默认 amz_us(美国站)。"New value: +"Amazon marketplace. Defaults to 'amz_us' (US)."
      • changedInput schema / properties / zipcode / description
        Previous value: -"邮编,必须匹配 site 站点所在国家(amz_us → 美国邮编,amz_jp → 日本邮编 …)。可选;不传时后端会从对应国家邮编池随机挑一个。跨国邮编(如 amz_us + 日本邮编)会被后端拒绝。Examples: 10001 (NY) / 90001 (LA) / 100-0001 (Tokyo)."New value: +"ZIP 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)."
    • Changedsearch_amazon_alexa2 fields changed
      • changedInput schema / properties / prompts / description
        Previous value: -"对话提示词数组(中英文均可)。每条独立向 Rufus 发问,返回独立分组结果。**整次调用固定 6 积点**(与条数无关),但建议 ≤3 条:>3 条响应耗时显著不稳定。Examples: ['gifts for a 5-year-old who loves dinosaurs'] / ['camping gear under $50','best tent for 2 people']。"New value: +"Conversation prompts (zh or en). Each item is sent to Rufus independently and returns its own grouped results. **Billed per prompt: 6 points each** (N prompts = N×6 points, NOT a flat 6 per call). **Strongly prefer exactly 1 prompt per call**: this is a slow tool — 60–90s for one, and multiple add up linearly and can exceed 200s. Max 5, but multiple is both slow and costly; for several needs make several single-prompt calls. Examples: ['gifts for a 5-year-old who loves dinosaurs'] / ['camping gear under $50']."
      • changedInput schema / properties / screenshot / description
        Previous value: -"是否返回 Rufus 对话页面截图 URL。默认 false。true 会增加后端负担,仅当需要给最终用户附图证据时打开。"New value: +"Return the Rufus conversation screenshot URL. Defaults to false. Setting true adds backend load; only enable when you need an image proof for end users."
    • Changedsearch_categories2 fields changed
      • changedInput schema / properties / keyword / description
        Previous value: -"类目名称关键词(中英文均可)。Examples: 'headphones' / 'kitchen knives' / '无线耳机' / 'wireless earbuds'。"New value: +"Category name keyword (Chinese or English). Examples: 'headphones' / 'kitchen knives' / '无线耳机' / 'wireless earbuds'."
      • changedInput schema / properties / site / description
        Previous value: -"搜索的 Amazon 站点。默认 amz_us(美国站)。"New value: +"Marketplace to search categories in. Defaults to 'amz_us'."
    • Changedsearch_local_maps6 fields changed
      • changedInput schema / properties / language / description
        Previous value: -"BCP-47 语言码,例如 'en'、'zh-CN'。"New value: +"BCP-47 language code, e.g. 'en', 'zh-CN'."
      • changedInput schema / properties / latitude / description
        Previous value: -"搜索中心点的纬度。Examples: 37.7822 (旧金山) / 40.7128 (纽约) / 34.0522 (洛杉矶)。"New value: +"Latitude of search center. Examples: 37.7822 (San Francisco) / 40.7128 (New York) / 34.0522 (Los Angeles)."
      • changedInput schema / properties / limit / description
        Previous value: -"返回的最大结果数(1-100)。"New value: +"Max results to return (1-100)."
      • changedInput schema / properties / longitude / description
        Previous value: -"搜索中心点的经度。Examples: -122.4642 (旧金山) / -74.0060 (纽约) / -118.2437 (洛杉矶)。"New value: +"Longitude of search center. Examples: -122.4642 (San Francisco) / -74.0060 (New York) / -118.2437 (Los Angeles)."
      • changedInput schema / properties / query / description
        Previous value: -"本地搜索关键词。Examples: 'coffee shop' / 'wholesale electronics' / '电子产品批发' / 'pet store'。"New value: +"Local search query. Examples: 'coffee shop' / 'wholesale electronics' / '电子产品批发' / 'pet store'."
      • changedInput schema / properties / zoom / description
        Previous value: -"地图缩放级别,1=全球,13=城市,21=单栋建筑。默认 13。"New value: +"Map zoom level, 1=world, 13=city, 21=building. Default 13."
    • Changedwipo_search13 fields changed
      • changedInput schema / properties / ds / description
        Previous value: -"指定国家代码(如 'US'、'CN')。可选——传 source 时通常已隐含国家。"New value: +"Designated country code (e.g. 'US', 'CN'). Optional — usually implied by `source`."
      • changedInput schema / properties / enableLitigation / description
        Previous value: -"是否开启智能联动风控模式:命中专利后自动用专利号查关联的美国诉讼案件(底层 PACER),案件 join 进每条专利的 cases 字段。默认 false。开启后每条命中专利会多 litigationStatus / caseTotal / cases 字段;仅当查到专利才额外计费 +12 积点(没查到专利不收)。"New value: +"Enable Smart Risk Control Mode: after patents match, auto-query related US litigation (PACER backend) by patent number; cases are joined into each patent's `cases` field. Default false. When on, each matched patent gains litigationStatus / caseTotal / cases; +12 points charged only when a patent is found (free if none)."
      • changedInput schema / properties / from / description
        Previous value: -"分页起始位置,从 0 开始。"New value: +"Pagination offset, 0-based."
      • changedInput schema / properties / hol / description
        Previous value: -"权利人(公司或个人)名称模糊匹配。Examples: 'Apple' / 'Samsung' / 'Nike'。注意:CNID + hol 必须配合 id/idSearch/rd/status/lcs 至少一项;JPID 无 HOL 字段(会被忽略)。"New value: +"Holder name fuzzy match. Examples: 'Apple' / 'Samsung' / 'Nike'. NOTE: CNID + hol MUST be paired with id/idSearch/rd/status/lcs; JPID has no HOL column (will be ignored)."
      • changedInput schema / properties / id / description
        Previous value: -"完整 ID 精确匹配,如 'CNID.2023.123456'。用于 CNID 路由到单分区,避免全表扫描。"New value: +"Full ID exact match, e.g. 'CNID.2023.123456'. Routes CNID queries to a single partition (avoids full scan)."
      • changedInput schema / properties / idSearch / description
        Previous value: -"ID 变体模糊匹配。"New value: +"ID variant fuzzy match."
      • changedInput schema / properties / irn / description
        Previous value: -"国际注册号精确匹配。Examples: 'DM/000298'(HAGUE)/ 'D1107730'(USID)。"New value: +"International Registration Number exact match. Examples: 'DM/000298' (HAGUE) / 'D1107730' (USID)."
      • changedInput schema / properties / lcs / description
        Previous value: -"外观设计分类(洛迦诺分类号 LCS),如 '23-01' = 流体分配设备。"New value: +"Design classification (Locarno Classification code), e.g. '23-01' = fluid distribution equipment."
      • changedInput schema / properties / num / description
        Previous value: -"每页条数(默认 10,上限 100)。"New value: +"Page size (default 10, max 100)."
      • changedInput schema / properties / prod / description
        Previous value: -"产品名称模糊匹配。CNID 搜中文,其他 source 搜英文。Examples: '椅子' (CNID) / 'wireless headphones' (USID) / 'iphone case' (USID)。CNID + prod 必须配合 id/idSearch/rd/status/lcs;JPID 无 PROD 字段。"New value: +"Product name fuzzy match. CNID searches Chinese, other sources search English. Examples: '椅子' (CNID) / 'wireless headphones' (USID) / 'iphone case' (USID). CNID + prod MUST be paired with id/idSearch/rd/status/lcs; JPID has no PROD column."
      • changedInput schema / properties / rd / description
        Previous value: -"注册日期(YYYY 或 YYYY-MM-DD)。CNID 必备的窄化字段之一,能把查询路由到年份分区。"New value: +"Registration date (YYYY or YYYY-MM-DD). One of the recommended narrowing fields for CNID — routes to a year partition."
      • changedInput schema / properties / source / description
        Previous value: -"数据来源(必填)。WIPO 数据按 source 分区存储,跨 source 不可查。常用:USID(美国外观)、CNID(中国外观,17M+ 条)、HAGUE(海牙体系国际注册)、DEID、JPID。"New value: +"Data source (required). WIPO data is partitioned by source — cross-source queries not supported. Common: USID (US design), CNID (China design, 17M+ rows), HAGUE (Hague international), DEID, JPID."
      • changedInput schema / properties / status / description
        Previous value: -"法律状态:'ACT'(生效)、'EXP'(过期)等。USID 无 STATUS 字段(会被忽略)。"New value: +"Legal status: 'ACT' (active), 'EXP' (expired), etc. USID has no STATUS column (will be ignored)."
  2. 9 tool updatesv0.7.2
    • Addedai_search
    • Changedfilter_niches2 fields changed
      • changedInput schema / properties / size / default
        Previous value: -10New value: +3
      • changedInput schema / properties / size / description
        Previous value: -"每页条数,上限 10(服务端硬限制)。"New value: +"每页条数,上限 10(服务端硬限制),默认 3(小默认值避免 AI 上下文超限 — 需要更宽扫描时显式传 size=10)。"
    • Removedgoogle_ai_search
    • Removedgoogle_trends
    • Addedkeyword_trends
    • Changedlist_bestsellers1 field changed
      • changedInput schema / properties / format / description
        Previous value: -"返回格式。默认 'json'——结构化 Top-100 ASIN 排名列表。需要原始页面阅读时切 'markdown'。"New value: +"返回格式。默认 'json'——结构化 Top-50 ASIN 排名列表。需要原始页面阅读时切 'markdown'。"
    • Changedlist_seller_products3 fields changed
      • addedInput schema / properties / categoryId
        Added value: +{
        +  "description": "类目筛选 ID,按该类目过滤店铺商品。单个最小类目 ID(如 '7161074011'),或逗号分隔的多级类目(如 '172282,502394,7161073011')。不填 = 返回店铺全部商品。可从 Amazon 店铺页 URL 的 rh=n:<类目ID> 中提取。",
        +  "type": "string"
        +}
      • changedInput schema / properties / page / description
        Previous value: -"页码,从 1 开始。每页 24 条。结合响应里的 pageIndex/maxPage/nextPage 决定是否继续:nextPage 为下一页页码,nextPage=null 或 page>=maxPage 表示到底。**只在用户明确要更多/全部 SKU 时才翻**,否则首页够用。"New value: +"页码,从 1 开始。每页 24 条。结合响应里的 pageIndex/maxPage/nextPage 决定是否继续:nextPage 为下一页页码,nextPage=null 或 page>=maxPage 表示到底。**只在用户明确要更多/全部 SKU 时才翻**,否则首页够用。注意:传了 pageCount>1(多页累计)时,page 被忽略(后端固定从第 1 页开始累计)。"
      • addedInput schema / properties / pageCount
        Added value: +{
        +  "default": 1,
        +  "description": "多页累计爬取:传 N 则一次连续爬取前 N 页并扁平合并返回(如 3 = 第 1+2+3 页全部商品)。默认 1(单页,走 page 逻辑);上限 3,超过按 3 处理。与 page 的区别:page 是定位看某一页,pageCount 是一次拉前 N 页合并。**只在需要一次性拿多页全量 SKU 时用**;按实际成功页数计费(某页失败退该页费用)。",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Addedscrape_url
    • Changedwipo_search2 fields changed
      • addedInput schema / properties / enableLitigation
        Added value: +{
        +  "default": false,
        +  "description": "是否开启智能联动风控模式:命中专利后自动用专利号查关联的美国诉讼案件(底层 PACER),案件 join 进每条专利的 cases 字段。默认 false。开启后每条命中专利会多 litigationStatus / caseTotal / cases 字段;仅当查到专利才额外计费 +12 积点(没查到专利不收)。",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / lcs / description
        Previous value: -"洛迦诺分类号(外观设计国际分类),如 '23-01' = 流体分配设备。"New value: +"外观设计分类(洛迦诺分类号 LCS),如 '23-01' = 流体分配设备。"
  3. 18 tool updatesv0.2.1
    • First observedfilter_categories
    • First observedfilter_niches
    • First observedget_amazon_product
    • First observedget_amazon_reviews
    • First observedget_category_children
    • First observedget_category_paths
    • First observedgoogle_ai_search
    • First observedgoogle_trends
    • First observedlist_bestsellers
    • First observedlist_category_products
    • First observedlist_new_releases
    • First observedlist_seller_products
    • First observedpangolinfo_capabilities
    • First observedsearch_amazon
    • First observedsearch_amazon_alexa
    • First observedsearch_categories
    • First observedsearch_local_maps
    • First observedwipo_search

TDQS

A4.6/5.0
Disambiguation5/5

Each tool targets a distinct resource or action: category-level vs niche-level filtering, product details vs reviews, different list types (bestsellers, new releases, category products), and separate external data sources (Google search, trends, Maps, WIPO). The detailed descriptions provide clear use cases and don't use guidance, minimizing ambiguity.

Naming Consistency4/5

Tool names follow a mostly consistent verb_noun snake_case pattern (e.g., filter_categories, get_amazon_product, list_bestsellers). However, there are minor deviations: 'google_ai_search' and 'google_trends' use different structures, and 'pangolinfo_capabilities' lacks a verb. Still, the majority are predictable and readable.

Tool Count4/5

With 18 tools, the server covers a wide range of Amazon research needs plus external data (Google, Maps, WIPO). While the count might seem high, each tool serves a specific purpose aligned with the server's broad scope. A few tools like search_local_maps could be considered peripheral, but overall the number is reasonable and not excessive.

Completeness5/5

The tool set covers the full lifecycle of Amazon product research: category and niche discovery, product listing, detail and review analysis, rankings, seller info, Amazon search, external trend validation (Google), and intellectual property checks (WIPO). There are no obvious gaps for the advertised purpose of ad tracking and review intelligence.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Agent-native Amazon review intelligence — fetches verified reviews from 10 marketplaces via real Shulex OpenAPI (not scrapers) and produces copy-ready listing improvements grounded in actual customer language. Backed by a 2B-review historical dataset that Helium 10 / Jungle Scout can't replicate. Works in any MCP client (Claude Code, Claude Desktop, ChatGPT, Cursor, Windsurf, VS Code, Cline).
    6
    33
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Real Amazon (US, UK, DE, CA, AU) & Walmart shopping data for AI assistants: ranked product shortlists, current prices, live stock, real ratings, and price/BSR history from a 17M+ product warehouse. Free hosted endpoint, no signup — 30 queries a day.
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    AMZScout Skill + MCP gives AI agents live access to real Amazon marketplace data across 14 Amazon marketplaces. Analyze any ASIN, validate product ideas, research niches, compare competitors, discover profitable keywords, and build data-driven PPC strategies using trusted Amazon insights instead of AI assumptions. Works with Claude, ChatGPT, Cursor, and any other MCP-compatible AI client.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pangolinfo/pangolinfo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server