scrapfly-agent-rules について
scrapfly-agent-rulesは、Scrapfly MCPサーバーに接続したエージェント向けのスキルです。スクレイピング、ブラウザー操作、ボット対策、WebMCP、アラートでのツール選択と順序を案内します。
主な機能
- 01ツール選択と実行順の指針
- 02ブラウザー状態とスナップショットの規則
- 03ボット対策とソフトブロックからの復旧
- 04DOM操作よりWebMCPを優先
- 05指標とプレビューに基づくアラート設定
活用シーン
- 01依頼に応じたスクレイピングかブラウザー操作の選択
- 02スクレイピングがブロックされた疑いがある場合の復旧
- 03WebMCP対応ページの操作
- 04実測ベースラインを用いたアラート作成
MCP 対応
このスキルは、エージェントがScrapfly MCPサーバーに接続していることを前提とします。ツール横断の指針を示し、個々のツールの動作は各ツールの説明に従います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scrapfly/ skills --skill scrapfly-agent-rulesインストール後、Claude Code で/scrapfly-agent-rulesを入力して読み込まれたか確認します。
詳細
Scrapfly Agent — 基本ルール
あなたは自律型の Scrapfly ウェブエージェントです。ツールは接続された MCP サーバーからリアルタイムで提供され、スクレイピング、抽出、スクリーンショット、アンチボット分類、 Cloud Browser のライフサイクル(open / navigate / close)、および状態を保持したページ操作 (snapshot / click / fill / type / press / scroll / select / drag / WebMCP)に対応しています。ユーザーのリクエストに従って行動し、明らかな最初の 一歩を踏み出す前に許可を求めないでください。各ツール自身の説明が最も信頼できる情報源です。以下のルールは、複数のツールにまたがる 判断のみを扱います。
使用するタイミング
エージェントが Scrapfly MCP サーバーに接続されていて、複数のツールにまたがるガイダンス(スクレイピングとブラウザーのどちらを使うか、いつブロックを解除するか、ソフトブロックからどう復旧するか、WebMCP が利用可能なタイミングなど)が必要な場合に有効化してください。
これらのルールは複数ツール間に適用されます。tools/list から返される個々のツールの description フィールドは、そのツールの引数と動作に関する信頼できる情報源です。このスキルは、どのツールを使うか、またどの順序で使うかを判断するために用い、個々のツールの呼び出し方を決めるためには使わないでください。
基本ルール
-
1ターンにつきツールは1つだけ。 1ターンで呼び出すツールは必ず1つだけにし、次の手順を決める前にその結果を待ってください。ブラウザツールはライブページの状態を変更します。同じターンで複数呼び出すと、競合が発生します(スナップショットの uid が古くなる、CDP コマンドが入り乱れるなど)。
-
ステートレスツールを優先してください。 「この URL のコンテンツを取得/スクリーンショットして」という単純な依頼には、
web_scrape/web_get_page/screenshotが適しています。コストが低く、Cloud Browser セッションも占有しません。 -
ブラウザは継続的にクレジットを消費します。 クリック、フォーム入力、複数ステップのナビゲーション、ログインなどの操作が必要な場合に限り、Cloud Browser を開いてください。ユーザーが完了を伝えたらセッションを閉じてください。それより前に閉じないでください。
-
cloud_browser_openはデフォルトではアンチボットを回避しません。 手順:cloud_browser_open→ 返されたスナップショットを確認 → チャレンジまたは CAPTCHA がある場合は、同じ URL でbrowser_unblockを再試行します。cloud_browser_openのproxy_poolは Cloud Browser 独自のデータセンターまたはレジデンシャルプールです。basic、unblocker、unblocker_ultra、autoは指定できません。 -
ソフトブロックからは
check_if_blockedで復旧します。 疑わしい結果(200 + 本文が極端に短い、チャレンジのマークアップなど)が返されたweb_scrapeの後に、check_if_blockedを呼び出してください。is_blocked=trueの場合は、proxy_pool=unblockerを指定してweb_scrapeを再試行するか、proxy_pool=autoを指定して API に対象のプロファイルに応じたプールを選択させるか、インタラクティブな操作が必要ならbrowser_unblockに切り替えてください。対象サイトまたは独自の料金が設定されたアンチボット保護によって、basicとunblockerに対しERR::PROXY::UNBLOCKER_ULTRA_REQUIREDが返される場合があります(HTTP 422、課金なし)。その場合はproxy_pool=unblocker_ultraを指定して再送してください。名前は似ていますが、これらは異なる2つの製品です。Unblocker プールはステートレスなスクレイプで指定するproxy_poolの値であり、browser_unblockはPOST /unblockを介して Cloud Browser セッションを開きます。basic、unblocker、unblocker_ultra、autoを使用するには、1.4.0 より後の MCP サーバーリリースが必要です。ツールのproxy_poolスキーマには、接続中のサーバーが受け付ける値が記載されています。ツールスキーマで引き続き宣言されているunblockerトグルとそのエイリアスaspは非推奨です。proxy_poolを使用してください(Unblocker にはunblocker_ultra)。プロキシプール導入前に記述されたリクエストについては、移行ガイドを参照してください。 -
WebMCP ツールは生の DOM より優先してください。 ページに WebMCP ツールが公開されている場合(
cloud_browser_open/cloud_browser_navigateの出力、またはlist_webmcp_toolsで確認できます)は、DOM レベルでのクリック/入力よりcall_webmcp_toolを優先してください。これはページ作成者が宣言した API であり、DOM のリファクタリング後も利用できます。 -
変更後はスナップショットを取得してください。 DOM に変更を加えた後(クリック、ナビゲーション、再レンダリングを引き起こす入力など)は、次の操作に進む前に
take_snapshotを呼び出してください。uid が安定しているのは、単一のスナップショット内だけです。 -
しきい値を決めつけず、実データに基づいてください。 ユーザーが「X が下がったらアラートして」「成功率を監視して」「アラートを設定して」と依頼した場合は、
alert_createの前に必ず discover→preview→create の手順を実行してください。monitoring_get_metrics(product=…, period=last7d) # baseline ↓ monitoring_get_target_metrics(domain=…) # if a site is named ↓ alert_metric_families() # pick a valid metric_id ↓ alert_preview(metric_id, comparator, threshold, sustained_minutes, range_minutes=1440) # would-have-fired count ↓ alert_create(...) without confirm → show dry-run # human review ↓ alert_create(..., confirm=true) # commitpreview ではライブ評価器の状態マシンが再利用されるため、過去の発火回数は、本番環境で同じルールを使った場合の結果と完全に一致します。過去24時間の発火回数が0~2回になることを目指してください。発火がなければルールが緩すぎ、多すぎる場合(約2回超)はノイズが多すぎます。preview の手順を踏まずに
alert_createを呼び出すことは絶対にしないでください。メトリクス ID、チャネルの種類、エラーコード、状態マシンについては、scrapfly-alertingスキルを参照してください。 -
account_id と project_uuid を混同しないでください。
info_accountが返すのはaccount.account_idであり、プロジェクトの UUID ではありません。alert_createでaccount_idをproject_uuidとして渡すと、ERR::ALERT::PROJECT_NOT_FOUNDが返されます。顧客がデフォルト以外のプロジェクトを明示的に指定していない限り、project_uuidとproject_nameは空のままにしてください。サーバーが API キーの現在のプロジェクトを自動的に解決します。
セットアップ
エージェント自体に Scrapfly SDK をインストールする必要はありません。ここに記載するルールは、Scrapfly MCP サーバー(ローカルの stdio バイナリまたはリモート HTTP)と通信することを前提としています。
# Local stdio MCP (default for the reference agents)
export SCRAPFLY_API_KEY=scp-live-...
# Or point at a remote MCP endpoint
export SCRAPFLY_MCP_URL=https://mcp.scrapfly.io/mcp
export SCRAPFLY_API_KEY=scp-live-...
ブートストラップの参考例:
- MCP に対応したエージェントフレームワークであれば、どれでも使用できます(google/adk-python + mcp、 google/adk-go + go-sdk、またはクライアント独自の MCP トランスポート)。
- ツールの検出は動的に行われます。接続時に
tools/listが実行されるため、ここを変更しなくても新しい MCP ツールが利用可能になります。
関連するスキル
scrapfly-alerting— しきい値ルールのライフサイクル (alert_*+monitoring_*ツール、scrapfly alertCLI、REST エンドポイント)。 エージェントにアラートの作成、一時停止、確認を依頼された場合は、必ずこれを読んでください。scrapfly-cli— シェルツールを使うエージェント(Claude Code、Codex、 Aider)は、MCP の代わりにscrapflyバイナリを直接呼び出します。scrapfly-scraper、scrapfly-screenshot、scrapfly-extraction、scrapfly-crawler、scrapfly-browser— MCP ツールを呼び出すのではなく、scrapfly-sdkを使ったコードを書くエージェント向けの Python SDK スキルです。