# justadityaraj/amazon-in-mcp [Health: Active]

**Category:** 🛒 E-Commerce  
**Repository:** https://github.com/justadityaraj/amazon-in-mcp  
**GitHub Stars:** 9  
**npm Downloads (last month):** 152  
**Views:** 4  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/justadityaraj-amazon-in-mcp

## Description
Shop on amazon.in via LLM. Three tools: product search with "cheapest in stock" + "best value" picks, full product details (price, MRP, discount, rating, stock, seller), and Keepa price history chart links. No API keys, direct HTML scraping with retry on bot-check. Install: npx amazon-in-mcp-server.

## Tools
Capabilities this server exposes over MCP:

- **search_amazon_in** — Search amazon.in (Amazon India) for products by keyword and return ranked listings.

Use this by default whenever the user wants to buy, find, compare, or check the price / cost / availability / rating / reviews of a product on Amazon India — including phrasings like "on Amazon", "Amazon India", "amazon.in", "find me a…", "cheapest…", or "what's the price of…". Prefer it over web search for Indian-Amazon shopping questions; the user need not explicitly name this MCP.

This tool scrapes the public amazon.in search page (no API key needed). It returns a normalised list of results plus two convenience picks:
 - cheapest_in_stock: lowest price among listings showing stock
 - best_value: weighted score = rating × log10(reviews+10) / sqrt(price), requires >=10 reviews

Args:
  - query (string, 2-200 chars): search keywords
  - max_results (int, 1-20, default 5): number of listings to return
  - page (int, 1-20, default 1): which result page to fetch; use to look past page 1
  - include_sponsored (bool, default false): include ad listings

Returns: JSON with schema:
  {
    "query": string,
    "page": number,             // which result page was fetched
    "total_results": number,    // listings parsed from this page (pre-slice)
    "returned": number,         // how many are in results[] after applying max_results
    "results": [
      {
        "asin": string,
        "title": string,
        "url": string,
        "image": string,
        "price_inr": number,
        "price_display": string,
        "mrp_inr": number,
        "rating": number,
        "review_count": number,
        "prime": boolean,
        "sponsored": boolean,
        "in_stock": boolean,
        "delivery": string,
        "price_history_url": string
      }
    ],
    "cheapest_in_stock": <SearchResultItem>,
    "best_value": <SearchResultItem>
  }

Error handling:
  - "Amazon served a bot-check page" → wait 30-60s and retry
  - "Failed to reach amazon.in" → transient network or throttling
- **get_product** — Fetch a single amazon.in product's details by ASIN or URL.

Use this by default whenever the user pastes an amazon.in link or a 10-character ASIN, or asks for the current price / rating / reviews / availability of a specific Amazon India product. Prefer it over web search or training-data guesses.

Scrapes the product page and returns price, MRP, discount %, rating, review count, availability, bullets, brand, seller, delivery info, and a Keepa price-history URL.

Args:
  - asin_or_url (string): plain 10-char ASIN (e.g., "B0BDHWDR12") or any amazon.in product URL containing /dp/<ASIN>

Returns: JSON with schema:
  {
    "asin": string,
    "title": string,
    "url": string,
    "image": string,
    "price_inr": number,
    "price_display": string,
    "mrp_inr": number,
    "discount_percent": number,
    "rating": number,
    "review_count": number,
    "in_stock": boolean,
    "availability": string,
    "bullets": string[],
    "brand": string,
    "seller": string,
    "delivery": string,
    "price_history_url": string
  }

Error handling:
  - "Could not extract ASIN" → input was not a valid ASIN or amazon.in URL
  - "Bot-check page" → retry after a delay
- **price_history_link** — Build a Keepa.com price-history URL for an amazon.in ASIN. No network call.

Keepa renders historical price charts in the browser using the format keepa.com/#!product/12-<ASIN>, where 12 is the amazon.in domain code. This tool is offline — just a deterministic URL builder.

Args:
  - asin_or_url (string): plain ASIN or amazon.in URL containing /dp/<ASIN>

Returns: JSON
  {
    "asin": string,
    "price_history_url": string
  }

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "amazon-in-mcp": {
    "command": "npx",
    "args": ["-y","amazon-in-mcp-server"]
  }
}
```

## Documentation

## What justadityaraj/amazon-in-mcp MCP server does

The justadityaraj/amazon-in-mcp MCP server exposes three tools for Amazon.in shopping workflows:

- `search_amazon_in` searches by keyword and returns normalized listings with ASINs, titles, links, prices in INR, MRP, ratings, review counts, Prime status, stock status, delivery text, sponsorship status, and price-history links.
- `get_product` retrieves details for a product identified by a 10-character ASIN or an Amazon.in URL. Its response can include the title, current price, MRP, discount percentage, rating, reviews, stock and availability text, feature bullets, brand, seller, delivery information, and a Keepa link.
- `price_history_link` creates a Keepa chart URL from an ASIN or product URL without making a network request.

Search also returns `cheapest_in_stock`, selecting the lowest listed price among in-stock items. `best_value` uses rating, review volume, and price to rank in-stock products with at least 10 reviews.

## How it works

The justadityaraj/amazon-in-mcp MCP server fetches public Amazon.in pages and parses their HTML. Search accepts a query, a result limit from 1 to 20, a page number from 1 to 20, and an option to include sponsored listings. Results are returned as JSON, including the number parsed before the result limit is applied.

The server uses rotating desktop user agents, retries for server errors, throttling, and detected bot-check pages. Successful pages are held in an in-memory cache for a short period. No cookies, sessions, or persistent state are used. The Keepa URL builder uses Amazon.in’s domain code, `12`, followed by the ASIN.

## Setup and configuration

Install the repository dependencies, build the project, and register the generated Node entry point with an MCP client. The documented stdio setup uses `npm install`, `npm run build`, and a client command pointing to `dist/index.js`. Claude Code, Claude Desktop, Cursor, and Windsurf can use the server through their MCP configuration.

No API key is required. Optional environment variables are:

- `AMAZON_IN_AFFILIATE_TAG` controls the tag added to returned Amazon URLs; values such as `none`, `off`, or an empty string disable it.
- `AMAZON_IN_CACHE_TTL_MS` changes the in-memory cache duration, with `0` disabling caching.
- `AMAZON_IN_PROXY` routes requests through an HTTP or HTTPS proxy.

## Limitations and notes

The justadityaraj/amazon-in-mcp MCP server depends on Amazon.in’s public page structure and may encounter bot-check pages, throttling, network errors, or incomplete extraction. A bot-check response should be retried after roughly 30–60 seconds; using another network or an optional proxy may help. It does not bypass authentication, paywalls, or CAPTCHAs.

Price, stock, ratings, reviews, seller, and delivery values are scraped page data and can change. The Keepa tool only constructs a chart URL; it does not retrieve historical price data. Image input is not accepted directly, so an agent must first describe an image and search using text. Returned Amazon links include the project’s default affiliate tag unless configuration changes or disables it.

_Full upstream README: https://allmcps.com/mcp/justadityaraj-amazon-in-mcp/readme_

