Skip to main content
Glama

エージェントセッションの全体像

これは amazon-lyr を実行するエージェントとの実際の会話の一例です。隠されたステップはありません:

1. search_products("noise cancelling headphones", max_price=300, min_rating=4)
2. review_insights("B0X1234567")            # star spread + keyword themes
3. search_in_reviews("B0X1234567", query="broke")     # what actually breaks?
4. add_to_cart("B0X1234567", quantity=1)
5. checkout_preview()                        # totals + address + payment, nothing bought
6. place_order(confirm="PLACE_ORDER")       # only after the user said "buy it"
   ✓ order placed · #111-2223334-5556667
7. track_shipment("111-2223334-5556667")
8. initiate_return("111-2223334-5556667", reason="defective", asin_hint="…")
9. list_returns()                           # refund status confirmed

すべてのステップは型付きのMCPツール呼び出しです。購入ステップは誤って実行されないよう意図的に難しくしてあります — 安全モデル を参照してください。

Related MCP server: Amazon Cart MCP Server

他と何が違うのか

APIキー不要

curl_cffi によるChrome TLS偽装でAmazon独自のWebエンドポイントと通信 — ブラウザと同じセッションを使用

ライフサイクル全体

スクレイピングだけではない:カート操作、ウィッシュリスト書き込み、確認応答解析付きチェックアウト、返品ウィザード、キャンセル

エージェント向けエラー

CAPTCHA、サインアウトリダイレクト、ソフトスロットルは、回復ヒント(possibly_throttled、手動フォールバックURL)付きの型付きエラーとして表示されます — 黙って不正なデータを返すことはありません

仕組み

browser cookies ──▶ AmazonClient (curl_cffi, captcha-aware)
                        │
                        ▼
              bs4 parsers ──▶ normalized dicts ──▶ 21 FastMCP tools
                                                   (readOnly / destructive annotations)

認証は自分のセッションを使用します:amazon-lyr login は obscura-core を介してChrome、Brave、Firefox、Edge、Zenからクッキーをインポートするか、明示的なJSONエクスポートからインポートします。読み取りにはログイントークンが必要です。カート、注文、返品、チェックアウトにはセッションコンテキストクッキーも必要です。

インストール

# Persistent install — uv tool (isolated; bootstraps uv on clean systems)
curl -sSL https://raw.githubusercontent.com/ishan-parihar/amazon-lyr/main/install.sh | bash

# Zero-install run without persistence:
uvx --from git+https://github.com/ishan-parihar/amazon-lyr amazon-lyr --version

その後、一度認証してサーブします:

amazon-lyr login --browser chrome            # or: --cookies-file cookies.json
amazon-lyr search "mechanical keyboard"      # shell works immediately
amazon-lyr serve                             # MCP server (stdio)
{
  "mcpServers": {
    "amazon": {
      "command": "amazon-lyr",
      "args": ["serve"]
    }
  }
}

ツール(21)

カテゴリ

ツール

検索

search_products(部門、価格帯、最低評価フィルター)

商品

get_product、compare_products(最大5つのASIN)

レビュー

get_reviews、review_insights、search_in_reviews

カート

add_to_cart、view_cart、update_cart_quantity、remove_from_cart

ウィッシュリスト

add_to_wishlist、get_wishlist

注文

get_orders、get_order_details、track_shipment

返品

list_returns、initiate_return(わかりやすい理由コード)

購入

checkout_preview、place_order

危険ゾーン

cancel_order

セッション

get_session_status

安全モデル

お金の移動は正確に2つのゲートを通過します:

  1. セッションゲート — すべての変更操作には完全なログインクッキー(at-main + session-id/ubid-main)が必要です。読み取り専用セッションは、リクエストが行われる前に拒否されます。

  2. 同意ゲート — place_order は正確なリテラル confirm="PLACE_ORDER" が渡されない限り実行を拒否します。意図されたフローは:ユーザーにプレビュー → ユーザーが承認 → その後リテラルを渡す、です。cancel_order と initiate_return も同様に破壊的/非冪等として注釈付けされ、エージェントフレームワークがそれに応じて扱います。

カード検証(OTP / 3-D Secure)はチェックアウト中に検出され、ブラウザの指示とともに needs_verification として報告されます — 推測で通過させることはありません。

制限事項

正直な上限。すべて誤ったデータではなく型付きエラーとして表示されます:

  • CAPTCHAの壁 — アカウント領域のページはカタログより厳格です。新しいクッキーを再インポートするか、待機してください(CaptchaError にヒントが含まれます)

  • ソフトスロットル — 3秒未満の間隔では黙って空のグリッドが返されます。疑わしい場合、レスポンスには possibly_throttled: true が含まれます

  • 地域別価格バリアント — 一部のバリアントは価格をクライアント側でレンダリングします。検索はテキストスキャンにフォールバックし、get_product が信頼できる情報源です

  • 同意なしの自動購入は不可 — 設計上の仕様です。チェックアウトには明示的なconfirmリテラルとユーザー承認が必要です

開発

git clone https://github.com/ishan-parihar/amazon-lyr && cd amazon-lyr
uv sync --extra dev
uv run ruff check . && uv run pytest -q

アーキテクチャのメモ、不変条件、リリースプロセスは AGENTS.md にあります。

ライセンス

MIT © Ishan Parihar

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers