mcpField
S
scraperapi-price-monitoring

scraperapi-price-monitoring

github.com/scraperapiデータ・データベース10106 回インストール12 週間前に更新
リポジトリ

scraperapi-price-monitoring について

scraperapi-price-monitoringは、現在価格と基準ファイルを比較する単発の価格確認スキルです。ScraperAPIの構造化エンドポイントでAmazon、Walmart、Google Shoppingのデータを取得し、状態別のレポートを作成します。

主な機能

  1. 01Amazon、Walmart、検索語を分類
  2. 02構造化価格エンドポイントを利用
  3. 03基準価格と現在価格を比較
  4. 04在庫・価格・失敗の状態を分類
  5. 05価格変動レポートを作成

活用シーン

  1. 01監視商品の値下がりを確認する
  2. 02現在価格を保存済み基準と比較する
  3. 03再入荷、在庫切れ、商品削除を見つける
  4. 04価格しきい値に達した商品を探す

MCP 対応

価格データの取得には、ScraperAPI MCPサーバーのamazon_product、walmart_product、google_shoppingツールを優先します。MCPを利用できない場合はcurlに切り替えられます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/scraperapi/scraperapi-skills --skill scraperapi-price-monitoring

インストール後、Claude Code で/scraperapi-price-monitoringを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
price-baseline-template.json
price-report-template.md
references/
structured-endpoints.md

詳細

価格モニタリング

商品リスト(ASIN、Walmart の URL、または自由記述の Google Shopping 検索クエリ)と、任意のベースラインファイルを受け取り、ScraperAPI の構造化エンドポイント経由で現在の価格を取得し、ベースラインと比較して、変更をまとめたレポートを生成します。

あなた — Claude — が Bash ツールを使って API 呼び出しを実行します。 ユーザーが実行するスクリプトを生成しないでください。このターン中に自分でデータを取得し、判明した内容を随時報告してください。ユーザーが CLI や cron で実行できるスクリプトを明示的に求めた場合は、scraperapi-cli を案内して終了してください。

認証: すべてのトランスポートは ScraperAPI に対して認証されます。MCP サーバーは、ユーザーがセットアップ時に指定した自身の設定済み環境からキーを読み取ります。curl のフォールバックは、シェルから $SCRAPERAPI_API_KEY を読み取ります。キーの単独確認は実行しないでください。まず実際のリクエストを行ってください。キーがないか無効な場合、ScraperAPI は 401 を返します。フェーズ 3 のエラー処理表では、このケースをすでに扱っています。事前に echo を実行しても、ユーザーに余計な許可確認を求めるだけで、最初の呼び出しから得られる情報以上のものは得られません。


フェーズ 1 — ウォッチリストを解析する

データを取得する前に、各対象を分類してください。入力の種類によって使用する ScraperAPI エンドポイントが異なり、誤った振り分けはクレジットの無駄になります。

入力形式エンドポイント必須パラメーター
10 文字の英数字(例:B08N5WRWNW)structured/amazon/productasin
amazon. を含む URLstructured/amazon/productURL から asin を抽出し、抽出できない場合は url を使用
walmart.com を含む URLstructured/walmart/producturl
自由記述の検索クエリ(例:"airpods pro 2")structured/google/shoppingquery
その他このスキルではサポートされていないことをユーザーに伝え、任意の URL には scraperapi-autonomous-research を提案

実行前に、解析したプランを伝えてください。例:「ウォッチリストを解析しました:Amazon 商品 3 件、Walmart 商品 1 件、Google Shopping の検索クエリ 1 件です。ベースライン:prices.json(最終更新日:2026-05-25)。これから取得します。」

Amazon の URL では、/(?:dp|gp/product)/([A-Z0-9]{10})/ のような正規表現で ASIN を抽出してください。完全な URL より ASIN を直接指定したほうが、構造化エンドポイントを高速かつ低コストで利用できます。


フェーズ 2 — ベースラインを読み込む(ある場合)

ベースラインは、ユーザーが実行のたびに維持する JSON ファイルです。形式は assets/price-baseline-template.json に記載されています。ユーザーがベースラインファイルを指定した場合は、1 回の処理で比較できるよう、データ取得前に読み込んでください。

ベースラインがない場合は、今回の実行を初回の記録として扱ってください。すべての商品がベースラインエントリーとなり、変更レポートには差分を含めず、現在確認できた価格のみを記載します。次回の実行で比較できるよう、最後にファイルへの書き込みを提案してください。

ユーザーに確認せず、ベースラインを上書きしてはいけません。ユーザーがファイルの更新を希望する場合は、レポートを確認してもらった後、実行の最後に明示的に更新してください。


フェーズ 3 — 現在の価格を取得する

このスキルでは ScraperAPI MCP サーバーを使用してください。 amazon_product、walmart_product、google_shopping などのツールは、型付き引数と構造化されたレスポンスを提供するため、シェルでの引用符処理や標準出力の解析が不要です。価格ワークフローではフィールドの正確さが重要なので、これが適しています。

ScraperAPI MCP サーバーがまだ接続中と表示されている場合は、少し待ってから、ほかの操作をする前に ToolSearch で再確認してください。MCP が実際に利用できない場合は、curl(以下に記載)にフォールバックしてください。この場合、sapi CLI が $PATH 上にあっても、使用しないでください。CLI の出力には価格データの解析に誤りが生じやすいシェル処理が必要です。また、このスキルではすべての価格取得を単一のトランスポート経由にすることで、よりシンプルにしています。

レポートの最後に、curl にフォールバックする必要があった場合は、MCP サーバーをインストールすると(セットアップ方法は scraperapi-mcp スキルに記載)、今後の実行が簡単になることを伝えてください。ツールのインストールのために、現在の実行を止めないでください。

すべての対象を並列で実行してください。つまり、1 つのメッセージで複数のツールを呼び出します。これにより、10 製品のウォッチリストを 10 回ではなく、約 1 回のラウンドトリップで処理できます。

MCP ツール
対象ツール主な引数
Amazon 製品amazon_productasin、任意で countryCode(例:"us")、tld
Walmart 製品walmart_productproductId(/ip/<id> 内の数字。例:https://walmart.com/ip/5021188053 → "5021188053")、tld
Google Shopping のクエリgoogle_shoppingquery、任意で countryCode

完全なスキーマについては、scraperapi-mcp スキルを参照してください。Walmart の MCP ツールが受け取るのは URL ではなく 製品 ID です。/ip/<id> の部分を取り出してください。

curl によるフォールバック
curl -sG "https://api.scraperapi.com/structured/amazon/product" \
  --data-urlencode "api_key=$SCRAPERAPI_API_KEY" \
  --data-urlencode "asin=B08N5WRWNW" --data-urlencode "country=us"

curl -sG "https://api.scraperapi.com/structured/walmart/product" \
  --data-urlencode "api_key=$SCRAPERAPI_API_KEY" \
  --data-urlencode "url=https://www.walmart.com/ip/123456789"

curl -sG "https://api.scraperapi.com/structured/google/shopping" \
  --data-urlencode "api_key=$SCRAPERAPI_API_KEY" \
  --data-urlencode "query=airpods pro 2" --data-urlencode "country=us"
予想されるレスポンスフィールド(MCP と curl で共通)
  • Amazon: pricing("$129.99" のような書式付き文字列)、list_price、availability_status、product_information.title、オファー。pricing から数値を解析し、通貨は別に保持してください。
  • Walmart: price、availability、seller_name、product_name。
  • Google Shopping: title、price、extracted_price(ScraperAPI が解析できた場合は数値)、source(小売業者)、link を含む shopping_results[]。

フィールド名はときどき変わるため、実行時に最初に取得した実際のレスポンスを確認し、必要に応じて解析方法を調整してください。

エラーへの対処

MCP ツールではツール呼び出しエラーとしてエラーが示されます。curl は HTTP ステータスコードを返します。

ステータス対応
価格フィールドが空または存在しない 200「価格を確認できない」として扱います。在庫切れか、レイアウトが変更された可能性があります。null を記録し、そのことを明示してください。
401API キーが設定されていないか無効です。処理を停止し、SCRAPERAPI_API_KEY を設定する(または値を修正する)ようユーザーに伝えてください。再試行しないでください。
403ブロックされています。プレミアムフラグを付けて 1 回再試行してください(MCP では premium: true、curl では &premium=true)。それでも失敗する場合は、その対象を失敗として記録し、続行してください。
404製品は存在しなくなっています。レポートに removed として記録してください。
429同時実行数の上限に達しました。待機(3 秒スリープ)してから、1 回再試行してください。
5xx一時的なエラーです。バックオフ(2 秒、4 秒、8 秒)を入れて、最大 3 回再試行してください。
MCP ツールを利用できない残りの実行では curl にフォールバックしてください。

無限に再試行しないでください。再試行後も失敗した対象は、レポートに status: "failed" の行を追加し、取得できなかったものがユーザーにわかるようにしてください。

クレジットの予算

構造化された呼び出し 1 回あたり、通常は約 5 クレジットを消費します。50 製品のウォッチリストでは、1 回の実行に約 250 クレジットが必要です。100 対象を超えるバッチを開始する前に、見積もりをユーザーに伝えて確認してください。大規模な定期監視を希望する場合は、このスキルで毎回クレジットを消費するのではなく、スケジュール実行する CLI(scraperapi-cli)または DataPipeline の利用を勧めてください。

フェーズ 4 — 比較と分類

各対象について、ベースラインとの差分を計算します。次のいずれかの状態に分類します。変更に一貫したラベルを付けると、レポートが格段に読みやすくなります。

状態条件
unchanged価格がベースラインの ±0.5% 以内
decreased現在の価格がベースラインより 0.5% を超えて低い
increased現在の価格がベースラインより 0.5% を超えて高い
restockedベースラインの価格が null で、現在の価格が数値
out_of_stockベースラインの価格が数値で、現在の価格が null
newベースラインに存在しない
removedベースラインに存在し、対象へのリクエストが 404 を返した
failed再試行後もネットワーク/API エラーが発生
threshold_hitユーザーが "alert below $X" を指定し、現在の価格が X 以下

ユーザーが明示的なアラートしきい値を指定した場合(例:「AirPods が $200 を下回ったら教えて」)、現在の価格がそのしきい値に達しているか確認し、threshold_hit の項目をレポートの先頭に目立つように表示します。これはユーザーが最も知りたいことです。


フェーズ 5 — レポートの作成

assets/price-report-template.md を構成のひな形として使用し、結果を表示します。興味深い変更が大きい順に状態ごとにまとめます。しきい値到達 → 値下がり → 再入荷 → 在庫切れ → 値上がり → 新規 → 変更なし → 失敗。

各行には次の項目を含めます。

  • 商品の識別子(ASIN、URL、またはクエリ)
  • タイトル(レスポンスから取得。ユーザーが商品を認識しやすくなります)
  • ベースライン価格 → 現在の価格(通貨と日付を含む)
  • 差分(絶対値と割合の両方)
  • 商品ページへの直接リンク

最後に、1 行の概要を記載します。「12 商品中 6 商品の価格が変わりました。最大の値下がり:AirPods Pro 2 −15%($249 → $211)。1 商品が在庫切れになりました。1 件が失敗しました。」


フェーズ 6 — ベースラインの更新を提案する

レポートを提示した後、新しい価格でベースラインファイルを更新するか尋ねます。更新する場合は、新しい JSON を書き込みます。ユーザーが追加したフィールド(例:notes、alert_below)は上書きせず、マージして保持します。更新しない場合は、ファイルに変更を加えません。

初回の価格取得の場合は、確認を得た後にベースラインを書き込みます。そうしないと、次回の実行時に比較対象がなく、繰り返す意味がありません。


停止条件

このスキルは 1 回限りで、実行後にレポートを出して終了します。ループやスケジュール設定は行いません。ユーザーが定期的なモニタリングを希望する場合:

  • 数時間ごとの臨時の再確認には、プロンプトを再実行してもらいます。
  • 毎晩の cron には、スクリプトの生成に scraperapi-cli を案内します。
  • スケジュール設定とストレージを完全に管理する方法には、ScraperAPI ダッシュボードの DataPipeline を案内します(https://dashboard.scraperapi.com/)。

バックグラウンドで監視する処理を開始したり、ポーリングするコードを書いたりしてはいけません。このスキルの対象外であり、実行のたびにユーザーの明示的な同意なくクレジットを消費するためです。


アンチパターン

  • 構造化エンドポイントがあるのに、生 HTML をスクレイピングする。 Amazon、Walmart、Google の構造化エンドポイントは、価格のマークアップを解析しなくて済むように用意されています。これらを使用してください。
  • 通貨を暗黙に決めつける。 レスポンスの通貨コードを必ずレポートに含めてください。商品ページの通貨が CAD の場合、「$1,299」という読み取りは誤りです。
  • 国をまたいで比較する。 ベースラインが country=us で、現在が country=gb の場合、別の商品ページを比較していることになります。比較を断り、どの国を使用するかユーザーに確認してください。
  • 既定でベースラインを上書きする。 ベースラインはユーザーにとっての正しい記録です。明示的な確認があった場合に限り、変更してください。

参考ファイル

  • references/structured-endpoints.md — amazon/product、walmart/product、google/shopping の正確なパラメーター名、国コード、既知のレスポンスフィールドを記載しています。実行時の最初のリクエストを作成する前に読んでください。
  • assets/price-baseline-template.json — ベースラインファイルの形式。
  • assets/price-report-template.md — 変更レポートの Markdown ひな形。

エンドポイントの動作について詳しく知りたい場合は、公開ドキュメント(https://docs.scraperapi.com/)を案内してください。

コメント