RankGenius runs an MCP server that any MCP-compatible client can connect to. It exposes the same tools as the REST API — live keyword rank, Buy Box, mobile search, product page, reviews, and seller details — across 21 Amazon marketplaces. Every tool call counts as one metered request, scoped to your account.
Add RankGenius to your MCP client using the endpoint and your API key below. The key is sent as a Bearer token; it's the same key as the REST API.
| Endpoint | https://rankgeniusapp.com/api/mcp |
| Transport | Streamable HTTP (JSON-RPC 2.0 over HTTP) |
| Auth | Bearer token — your API key |
| Your API key | <your-api-key>
Find your real key on your Dashboard after you sign up free — then paste it into the snippets below. |
claude mcp add --transport http rankgenius https://rankgeniusapp.com/api/mcp \ --header "Authorization: Bearer <your-api-key>"
Add to .mcp.json (Claude Code) or your client's config file:
{
"mcpServers": {
"rankgenius": {
"type": "http",
"url": "https://rankgeniusapp.com/api/mcp",
"headers": {
"Authorization": "Bearer <your-api-key>"
}
}
}
}
type value varies by client — Claude Code uses
"http", while Claude Desktop and the MCP spec use "streamable-http". The URL
and auth are the same for all clients.
Once connected, your assistant has these tools. You don't call them directly — just ask, and it
picks the right one. Every tool also accepts an optional marketplace code (default
us).
Returns each organic result with its rank (on-page position), price (incl. list price, discount %, coupon, and per-item price when present), review count, rating, monthly-sales estimate, Prime/stock, delivery estimates, and badges, plus related_keywords. Results are organic only — sponsored/ad placements are excluded. One call returns a single page (~48 results); pass page = 2, 3, … to go deeper. has_more and last_page tell you whether more pages exist, and page echoes the page returned. Pass an optional asin to get a target block with that product's exact position on the requested page (if it flags "not ranked", the ASIN simply isn't on that page — request a higher page to find its true position). Pass an optional zip to localize the SERP — Amazon's ranking and which products appear vary by zip, and pinning one makes results stable and comparable across calls. delivery_to reflects the zip used.
| Parameter | Type | Description |
|---|---|---|
keyword |
string · required | The search keyword/phrase. |
marketplace |
string · optional | Amazon marketplace/country code. Default us. 21 supported (us, uk, ca, de, fr, es, it, nl, se, pl, be, tr, sa, ae, eg, in, jp, au, sg, mx, br). |
asin |
string · optional | Optional ASIN to locate within the results. |
zip |
string · optional | Optional delivery postal code to localize results (supported in the US, UK, Germany, France & Canada; same set as buybox). Call supported_zips for the list per marketplace, e.g. 30303 (US) or B1 1BB (UK). Unsupported codes return an error. |
page |
integer · optional | Results page number (default 1, ~48 results/page). Use has_more/last_page to page deeper — each page is one metered request. |
since |
integer · optional | Freshness window in seconds (default 3600, max 86400). If your account already ran this exact request within since seconds, the cached result is returned for free — cached: true, no credits charged. Pass 0 to force a live, freshly-charged lookup. |
The structured content the tool returns to your assistant.
{
"query": "insulated water bottle",
"marketplace": "us",
"delivery_to": "Atlanta 30303",
"total_results": 35618,
"result_count": 48,
"asin_count": 48,
"page": 1,
"last_page": 7,
"has_more": true,
"products": [
{
"asin": "B0D8J2ZB8P",
"rank": 1,
"sponsored": false,
"organic_rank": 1,
"title": "POWCAN 26 oz Insulated Water Bottle with 2-in-1 Straw and Spout Lid ...",
"image_url": "https://m.media-amazon.com/images/I/515ELeeh4OL._AC_UL320_.jpg",
"price": "$14.98",
"price_num": 14.98,
"list_price": 18.99,
"price_per_item": null,
"discount_pct": 21.12,
"discount_amount": 4.01,
"coupon": null,
"rating": 4.6,
"reviews": 11208,
"monthly_sales": 9000,
"is_prime": true,
"stock_level": null,
"free_delivery": "FREE delivery Tue, Jul 28",
"fastest_delivery": "Tue, Jul 28",
"html_index": 3,
"badges": []
},
{
"asin": "B085DTZQNZ",
"rank": 2,
"sponsored": false,
"organic_rank": 2,
"title": "Owala FreeSip Insulated Stainless Steel Water Bottle with Straw, 24 oz ...",
"image_url": "https://m.media-amazon.com/images/I/718RbhzhVbL._AC_UL320_.jpg",
"price": "$29.97",
"price_num": 29.97,
"list_price": null,
"price_per_item": null,
"discount_pct": null,
"discount_amount": null,
"coupon": null,
"rating": 4.7,
"reviews": 130660,
"monthly_sales": 20000,
"is_prime": true,
"stock_level": null,
"free_delivery": "FREE delivery Tue, Jul 28",
"fastest_delivery": "Tue, Jul 28",
"html_index": 5,
"badges": ["best_seller"]
}
],
"related_keywords": ["water bottle", "insulated water bottle 32oz", "insulated water bottle 40oz"]
}
Returns the owning seller id and name, winning price/currency, in-stock flag and stock "only N left" counter, FBA vs. merchant + ships_from, Prime status, and any used/used_price offer. seller_id, ships_from, fba, stock, and the used-offer fields are null when Amazon itself holds the Buy Box and populate for third-party listings. Pass an optional zip to add a location-specific delivery estimate — the response then also includes delivery_to, fastest_delivery, free_delivery, and free_shipping (only a fixed set of US postal codes is supported; others return an error).
| Parameter | Type | Description |
|---|---|---|
asin |
string · required | The product ASIN. |
marketplace |
string · optional | Amazon marketplace/country code. Default us. 21 supported (us, uk, ca, de, fr, es, it, nl, se, pl, be, tr, sa, ae, eg, in, jp, au, sg, mx, br). |
zip |
string · optional | Optional destination postal code for a delivery estimate (supported in the US, UK, Germany, France & Canada; call supported_zips for the list per marketplace, e.g. 30303 (US) or B1 1BB (UK)). |
since |
integer · optional | Freshness window in seconds (default 3600, max 86400). If your account already ran this exact request within since seconds, the cached result is returned for free — cached: true, no credits charged. Pass 0 to force a live, freshly-charged lookup. |
The structured content the tool returns to your assistant.
{
"asin": "B085DTZQNZ",
"marketplace": "us",
"seller_id": null,
"sold_by": "Amazon.com",
"price": 29.97,
"currency": "$",
"in_stock": true,
"stock": null,
"prime": true,
"ships_from": null,
"fba": null,
"used": null,
"used_price": null,
"competing_offers": null,
"zip": "30303",
"delivery_to": "Atlanta 30303",
"fastest_delivery": "Friday, July 24",
"free_delivery": "Tuesday, July 28",
"free_shipping": true
}
Parses the major elements out of the live product page into a product object — title, brand, star rating and ratings count, "about this item" bullets, category breadcrumbs, Best Sellers Rank, image URLs, availability, variations (colour/size/style and the sibling ASINs), badges (e.g. frequently_returned, amazons_choice, climate_pledge_friendly), whether it has A+ content, and the buy-box seller/fulfillment. Also returns a full details attribute table (material, dimensions, weight, UPC/GTIN, model, care instructions, …), the AI-generated customer_say review summary, monthly_sales (recent purchase volume), A+ image/video URLs, and review_insights (per-aspect sentiment). (For a reliable price/currency, use buybox.)
| Parameter | Type | Description |
|---|---|---|
asin |
string · required | The product ASIN. |
marketplace |
string · optional | Amazon marketplace/country code. Default us. 21 supported (us, uk, ca, de, fr, es, it, nl, se, pl, be, tr, sa, ae, eg, in, jp, au, sg, mx, br). |
since |
integer · optional | Freshness window in seconds (default 3600, max 86400). If your account already ran this exact request within since seconds, the cached result is returned for free — cached: true, no credits charged. Pass 0 to force a live, freshly-charged lookup. |
Free repeats: re-requesting the same ASIN + marketplace within the freshness window (default 1 hour; see the since parameter) is served from cache and is not metered (cached: true).
The structured content the tool returns to your assistant.
{
"asin": "B085DTZQNZ",
"marketplace": "us",
"delivery_to": null,
"html_bytes": 0,
"cached": false,
"product": {
"asin": "B085DTZQNZ",
"parsed": true,
"title": "Owala FreeSip Stainless Steel Water Bottle 24 oz ...",
"brand": "Owala",
"rating": 4.6,
"ratings_count": 135827,
"bullets": ["24-ounce insulated stainless-steel water bottle with a FreeSip spout ...", "..."],
"best_sellers_rank": [
{ "rank": 1, "category": "Home & Kitchen" },
{ "rank": 1, "category": "Insulated Bottles" }
],
"category": ["Home & Kitchen", "Kitchen & Dining", "Thermoses", "Insulated Beverage Containers"],
"images": [
"https://m.media-amazon.com/images/I/718RbhzhVbL._AC_SL1500_.jpg",
"https://m.media-amazon.com/images/I/51NEAowN4KL._AC_SL1080_.jpg"
],
"availability": "In Stock",
"sold_by": "Amazon.com",
"seller_id": null,
"ships_from": "Amazon.com",
"sold_by_amazon": true,
"fba": true,
"prime": true,
"price": 29.97,
"buybox": { "seller_name": "Amazon.com", "seller_id": null, "ships_from": "Amazon.com", "sold_by_amazon": true, "fba": true },
"monthly_sales": 40000,
"monthly_sales_text": "40K+ bought in past month",
"variations": [
{ "value": "32 oz", "asin": "B0BZYCJK89", "price": 29.99, "available": true, "image_url": "..." }
],
"has_aplus": true,
"aplus_images": ["https://m.media-amazon.com/images/S/aplus-media-library-service-media/....png"],
"aplus_videos": [],
"details": {
"Brand Name": "Owala",
"Material": "Stainless Steel",
"Item Weight": "13.6 ounces",
"UPC": "847280062256"
},
"customer_say": "Customers love the temperature retention, leak-proof design, and hidden straw.",
"review_insights": { "summary": "...", "featureAspects": [] }
}
}
Returns customer reviews for a product, one page at a time (~10 per page). Each review carries rating, title, author, verified/vine flags, helpful_votes, body text, and any review images/videos. Aggregates: product_rating (e.g. 4.6); rating_count = all star ratings (with or without written text); review_count = written reviews only, so it is normally much smaller than rating_count (they are not meant to match). star_breakdown is the percentage at each 1–5 stars (Amazon publishes no per-star counts; multiply by rating_count for an estimate). Walk pages with page (has_more/last_page); sort with sort: recent (chronological, newest first) or helpful (Amazon's "Top reviews" order — Amazon's own relevance ranking, which factors in recency and verified purchases, so it is not a strict most-helpful-votes sort and low-vote reviews can appear first). Amazon exposes only ~100 reviews per sort: last_page reflects those accessible pages and can be far below review_count — you cannot page to every review.
| Parameter | Type | Description |
|---|---|---|
asin |
string · required | The product ASIN. |
marketplace |
string · optional | Amazon marketplace/country code. Default us. 21 supported (us, uk, ca, de, fr, es, it, nl, se, pl, be, tr, sa, ae, eg, in, jp, au, sg, mx, br). |
page |
integer · optional | Review page number (~10/page). Default 1. |
sort |
string · optional | Sort order: recent (default, newest first) or helpful (Amazon's "Top reviews" relevance order, not a strict helpful-vote sort). |
since |
integer · optional | Freshness window in seconds (default 3600, max 86400). If your account already ran this exact request within since seconds, the cached result is returned for free — cached: true, no credits charged. Pass 0 to force a live, freshly-charged lookup. |
One page (~10 reviews) per request; page through with page up to last_page (Amazon caps public reviews at ~100 per sort). rating_count and review_count are the true product totals and differ by design (all ratings vs written reviews). star_breakdown is percentages only — Amazon exposes no exact per-star counts, so track product_rating + rating_count for precise trends.
The structured content the tool returns to your assistant.
{
"asin": "B085DTZQNZ",
"marketplace": "us",
"page": 1,
"last_page": 10,
"has_more": true,
"sort": "recent",
"product_title": "Owala FreeSip Stainless Steel Water Bottle 24 oz ...",
"product_rating": 4.6,
"rating_count": 133146,
"review_count": 10000,
"star_breakdown": { "5": 85, "4": 7, "3": 3, "2": 1, "1": 4 },
"reviews": [
{
"review_id": "R20F2R35NH8QSK",
"title": "The straw won't stay in place",
"rating": 3.0,
"author": "Ldterry",
"date": "Reviewed in the United States on August 9, 2026",
"date_iso": "2026-08-09",
"verified": true,
"vine": false,
"helpful_votes": 0,
"variation": "B0F359FRH8",
"text": "Love the bottle overall but the straw ...",
"images": [],
"videos": []
}
]
}
Lists the delivery codes that keyword_rank and buybox accept as an optional zip (unsupported codes are rejected). Returns { zip, delivery } rows for the marketplace. Not metered — it doesn't spend credits. The full list is also browsable at /docs/zip-codes.
| Parameter | Type | Description |
|---|---|---|
marketplace |
string · optional | Amazon marketplace/country code. Default us. 21 supported (us, uk, ca, de, fr, es, it, nl, se, pl, be, tr, sa, ae, eg, in, jp, au, sg, mx, br). |
Un-metered. Use it to pick a valid zip before calling a tool that takes one.
The structured content the tool returns to your assistant.
{
"marketplace": "us",
"count": 308,
"zips": [
{ "zip": "10001", "delivery": "NEW YORK - 10001" },
{ "zip": "30303", "delivery": "ATLANTA - 30303" },
{ "zip": "90001", "delivery": "LOS ANGELES - 90001" }
]
}
Things you can ask once RankGenius is connected:
| What you ask | What happens |
|---|---|
| "Where does B085DTZQNZ rank for ‘insulated water bottle’?" | Uses keyword_rank with your ASIN to report its exact position. |
| "Compare delivery speed for this ASIN in 30303 vs 30349." | Two buybox calls with different zips; compares fastest_delivery. |
| "Who owns the Buy Box on B085DTZQNZ, and are they 1P or 3P?" | Uses buybox to show the winning seller, price, and fulfillment. |
| "Summarize the recent complaints in this product's reviews." | Pages product_reviews and clusters the themes. |
The MCP server uses the same API key as the REST API, sent as a Bearer token. All data is scoped to your account. If your key is exposed, rotate it with Regenerate Key on your Dashboard — the old key stops working immediately.