mcpField
A
Amazon Products

Amazon Products

本地服务
github.com/jbeshir商业与营销13 天前更新

关于 Amazon Products

Amazon Products 是用于搜索 Amazon 并获取商品详情的 MCP 服务,覆盖 22 个区域站点。它使用无头 Chrome 渲染页面并返回结构化商品信息。

主要功能

  1. 01按关键词搜索商品
  2. 02按 ASIN 获取详情
  3. 03列出支持的区域
  4. 04返回价格、评分和库存情况
  5. 05展示商品变体

适用场景

  1. 01比较不同 Amazon 区域的商品
  2. 02查询商品价格与库存
  3. 03查看评分和商品变体

MCP 相关

该服务通过 stdio 向 MCP 客户端提供区域列表、商品搜索和商品详情工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbamazon-products-mcp.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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.aeAED
au澳大利亚amazon.com.auAUD
be比利时amazon.com.beEUR
br巴西amazon.com.brBRL
ca加拿大amazon.caCAD
de德国amazon.deEUR
eg埃及amazon.egEGP
es西班牙amazon.esEUR
fr法国amazon.frEUR
ie爱尔兰amazon.co.ukGBP
in印度amazon.inINR
it意大利amazon.itEUR
jp日本amazon.co.jpJPY
mx墨西哥amazon.com.mxMXN
nl荷兰amazon.nlEUR
pl波兰amazon.plPLN
sa沙特阿拉伯amazon.saSAR
se瑞典amazon.seSEK
sg新加坡amazon.sgSGD
tr土耳其amazon.com.trTRY
uk英国amazon.co.ukGBP
us美国amazon.comUSD

关键概念

  • 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。