mcpField
A
Amazon Products

Amazon Products

ローカル
github.com/jbeshirビジネス・マーケティング13 日前に更新

Amazon Products について

Amazon Productsは、Amazonの商品検索と詳細取得を行うMCPサーバーで、22の地域サイトに対応します。ヘッドレスChromeでページをレンダリングし、構造化された商品情報を返します。

主な機能

  1. 01キーワードによる商品検索
  2. 02ASINによる詳細取得
  3. 03対応地域の一覧表示
  4. 04価格、評価、在庫状況の取得
  5. 05商品バリエーションの表示

活用シーン

  1. 01Amazonの地域別商品比較
  2. 02商品の価格と在庫状況の確認
  3. 03評価と商品バリエーションの確認

MCP 対応

stdio経由で、地域一覧、商品検索、商品詳細取得のツールをMCPクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbamazon-products-mcp.mcpb

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Amazon Products MCP Server

Amazon で商品を検索し、詳細情報を取得するための MCP サーバーです。22 の地域別 Amazon サイトに対応し、価格、評価、特徴、在庫状況、商品バリエーションを抽出します。ヘッドレス Chrome ブラウザーを使用してページをレンダリングし、Amazon のボット対策に対応します。stdio 経由で通信し、Claude Desktop や Claude Code など、あらゆる MCP 互換クライアントで動作します。

はじめに

要件
  • Google Chrome または Chromium がインストールされていること(サーバーはヘッドレスモードで起動します)

    Linux では、snap パッケージ版の Chromium(Ubuntu のデフォルトの chromium パッケージ)は避けてください。特定の親プロセスの子プロセスとして起動した場合(Claude Desktop の Electron プロセスツリー配下での実行時に確認)、正常な CDP タブのクローズ時と強制終了後の OS レベルのプロセス回収時の両方で、無期限にハングすることが確認されています。この環境では 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 シェルが含まれているため、ローカルに 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_detailsASIN で商品詳細情報を取得します。価格、説明、特徴、評価、在庫状況、バリエーションが含まれます。パラメーター: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 Standard Identification Number(Amazon標準識別番号)です。Amazon上の商品を一意に識別する10文字の英数字ID(例:B09CDRVQZC)です。get_product_detailsの主キーとして使用されます。
  • リージョン -- 各Amazonリージョンは特定のドメインに対応します(例:usはamazon.com、deはamazon.deに対応します)。リージョンによって、スクレイピングするサイトと価格の表示通貨が決まります。デフォルトのリージョンはAMAZON_REGIONで設定し、リクエストごとに上書きできます。
  • バリエーション -- サイズ、色、スタイルなどの軸による商品バリエーションです。各バリエーションの軸には、SELECTED(現在表示中)、AVAILABLE(選択可能)、UNAVAILABLE(在庫切れ)の状態とともに選択肢が表示されます。選択可能な各選択肢には、そのバリエーションの情報取得に使用するASINが含まれます。
  • WAFチャレンジ -- AmazonのWeb Application Firewallは、実際のコンテンツの代わりにJavaScriptチャレンジを含む503ページを返すことがあります。ブラウザーは、まずAmazonのホームページに移動してCookieを取得し、その後、試行間に3秒の間隔を空けて(最大3回)対象URLへのアクセスを再試行します。
  • 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

サーバーは3つの内部レイヤーで構成されています。

  • cmd/amazon-products-mcp -- エントリーポイントです。環境変数からAMAZON_REGIONを読み取り、共有ブラウザーインスタンスとMCPサーバーを作成して、stdioトランスポートを開始します。
  • internal/server -- 3つのMCPツールを登録し、リクエストごとに対象リージョンを解決して、レスポンスをJSON形式で整えます。
  • internal/scraper -- 2つのコンポーネントで構成されています。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)

並行処理の安全性を確保するため、各リクエストはそれぞれ独自のブラウザータブで実行されます。HTMLを取得する前に、ブラウザーは特定のCSSセレクター(商品ページの場合は#productTitle)が表示されるか、DOMが安定する(500ms間隔のポーリングで2回連続してbodyのコンテンツが変化しない)まで待機します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。