关于 Amazon Products
Amazon Products 是用于搜索 Amazon 并获取商品详情的 MCP 服务,覆盖 22 个区域站点。它使用无头 Chrome 渲染页面并返回结构化商品信息。
主要功能
- 01按关键词搜索商品
- 02按 ASIN 获取详情
- 03列出支持的区域
- 04返回价格、评分和库存情况
- 05展示商品变体
适用场景
- 01比较不同 Amazon 区域的商品
- 02查询商品价格与库存
- 03查看评分和商品变体
MCP 相关
该服务通过 stdio 向 MCP 客户端提供区域列表、商品搜索和商品详情工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Amazon 产品 MCP 服务
用于在 Amazon 上搜索产品并获取产品详情的 MCP 服务。支持 22 个 Amazon 区域站点,可提取价格、评分、特性、库存情况和产品变体。使用无头 Chrome 浏览器渲染页面并处理 Amazon 的反机器人保护。通过 stdio 通信,可与 Claude Desktop 或 Claude Code 等任何兼容 MCP 的客户端配合使用。
开始使用
要求
-
已安装 Google Chrome 或 Chromium(服务会以无头模式启动浏览器)
在 Linux 上,请避免使用 snap 打包的 Chromium(Ubuntu 默认的
chromium软件包)。当它作为某些父进程的后代进程启动时(已观察到在 Claude Desktop 的 Electron 进程树下运行),会无限期卡住——无论是在正常关闭 CDP 标签页时,还是在强制终止后由操作系统回收进程时,都会如此。在该环境下,这种卡死现象 100% 可复现;使用相同代码搭配非 snap 版本的 Chrome/Chromium 则从未出现过。请改为安装 Google Chrome 或非 snap 版本的 Chromium;如果未能自动检测到,请将CHROME_EXEC_PATH指向该浏览器。
配置
| 变量 | 必填 | 说明 |
|---|---|---|
AMAZON_REGION | 否 | 默认 Amazon 区域(默认值:us)。可按请求覆盖。 |
CHROME_EXEC_PATH | 否 | 要启动的 Chrome/Chromium 二进制文件路径。留空则使用自动检测。关于 Linux 上 snap 打包的 Chromium,请参阅上面的说明。 |
从源代码安装
需要 Go 1.27.3+。
go install github.com/jbeshir/mcp-servers/amazon-products/cmd/amazon-products-mcp@latest
Docker
Docker 镜像内置了无头 Chrome shell,因此无需在本地安装 Chrome。
docker build -t amazon-products-mcp ./amazon-products
docker run -e AMAZON_REGION=us amazon-products-mcp
Claude Desktop
将以下内容添加到 Claude Desktop 配置文件(claude_desktop_config.json)中:
{
"mcpServers": {
"amazon-products": {
"command": "/path/to/amazon-products-mcp",
"env": { "AMAZON_REGION": "us" }
}
}
}
Claude Code
claude mcp add amazon-products -- env AMAZON_REGION=us /path/to/amazon-products-mcp
工具
| 工具 | 说明 |
|---|---|
list_regions | 列出所有受支持的 Amazon 区域及其 ID、名称和货币 |
search_products | 按关键词搜索 Amazon 上的产品。返回价格、评分和 Prime 资格信息。参数:query(必填)、region(可选) |
get_product_details | 按 ASIN 获取产品详细信息,包括价格、描述、特性、评分、库存情况和变体。参数:asin(必填)、region(可选) |
支持的区域
| ID | 名称 | 域名 | 货币 |
|---|---|---|---|
ae | 阿拉伯联合酋长国 | amazon.ae | AED |
au | 澳大利亚 | amazon.com.au | AUD |
be | 比利时 | amazon.com.be | EUR |
br | 巴西 | amazon.com.br | BRL |
ca | 加拿大 | amazon.ca | CAD |
de | 德国 | amazon.de | EUR |
eg | 埃及 | amazon.eg | EGP |
es | 西班牙 | amazon.es | EUR |
fr | 法国 | amazon.fr | EUR |
ie | 爱尔兰 | amazon.co.uk | GBP |
in | 印度 | amazon.in | INR |
it | 意大利 | amazon.it | EUR |
jp | 日本 | amazon.co.jp | JPY |
mx | 墨西哥 | amazon.com.mx | MXN |
nl | 荷兰 | amazon.nl | EUR |
pl | 波兰 | amazon.pl | PLN |
sa | 沙特阿拉伯 | amazon.sa | SAR |
se | 瑞典 | amazon.se | SEK |
sg | 新加坡 | amazon.sg | SGD |
tr | 土耳其 | amazon.com.tr | TRY |
uk | 英国 | amazon.co.uk | GBP |
us | 美国 | amazon.com | USD |
关键概念
- ASIN —— Amazon 标准识别号(Amazon Standard Identification Number)。由 10 个字母数字字符组成的 ID(例如
B09CDRVQZC),用于唯一标识 Amazon 上的产品。作为get_product_details的主键。 - Regions —— 每个 Amazon 地区对应一个特定域名(例如,
us对应amazon.com,de对应amazon.de)。地区决定抓取哪个站点,以及价格以哪种货币显示。默认地区通过AMAZON_REGION设置,也可以按请求覆盖。 - Variants —— 产品在尺寸、颜色或款式等维度上的变体。每个变体维度都会列出其选项及状态:
SELECTED(当前查看的选项)、AVAILABLE(可选)或UNAVAILABLE(缺货)。每个可选选项都包含一个 ASIN,用于获取该特定变体。 - WAF 挑战 —— Amazon 的 Web 应用防火墙有时会返回包含 JavaScript 挑战的 503 页面,而不是实际内容。浏览器会先访问 Amazon 首页以获取 Cookie,然后重试目标 URL;每次尝试间隔 3 秒,最多尝试 3 次。
- CAPTCHA 检测 —— 如果 Amazon 显示 CAPTCHA 页面,服务会检测到并立即返回错误,而不会一直等待直至超时。这与 WAF 挑战是不同的情况,无法自动绕过。
- 反检测 —— 无头浏览器会覆盖 JavaScript 属性(
navigator.webdriver、navigator.plugins、window.chrome),并使用逼真的用户代理和窗口尺寸,以降低被识别为自动化程序的可能性。
架构概览
graph LR
Client["MCP Client<br/>(Claude Desktop, Claude Code)"]
Server["amazon-products-mcp<br/>MCP Server (3 tools)"]
Scraper["Datasource<br/>region-specific"]
Browser["Headless Chrome<br/>(chromedp)"]
Amazon["Amazon<br/>22 regional sites"]
Client -- "JSON-RPC over stdio" --> Server
Server --> Scraper
Scraper --> Browser
Browser -- "HTTPS" --> Amazon
服务包含三个内部层:
cmd/amazon-products-mcp—— 入口点。从环境中读取AMAZON_REGION,创建共享浏览器实例和 MCP 服务,并启动 stdio 传输。internal/server—— 注册 3 个 MCP 工具,按请求解析目标地区,并将响应格式化为 JSON。internal/scraper—— 包含两个组件:Datasource为指定地区构建 Amazon URL,并将返回的 HTML 解析为结构化数据。Browser管理共享的无头 Chrome 实例,处理 WAF 挑战和重试,并等待页面渲染完成。
数据流
sequenceDiagram
participant C as MCP Client
participant S as MCP Server
participant B as Headless Browser
C->>S: search_products(query, region)
S->>B: Fetch(searchURL)
Note over B: Open new tab
B->>B: Navigate to Amazon homepage
Note over B: Acquire WAF cookies
B->>B: Navigate to search URL
B->>B: Wait for DOM stability
alt WAF 503 challenge
B->>B: Wait 3s, retry (up to 3x)
end
alt CAPTCHA detected
B-->>S: ErrCAPTCHA
S-->>C: Error: CAPTCHA page
end
B-->>S: Rendered HTML
S->>S: Parse HTML into products
S-->>C: Product results (JSON)
每个请求都会在自己的浏览器标签页中运行,以确保并发安全。浏览器会等待特定 CSS 选择器(产品页面上的 #productTitle)出现,或等待 DOM 稳定(每隔 500ms 检查一次,连续 2 次检查发现 body 内容未变化),然后再捕获 HTML。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。