ASINRating MCP
A read-only MCP server providing structured Amazon US Best Sellers data, including top-100 rankings, product profiles, price history, and cross-channel sentiment verification for AI agents without requiring authentication.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://asinrating.com/mcpWhat its tools do
11 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to asinrating.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Retrieve Amazon Top-100 Best Sellers rankings by category
- Fetch structured product profiles including ratings and price history
- Analyze social sentiment and review integrity signals
- Compare products using standardized fact-based data
Source and maintenance
Protocol and capabilities
- Server
- asinrating 1.30.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 11 advertised
- Resources
- 0 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"experimental": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
11 advertised
list_categories
List top-level Amazon US product categories and their subcategories covered by this service (US market only).
{
"type": "object",
"title": "list_categoriesArguments",
"properties": {}
}{
"title": "List Categories",
"readOnlyHint": true,
"idempotentHint": true
}get_top100
Get the Amazon US Top-100 Best Sellers Rank list for a product category (US market only). Pass exactly one of: category_id (a top-level category slug from list_categories, e.g. "pet-supplies") or subcategory_id (a numeric subcategory node id from list_categories, e.g. "3742171"). Omitting both returns an error. limit (1-100, default 100) and offset paginate the merged leaderboard; include_rating_distribution (default false) adds the rating_breakdown histogram.
{
"type": "object",
"title": "get_top100Arguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 100
},
"offset": {
"type": "integer",
"title": "Offset",
"default": 0
},
"category_id": {
"type": "string",
"title": "Category Id",
"default": null
},
"subcategory_id": {
"type": "string",
"title": "Subcategory Id",
"default": null
},
"include_rating_distribution": {
"type": "boolean",
"title": "Include Rating Distribution",
"default": false
}
}
}{
"title": "Get Top-100 BSR",
"readOnlyHint": true,
"idempotentHint": true
}get_sub_category_brief
Get a structured brief for a category: market overview, considering factors, gotchas, common questions, needs, and keywords. Pass exactly one of: category_id (a top-level category slug from list_categories, e.g. "pet-supplies") to aggregate all sub-categories under it, or subcategory_id (a numeric node id from list_categories) to get a single node's own brief. Omitting both returns an error.
{
"type": "object",
"title": "get_sub_category_briefArguments",
"properties": {
"category_id": {
"type": "string",
"title": "Category Id",
"default": null
},
"subcategory_id": {
"type": "string",
"title": "Subcategory Id",
"default": null
}
}
}{
"title": "Get Sub-Category Brief",
"readOnlyHint": true,
"idempotentHint": true
}get_product
Get a product's full profile: specs, full description, feature bullets, ratings, price, trend, dimension scores/percentiles, per-claim user-review facts check (facts_check), feature-level review verification (product_features), red-flag signals, and sentiment. profile.full_description carries the complete listing description paragraph when available in the source listing; otherwise it is null (specifications and feature_bullets remain present). product_features lists one record per seller-claimed feature in the seller's own order, each carrying its own user-review verdict; it is kept separate from feature_factors (category-level decision factors) and the two are never merged.
{
"type": "object",
"title": "get_productArguments",
"required": [
"asin"
],
"properties": {
"asin": {
"type": "string",
"title": "Asin"
}
}
}{
"title": "Get Product Profile",
"readOnlyHint": true,
"idempotentHint": true
}search_products
Search for candidate products matching a query, each with a data-maturity tier. query: 1-8 space-separated plain words (no SQL/special chars). category_id: optional top-level category slug from list_categories (e.g. "pet-supplies"). sort (enum): price_asc | price_desc | rating_desc | review_count_desc. Omit for relevance order. Relevance (default order) weights title match (3) > brand match (2) > feature-bullet match (1) per term; every term must match at least one field. matched reports the total hit count (matched=0 means no product matched every term). limit (1-100, default 20) / offset paginate; include_rating_distribution (default false) adds the rating_breakdown histogram. Filters: min_price / max_price in USD (floats), min_rating on a 0-5 scale. Invalid values return an error listing the allowed enum.
{
"type": "object",
"title": "search_productsArguments",
"required": [
"query"
],
"properties": {
"sort": {
"type": "string",
"title": "Sort",
"default": null
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
},
"query": {
"type": "string",
"title": "Query"
},
"offset": {
"type": "integer",
"title": "Offset",
"default": 0
},
"max_price": {
"type": "number",
"title": "Max Price",
"default": null
},
"min_price": {
"type": "number",
"title": "Min Price",
"default": null
},
"min_rating": {
"type": "number",
"title": "Min Rating",
"default": null
},
"category_id": {
"type": "string",
"title": "Category Id",
"default": null
},
"include_rating_distribution": {
"type": "boolean",
"title": "Include Rating Distribution",
"default": false
}
}
}{
"title": "Search Products",
"readOnlyHint": true,
"idempotentHint": true
}compare_products
Compare two to five products side-by-side across dimensions. asins: a list of 2-5 valid ASINs (10-char alphanumeric, e.g. "B08N5WRWNW"). Fewer than 2 or more than 5 items returns an error. facts_check reports, per ASIN, the five verdict counts across its fact-checked claims: corroborated, contradicted, insufficient, unmentioned_in_reviews, amz_not_disclosed.
{
"type": "object",
"title": "compare_productsArguments",
"required": [
"asins"
],
"properties": {
"asins": {
"type": "array",
"items": {},
"title": "Asins"
}
}
}{
"title": "Compare Products",
"readOnlyHint": true,
"idempotentHint": true
}request
Fetch structured data by URL or ASIN with optional field filters. Pass either url (an Amazon product page URL) or asin (10-char alphanumeric). fields (optional enum): profile | price | trend | ratings | competitiveness | seller | facts_check | product_features | red_flags | sentiment | data_limitations. live (optional, default false): when true, additionally hits a live data endpoint (~15-30s) and appends a "live" block with the freshest price, stock, Buy Box seller, rating, and review count, plus data_as_of and is_stale flags. Unknown field values return an error with the full list of allowed fields.
{
"type": "object",
"title": "requestArguments",
"properties": {
"url": {
"type": "string",
"title": "Url",
"default": null
},
"asin": {
"type": "string",
"title": "Asin",
"default": null
},
"live": {
"type": "boolean",
"title": "Live",
"default": false
},
"fields": {
"type": "array",
"items": {},
"title": "Fields",
"default": null
}
}
}{
"title": "Request Data",
"readOnlyHint": true,
"idempotentHint": true
}get_price
Get a product's latest price and product-page link.
{
"type": "object",
"title": "get_priceArguments",
"required": [
"asin"
],
"properties": {
"asin": {
"type": "string",
"title": "Asin"
}
}
}{
"title": "Get Price",
"readOnlyHint": true,
"idempotentHint": true
}get_price_change
Get a product's 180-day price change summary from recorded history: current price, 180-day low/high/average, sample count, and where the current price sits among its own recorded observations. Answers "is now a good time to buy" style questions from historical data; it is a stored snapshot, not a real-time quote (call scrap_page for live price).
{
"type": "object",
"title": "get_price_changeArguments",
"required": [
"asin"
],
"properties": {
"asin": {
"type": "string",
"title": "Asin"
}
}
}{
"title": "Get Price Change",
"readOnlyHint": true,
"idempotentHint": true
}scrap_page
Scrape a product page in real time for the latest price, stock, Buy Box seller, rating, and review count. Typically returns in 15-30 seconds, excluding first-time cold start and queueing. The response carries data_as_of (when the platform observed the data) and an is_stale flag for freshness judgment.
{
"type": "object",
"title": "scrap_pageArguments",
"properties": {
"url": {
"type": "string",
"title": "Url",
"default": null
},
"asin": {
"type": "string",
"title": "Asin",
"default": null
}
}
}{
"title": "Scrape Page Live",
"readOnlyHint": true,
"idempotentHint": true
}get_brand
Get a brand's full profile from the brand registry: tier, product count, cumulative review count, rating breakdown, seller positive percentage, subcategory monopoly HHI, 90-day trend, and ratings gained over 30/90 days. Pass a brand_name for an exact match, or a partial name to receive candidate matches.
{
"type": "object",
"title": "get_brandArguments",
"required": [
"brand_name"
],
"properties": {
"brand_name": {
"type": "string",
"title": "Brand Name"
}
}
}{
"title": "Get Brand Profile",
"readOnlyHint": true,
"idempotentHint": true
}Prompts
0 advertised
Resources
0 advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 2 of 2 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 209 ms
- 95th percentile latency
- 209 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 209 ms · metadata changed · 11 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http asinrating-mcp https://asinrating.com/mcpCodex
codex mcp add asinrating-mcp --url https://asinrating.com/mcpCursor
{
"mcpServers": {
"asinrating-mcp": {
"url": "https://asinrating.com/mcp"
}
}
}Cline
{
"mcpServers": {
"asinrating-mcp": {
"type": "streamableHttp",
"url": "https://asinrating.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"asinrating-mcp": {
"type": "http",
"url": "https://asinrating.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http asinrating-mcp https://asinrating.com/mcpClaude Desktop
https://asinrating.com/mcpWindsurf
{
"mcpServers": {
"asinrating-mcp": {
"serverUrl": "https://asinrating.com/mcp"
}
}
}Let your agent find its tools
Find servers like ASINRating MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run ASINRating MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.