Amazon Products について
Amazon Productsは、Amazonの商品検索と詳細取得を行うMCPサーバーで、22の地域サイトに対応します。ヘッドレスChromeでページをレンダリングし、構造化された商品情報を返します。
主な機能
- 01キーワードによる商品検索
- 02ASINによる詳細取得
- 03対応地域の一覧表示
- 04価格、評価、在庫状況の取得
- 05商品バリエーションの表示
活用シーン
- 01Amazonの地域別商品比較
- 02商品の価格と在庫状況の確認
- 03評価と商品バリエーションの確認
MCP 対応
stdio経由で、地域一覧、商品検索、商品詳細取得のツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
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_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 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のコンテンツが変化しない)まで待機します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。