关于 Amazon.in MCP Server
Amazon.in MCP Server 为 LLM 提供 Amazon.in 商品搜索、详情和价格历史链接查询,适用于购物研究。它会筛选在售商品,并给出最低价和按评分、评论数与价格计算的性价比推荐。
主要功能
- 01搜索并排序商品列表
- 02推荐最低价在售商品
- 03按评分、评论和价格计算性价比
- 04查询商品价格、库存与卖家信息
- 05生成 Keepa 价格历史图表链接
- 06本地运行且无需 API 密钥
适用场景
- 01按关键词寻找符合预算的商品
- 02比较在售商品的价格与评价
- 03查看商品详情和配送信息
- 04打开商品价格历史图表
MCP 相关
此 MCP 服务向客户端提供商品搜索、商品详情和价格历史链接三个工具,可从 Amazon.in 页面抓取信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y amazon-in-mcp-serverAMAZON_IN_AFFILIATE_TAGOverride the default Amazon Associates tag baked into emitted amazon.in URLs. Set to an empty string to disable affiliate tagging entirely.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
3收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 关键词搜索查询(例如 'bluetooth speaker under 2000') |
| max_results | integer | 否 | 要返回的商品数量(1-20)。默认值为 5。 |
| include_sponsored | boolean | 否 | 是否包含赞助/广告商品。默认为 false。 |
详细介绍
amazon-in-mcp
一个MCP 服务,让你的大模型在 Amazon.in 上购物。
最便宜的有货商品。性价比之选。价格历史。无需付费 API。
功能
你的大模型可以针对 amazon.in 调用以下三个工具:
| 工具 | 返回内容 |
|---|---|
search_amazon_in(query, max_results=5, page=1) | 排序后的商品列表,以及两个便捷推荐:最便宜的有货商品和最佳性价比(评分 × log10(评论数) / √价格)。page 可获取更靠后的结果页。 |
get_product(asin_or_url) | 完整商品详情——价格、MRP、折扣、评分、评论数、库存、要点、品牌、卖家、配送 |
price_history_link(asin_or_url) | 指向 amazon.in 域名的 Keepa.com 价格图表 URL。不发起网络请求。 |
无需 API 密钥。无需账户。通过 stdio 在本地运行。直接抓取 HTML,使用轮换的用户代理,并在遇到机器人检测页面时重试。
快速开始
1. 安装(Claude Code):
git clone https://github.com/justadityaraj/amazon-in-mcp.git
cd amazon-in-mcp && npm install && npm run build
claude mcp add amazon-in -- node "$PWD/dist/index.js"
2. 重启 MCP 客户端(Claude Code、Cursor、Claude Desktop 等)
3. 提问:
“帮我在 amazon.in 上找一款不错的 1TB 外置 SSD,价格低于 ₹10,000。推荐性价比最高的。”
你的大模型会调用 search_amazon_in,按性价比排序,并返回一款真实商品及其当前价格和用于查看价格历史的 Keepa 链接。
效果展示
调用 search_amazon_in("wireless mouse", max_results=3) 的实际返回结果:
{
"query": "wireless mouse",
"page": 1,
"total_results": 3,
"results": [
{
"asin": "B0CQRNWJM2",
"title": "ZEBRONICS Blanc Slim Wireless Mouse...",
"url": "https://www.amazon.in/dp/B0CQRNWJM2?tag=artech-21",
"price_inr": 423,
"mrp_inr": 799,
"rating": 4.0,
"review_count": 7801,
"in_stock": true,
"delivery": "FREE delivery Tomorrow",
"price_history_url": "https://keepa.com/#!product/12-B0CQRNWJM2"
}
],
"cheapest_in_stock": { "asin": "...", "price_inr": 199, "...": "..." },
"best_value": { "asin": "...", "rating": 4.3, "...": "..." }
}
get_product 还会返回 bullets[]、brand、seller、discount_percent、availability。
配置 MCP 客户端
Claude Code
claude mcp add amazon-in -- node /absolute/path/to/amazon-in-mcp/dist/index.js
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"amazon-in": {
"command": "node",
"args": ["/absolute/path/to/amazon-in-mcp/dist/index.js"]
}
}
}
Cursor / Windsurf / others
与 Claude Desktop 使用相同的 JSON 配置。将其放入客户端的 MCP 设置文件中。
配置
以下配置均为可选项。在 MCP 客户端配置的 env 区块中设置;默认值会保留原有行为。
| 环境变量 | 默认值 | 用途 |
|---|---|---|
AMAZON_IN_AFFILIATE_TAG | artech-21 | 添加到输出 URL 中的 Amazon Associates 标签。设为 none / off / "" 可禁用。参见项目资金来源。 |
AMAZON_IN_CACHE_TTL_MS | 90000 | 内存页面缓存的有效时长(ms)。设为 0 可禁用缓存。 |
AMAZON_IN_PROXY | unset | 用于所有请求的 HTTP/HTTPS 代理 URL,例如 http://user:pass@host:8080。 |
示例——通过代理转发,并将缓存时长缩短至 30 s:
{
"mcpServers": {
"amazon-in": {
"command": "node",
"args": ["/path/to/dist/index.js"],
"env": {
"AMAZON_IN_PROXY": "http://user:[email protected]:8080",
"AMAZON_IN_CACHE_TTL_MS": "30000"
}
}
}
}
自动路由(无需说“使用 Amazon MCP”)
安装后,服务会告知客户端自动调用这些工具。它内置了 MCP 服务指令(在 initialize 握手中返回),指示模型默认对任何有关 amazon.in 购物、价格、库存情况或评论的问题使用 search_amazon_in / get_product,包括你只粘贴 amazon.in 链接或 ASIN 的情况。工具描述中也包含相同的触发关键词,作为备用方案,供会读取工具描述但不读取服务指令的客户端使用。
因此,你可以询问“帮我找一款 3000 以下的机械键盘”,或粘贴商品链接,客户端就会将请求路由到此服务,无需你指定它。请注意,这是由宿主(Claude Code、Claude Desktop、Cursor 等)提供的模型级指引,并非协议层面的强制保证——如果客户端忽略服务指令和工具描述,就不会被强制路由。
图片搜索
此服务有意不接受图片输入,以保持与供应商无关。你可以将图片粘贴到大模型客户端中,请它描述商品,它就会自动使用合适的关键词调用 search_amazon_in。所有支持 MCP 的客户端都可以这样使用。
“性价比最高”的评分方式
在至少有 10 条评论的有库存商品中:
$$ \text{score} = \frac{\text{rating} \times \log_{10}(\text{reviews} + 10)}{\sqrt{\text{price}}} $$
得分最高者胜出。cheapest_in_stock 仅表示有库存商品中 price_inr 最低的商品——如果你只想要最低价格,而不是综合权衡,这个工具会很有用。
稳健性
| UA 轮换 | 5 种现代桌面 UA(Mac / Win / Linux 上的 Chrome / Safari / Firefox) |
| 重试 | 最多尝试 3 次;遇到 5xx、429 和机器人检测页面时采用指数退避 |
| 机器人检测 | 扫描前 8 KB,查找已知的 CAPTCHA / 机器人标记 |
| 超时 | 每个请求 20 s |
| 缓存 | 成功获取的页面会在内存中缓存 90 s(按 URL 区分),以跳过重复获取;使用 AMAZON_IN_CACHE_TTL_MS 调整,设为 0 可禁用 |
| 代理 | 可选——设置 AMAZON_IN_PROXY,在数据中心 IP 被屏蔽时通过 HTTP/HTTPS 代理路由请求 |
| 状态 | 不会持久化任何状态。使用 Stdio,不使用 Cookie 或会话——缓存仅是短暂的进程内缓冲区 |
高频使用时,预计约有 1–5% 的请求会因机器人检测而失败。等待 30–60 秒后重试、换用其他网络,或设置 AMAZON_IN_PROXY。
本项目的资金来源
默认情况下,此服务返回的 amazon.in URL 会包含作者的 Amazon Associates 标签(artech-21)。如果你(或你的大模型)点击链接并购买商品,作者会获得少量佣金。你支付的价格不变。 这是本项目保持免费、采用 MIT 许可并持续维护的唯一方式。
你可以随时通过 AMAZON_IN_AFFILIATE_TAG 环境变量覆盖或禁用:
| 值 | 行为 |
|---|---|
| unset | 作者的标签(artech-21)——支持本项目 |
yourtag-21 | 你自己的 Amazon Associates 标签 |
none / off / false / "" | 不添加标签,使用原始 amazon.in URL |
示例——使用你自己的标签:
{
"mcpServers": {
"amazon-in": {
"command": "node",
"args": ["/path/to/dist/index.js"],
"env": { "AMAZON_IN_AFFILIATE_TAG": "yourtag-21" }
}
}
}
路线图
- 发布到 npm,以便通过
npx -y amazon-in-mcp-server安装 - 可选支持 Keepa API(由用户提供密钥),以获取真实的价格历史数据
- 筛选辅助工具——
min_rating、min_reviews、under_price - 使用缓存的 HTML 固定样本进行冒烟测试
开发
npm install
npm run dev # tsx watch
npm run build # tsc → dist/
npm start # node dist/index.js
使用 MCP Inspector 进行交互式测试:
npx @modelcontextprotocol/inspector node dist/index.js
项目结构:
src/
index.ts # MCP server + 3 tool registrations
scraper.ts # fetch with UA rotation, retry, bot-check, proxy, cache
parse.ts # cheerio selectors for search + product pages
cache.ts # in-memory TTL + LRU cache
constants.ts # UAs, headers, tuning constants, affiliate/proxy/cache config
types.ts # SearchResultItem, ProductDetail
免责声明
获取可公开访问的 amazon.in 页面,供个人研究和助手使用。不会绕过身份验证、付费墙或 CAPTCHA——当 Amazon 返回机器人检测页面时,工具会停止并报告错误。
你有责任确保使用方式符合 Amazon 的服务条款和当地法律。对于服务正常运行时间、准确性或任何用途的适用性,均不作保证。DOM 选择器仅尽力而为,Amazon 更新页面布局时可能会失效。欢迎提交 PR。
许可证
MIT © Aditya Raj Singh
欢迎提交问题、错误报告和选择器修复——Amazon 的 DOM 每隔几个月就会变化,因此本项目偶尔会失效,需要社区协助保持更新。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。