FirecrawlをDocker ComposeでMCP Serverとして起動する方法
最初にまとめ
- Firecrawl を Docker Compose を使って MCP Server として起動します
- Mac で動作させるため、ローカルビルドに変更します
- Firecrawl が提供する Tool の中で、firecrawl_search は SearchAPI のキーが必要でした。
詳細は以降で説明します。
この記事の概要
Web スクレイピングツールである Firecrawl を Docker Compose を使って MCP (Model Context Protocol) Server として起動する方法を紹介します。Firecrawl は Web ページのスクレイピング、クローリング、検索、データ抽出など様々な機能を提供するツールです。クラウドサービスとして利用する場合料金がかかりますが、OSS として公開されていますので、ローカルで起動して利用すると無料で利用できちゃいます。
Firecrawl とは
Firecrawl は、Web サイトを LLM が使いやすい形式(Markdown、HTML、構造化データ)に変換するツールです。以下のような機能を提供します:
- Scrape: 単一ページのコンテンツ抽出
- Map: Web サイト内の全 URL の検出
- Search: Web 検索と検索結果からのコンテンツ抽出
- Crawl: 複数ページの一括クローリング
- Extract: LLM を使った構造化データの抽出
書かないこと
以下の内容は本記事では説明しません。
- MCP (Model Context Protocol) の具体的な内容
- Docker や Docker Compose の基本的な使い方
バージョン・環境
- Mac (ARM環境での注意点も記載)
- Docker Desktop
- Firecrawl: 2.4.0
1. GitHub から Clone
Firecrawl のレポジトリから git clone します。また、最新版は時々ビルドが通らなかったり、一部の機能が動作しなかったりしましたので、いずれかのリリースタグに check out することをお勧めします。今回は v2.4.0 を利用しました。
2. 環境変数の設定
2.1 .envファイルの作成
apps/api/.env.example を参考に、Firecrawl のルートディレクトリ(docker-compose.yaml と同じ階層)に .env ファイルを作成します。
# ルートディレクトリに.envファイルを作成
cp apps/api/.env.example .env
2.2 Docker環境用の設定調整
.env ファイルで以下の設定を確認・調整します:
USE_DB_AUTHENTICATION=false
# オプション(必要に応じて設定)後述します。
SEARCHAPI_API_KEY=<your_searchapi_key_here>
# 接続するためのキー。今回は fc-test とします。
TEST_API_KEY=fc-test
3. 実行手順
3.1 サービス起動
# ルートディレクトリから実行
docker compose up -d
3.2 MCPとしての利用
Firecrawl を MCP Server として利用する場合、以下のように MCP 設定を行います:
{
"command": "npx",
"args": [
"-y",
"firecrawl-mcp"
],
"env": {
"FIRECRAWL_API_URL": "http://localhost:3002",
"FIRECRAWL_API_KEY": "fc-test"
}
}
4. Firecrawl の機能と動作確認
Firecrawl は以下の6つの主要な Tool を提供します:
| Tool Name | 説明 | 補足 |
|---|---|---|
firecrawl_scrape |
単一ページのコンテンツ抽出 | |
firecrawl_map |
Web サイト内の全 URL の検出 | |
firecrawl_search |
Web 検索と結果の抽出 | SearchAPI の API Key が必要 |
firecrawl_crawl |
複数ページの一括クローリング | |
firecrawl_check_crawl_status |
クローリング状態の確認 | |
firecrawl_extract |
LLM を使った構造化データ抽出 | 未実施。恐らく、OpenAI API Key が必要 |
4.1 firecrawl_search について
firecrawl_search を利用する場合、SearchAPI の API Key が必要です。SearchAPI は無料枠がありますが、詳細は SearchAPI のページで確認ください。
利用する場合は先述した .env ファイルに以下を追加します:
SEARCHAPI_API_KEY=<your_searchapi_key_here>
4.2 firecrawl_extract について
firecrawl_extract については 動作テストをしても正常応答しませんでした。恐らく、LLM を利用した構造化データ抽出機能であるため、OpenAI の API Key が必要と考えられますが、本稿では実施しません。
4.3 ARM環境下での注意事項
レポジトリにある docker-compose.yml にはローカルで Docker image をビルドしたくない場合のために Image URL が記載されていました。しかし、現時点では、ARM 版イメージが用意されていないようです。ARM 版イメージでない場合でも Docker でエミュレーションが働いて動作はしますが、パフォーマンスが大幅に劣化します。
おわりに
以上、Firecrawl を Docker Compose を使って MCP Server として起動する方法を紹介しました!
Firecrawl は強力な Web スクレイピング機能を提供するため、LLM アプリケーションと組み合わせることで、様々な用途に活用できます。
少しでも、ご参考になれば幸いです。
参考リンク
Discussion