Koskamo

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.

ASINRating MCP logo, by SoCal Creeks GlobalVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by SoCal Creeks Global
MCP endpoint (Streamable HTTP)
https://asinrating.com/mcp
Vendor documentation

What its tools do

11 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

11 of 11 have a description · 11 of 11 declare behavior hints · 0 of 10 with parameters document them all

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

Vendor evidenceRegistry 1.0.0

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
Server-advertised capabilities
{
  "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.

Agentic Shopping Intelligence: structured product intelligence, sentiment verification, and neutral shopping guidance for AI agents — covering Amazon's Top-100 BSR in core subcategories. Fact-only, neutral, free.

Tools

11 advertised

list_categories
Advertised by the server during the last successful anonymous check.
Advertised read-only

List top-level Amazon US product categories and their subcategories covered by this service (US market only).

list_categories input schema
{
  "type": "object",
  "title": "list_categoriesArguments",
  "properties": {}
}
list_categories annotations
{
  "title": "List Categories",
  "readOnlyHint": true,
  "idempotentHint": true
}
get_top100
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_top100 input schema
{
  "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
    }
  }
}
get_top100 annotations
{
  "title": "Get Top-100 BSR",
  "readOnlyHint": true,
  "idempotentHint": true
}
get_sub_category_brief
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_sub_category_brief input schema
{
  "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
    }
  }
}
get_sub_category_brief annotations
{
  "title": "Get Sub-Category Brief",
  "readOnlyHint": true,
  "idempotentHint": true
}
get_product
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_product input schema
{
  "type": "object",
  "title": "get_productArguments",
  "required": [
    "asin"
  ],
  "properties": {
    "asin": {
      "type": "string",
      "title": "Asin"
    }
  }
}
get_product annotations
{
  "title": "Get Product Profile",
  "readOnlyHint": true,
  "idempotentHint": true
}
search_products
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_products input schema
{
  "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
    }
  }
}
search_products annotations
{
  "title": "Search Products",
  "readOnlyHint": true,
  "idempotentHint": true
}
compare_products
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

compare_products input schema
{
  "type": "object",
  "title": "compare_productsArguments",
  "required": [
    "asins"
  ],
  "properties": {
    "asins": {
      "type": "array",
      "items": {},
      "title": "Asins"
    }
  }
}
compare_products annotations
{
  "title": "Compare Products",
  "readOnlyHint": true,
  "idempotentHint": true
}
request
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

request input schema
{
  "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
    }
  }
}
request annotations
{
  "title": "Request Data",
  "readOnlyHint": true,
  "idempotentHint": true
}
get_price
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get a product's latest price and product-page link.

get_price input schema
{
  "type": "object",
  "title": "get_priceArguments",
  "required": [
    "asin"
  ],
  "properties": {
    "asin": {
      "type": "string",
      "title": "Asin"
    }
  }
}
get_price annotations
{
  "title": "Get Price",
  "readOnlyHint": true,
  "idempotentHint": true
}
get_price_change
Advertised by the server during the last successful anonymous check.
Advertised read-only

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).

get_price_change input schema
{
  "type": "object",
  "title": "get_price_changeArguments",
  "required": [
    "asin"
  ],
  "properties": {
    "asin": {
      "type": "string",
      "title": "Asin"
    }
  }
}
get_price_change annotations
{
  "title": "Get Price Change",
  "readOnlyHint": true,
  "idempotentHint": true
}
scrap_page
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

scrap_page input schema
{
  "type": "object",
  "title": "scrap_pageArguments",
  "properties": {
    "url": {
      "type": "string",
      "title": "Url",
      "default": null
    },
    "asin": {
      "type": "string",
      "title": "Asin",
      "default": null
    }
  }
}
scrap_page annotations
{
  "title": "Scrape Page Live",
  "readOnlyHint": true,
  "idempotentHint": true
}
get_brand
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_brand input schema
{
  "type": "object",
  "title": "get_brandArguments",
  "required": [
    "brand_name"
  ],
  "properties": {
    "brand_name": {
      "type": "string",
      "title": "Brand Name"
    }
  }
}
get_brand annotations
{
  "title": "Get Brand Profile",
  "readOnlyHint": true,
  "idempotentHint": true
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

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.

Too few checks for a percentage yet (2 of 2 answered).

  1. 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.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http asinrating-mcp https://asinrating.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add asinrating-mcp --url https://asinrating.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable asinrating-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "asinrating-mcp": {
      "url": "https://asinrating.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "asinrating-mcp": {
      "type": "streamableHttp",
      "url": "https://asinrating.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start asinrating-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "asinrating-mcp": {
      "type": "http",
      "url": "https://asinrating.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http asinrating-mcp https://asinrating.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://asinrating.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "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.

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.

Claim this listing