インストール
PHP 8.1 以降が必要です。
Laravel 連携
.env ファイルにAPIキーを追加してください:
使い方
- firecrawl.dev でAPIキーを取得します
- APIキーを
FIRECRAWL_API_KEYという名前の環境変数に設定するか、FirecrawlClient::create(apiKey: ...)に渡します
Laravel ファサードの使用
Firecrawl ファサードまたは依存性注入を利用できます:
URLをスクレイピングする
scrape メソッドを使用します。
JSON抽出
JsonFormat を使用して、scrape エンドポイントから構造化された JSON を抽出します:
Web サイトのクロール
crawl を使用します。
クロールを開始する
startCrawl を使用します。
クロールのステータスを確認する
getCrawlStatus を使ってクロールの進行状況を確認します。
クロールのキャンセル
cancelCrawl を使ってキャンセルできます。
クロールエラー
getCrawlErrors を使って、クロール単位のエラーがあれば取得できます。
Web サイトのマッピング
map を使ってサイト内のリンクを検出します。
Web を検索
search を使うと、任意の検索設定で検索できます。
バッチスクレイピング
batchScrape で複数のURLを並列にスクレイピングします。
startBatchScrape、getBatchScrapeStatus、cancelBatchScrape を使用します:
エージェント
agent を使って AI エージェントを実行します。
startAgent、getAgentStatus、cancelAgent を使用します:
使用状況とメトリクス
Laravel AI SDK ツール
laravel/ai) 向けのネイティブツールクラスが用意されており、エージェントは MCP Server や手動の HTTP 呼び出しなしで、Web のスクレイピング、検索、マップ、クロールを行えます。
firecrawl/firecrawl-sdk 1.9.0 以降と、laravel/ai 0.9 以降 (PHP 8.3+、Laravel 12+) が必要です。ツールクラスは laravel/ai がインストールされている場合にのみ読み込まれます。FirecrawlClient を解決するため、既存の config/firecrawl.php と FIRECRAWL_API_KEY の設定をそのまま再利用できます:
利用可能なツール
ツール名は Firecrawl MCP server と一致しているため、エージェントはどのインターフェースでも同じ用語を使えます。スプレッドヘルパーを使うと、4 つすべてを一度に登録できます:
FirecrawlTools::all() は、それを4つすべてのツールに渡します:
ツールのパラメータ
範囲外の
limit 値はエラーとして拒否されず、最も近い上限または下限に補正されます。たとえば、検索結果を 99 件要求したモデルには、エラーではなく 20 件が返されます。
ツールの動作
firecrawl_search と firecrawl_map は、結果の JSON 配列を返します。firecrawl_scrape は、ページを Markdown として返します。
クロール結果
firecrawl_crawl はクロールが完了するまで最大55秒待機し、その後、結果が明確にわかる JSON オブジェクトを返します。失敗・キャンセル・部分的なクロールも、暗黙のうちに切り捨てられることはなく、status フィールドを通じてモデルから確認できます。
omittedPages は出力上限内に収めるために省かれたページ数を示し、note はサーバー上にまだページが存在すること、また、より小さい limit を使うか firecrawl_scrape で特定のページをスクレイピングすべきことをモデルに伝えます。このツールはページネーションを追跡せず、ページネーションがあることを報告するだけなので、大規模なクロールの全ページが必要なエージェントは FirecrawlClient を直接使用してください。
wait の期限が切れた時点でクロールがまだ実行中の場合、ツールはその旨を伝え、そのクロールがサーバー側で引き続き完了する可能性があることをモデルに知らせます。クロール開始には UUID の冪等性キーが付与されるため、HTTP レベルで再試行しても重複したクロールは作成されません。
エージェントがキューに入った job 内で実行される場合は、クロールの limit を小さく保つか、worker の job timeout を延ばしてください。wait、poll の間隔、およびページごとの上限は protected プロパティなので、調整するにはクラスを拡張してください:
Browser
セッションの作成
コードの実行
スクレイピングに紐づくインタラクティブセッション
interact(...)は、スクレイピングに紐づくブラウザセッションでコードを実行します (初回使用時に初期化されます) 。stopInteractiveBrowser(...)は、作業完了後にインタラクティブセッションを明示的に停止します。
セッションの一覧表示と終了
設定
FirecrawlClient::create() は、次のオプションに対応しています。
カスタムHTTPクライアント
GuzzleHttp\ClientInterface実装を渡せます。これを指定すると、timeoutSeconds設定は無視され、代わりにクライアント側の設定が使用されます。
エラーハンドリング
Firecrawl\Exceptions 配下の実行時例外をスローします。
Firecrawl APIキーが必要なAIエージェントの方は、自動オンボーディング手順について firecrawl.dev/agent-onboarding/SKILL.md を参照してください。

