mcpField
C
CrawlForge MCP Server

CrawlForge MCP Server

認証済みおすすめローカル
crawlforge.devAI・エージェント61 日前に更新

CrawlForge MCP Server について

CrawlForge MCP Serverは、MCPクライアント向けにウェブスクレイピング、クロール、検索、調査、抽出のツールを提供します。Markdownや構造化データを返し、LLM抽出ではローカルのOllamaも利用できます。

主な機能

  1. 01ウェブのスクレイピングとクロール
  2. 02ライブ検索と詳細調査
  3. 03Markdown・JSON形式での抽出
  4. 04OllamaによるLLM抽出
  5. 05ブラウザー自動化とステルス閲覧

活用シーン

  1. 01サイト内容をMarkdownで取得
  2. 02複数URLをまとめて処理
  3. 03自然言語で調査と抽出を実行

MCP 対応

MCPクライアントに、スクレイピング、クロール、検索、調査、抽出などのツールを公開します。Claude Desktop、Claude Code、Cursorなどから接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"crawlforge": {
"command": "npx",
"args": [
"-y",
"crawlforge-mcp-server"
],
"env": {
"CRAWLFORGE_API_KEY": "<CRAWLFORGE_API_KEY>",
"DATAFORSEO_LOGIN": "<DATAFORSEO_LOGIN>",
"DATAFORSEO_PASSWORD": "<DATAFORSEO_PASSWORD>"
}
}
}
}
起動コマンドnpx -y crawlforge-mcp-server
設定が必要な環境変数
CRAWLFORGE_API_KEYシークレットCrawlForge API key for authentication and usage/credit tracking. Get a free key at https://www.crawlforge.dev
DATAFORSEO_LOGINシークレットDataForSEO account login. Optional — only needed to enable the serp_rank tool (real Google organic rank lookups); billed separately to the caller's own DataForSEO account.
DATAFORSEO_PASSWORDシークレットDataForSEO account password. Optional — only needed to enable the serp_rank tool.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmcrawlforge-mcp-server6.24.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

CrawlForge MCP サーバー

Claude、Cursor、あらゆる MCP クライアントで使える、ウェブスクレイピング、クローリング、ディープリサーチ、自律型抽出のための31種類のツール。
あらゆるサイトから、整形された Markdown と構造化 JSON を取得できます。クレジットカード不要で、1,000クレジットを無料で利用して始められます。

ライセンス:MIT Node.js バージョン MCP プロトコル npm バージョン npm ダウンロード数 GitHub スター数

⭐ GitHub でスターを付けると、最新情報を確認できます。ほかの人にこのプロジェクトを見つけてもらう助けにもなります。

目次

🎯 CrawlForge を選ぶ理由

  • MCP ネイティブの31種類のツール — スクレイピング、クローリング、検索、Google SERP の実順位追跡、ディープリサーチ、自律型の agent、形式を統合した scrape、ドキュメント処理、ステルスブラウジング、状態を保持するブラウザーセッションなどを、AI アシスタントから直接呼び出せます。
  • 充実した無料枠 — すぐに使える1,000クレジットを、クレジットカード不要で利用できます。クレジットの付与は毎月ではなく1回限りで、有効期限はありません。
  • デフォルトでローカル LLM を使用 — extract_with_llm は、初期状態でローカルの Ollama モデルを利用します。LLM API キーも、トークンごとの料金も不要で、データがマシンの外に出ることもありません。クラウド(OpenAI/Anthropic)の利用はオプトイン方式です。
  • LLM に適した出力 — 1回の取得で、整形された Markdown、構造化 JSON(スキーマ駆動)、スクリーンショット、リンク、メタデータを取得できます。
  • 自律型の agent — 必要なことを自然言語で説明すると、URL を指定しなくても、オーケストレーターが強制するハードリミット(最大ステップ数/URL 数/実行時間)の範囲内で、計画、情報収集、回答の作成を行います。
  • セキュリティを強化 — すべてのリクエストに対する SSRF 保護、フェイルクローズ方式のバックエンド許可リスト、ブラウザー自動化用の検証済みアクション許可リスト、ツールごとのクレジット制限を備えています。
  • MCP が動作する環境ならどこでも利用可能 — Claude Desktop、Claude Code、Cursor など、MCP 対応クライアントで使えます。設定は1つのコマンドで完了します。

📊 CrawlForge と代替手段の比較

CrawlForge MCPFirecrawl生のスクレイピング API
ネイティブ MCP サーバー✅ 31 個のツール✅❌
無料枠✅ 1,000 クレジット、1 回限り、期限なし制限ありサービスによって異なる
セルフホスト/ローカル LLM 抽出(Ollama)✅ デフォルト、$0/トークン❌❌
自律型エージェント(URL 不要)✅ agent✅❌
ソース検証付きの詳細な調査✅ deep_research一部対応❌
ブラウザー自動化/操作✅ scrape_with_actions✅サービスによって異なる
ステルス/検出回避エンジン✅ Chromium + Camoufox✅アドオン
事前構築済みサイトテンプレート✅ 10 サイト❌❌
ライセンスMITAGPL-3.0プロプライエタリ

比較は、執筆時点で公開されている機能情報に基づいています。CrawlForge は MIT ライセンスの MCP ファーストなツールで、AI コーディングアシスタントに直接組み込めるように設計されています。

🚀 クイックスタート(2 分)

1. NPM からインストール
npm install -g crawlforge-mcp-server
2. API キーを設定(必須)

すべてのツールで CrawlForge API キーが必要です。新規アカウントには、開始時に 1,000 クレジットの無料トライアルが付与されます。推奨手順では、ブラウザーを使ってサインインするため、キーをターミナルに貼り付ける必要はありません(コーディングエージェントに実行させ、URL を転送してもらうこともできます)。

crawlforge login

承認用 URL が表示されます。それを開いて承認すると、キーが ~/.crawlforge/config.json に保存されます。その後、crawlforge init を実行して、クライアントに MCP サーバーを登録します。または、クライアントの設定も行う対話型ウィザードを使用します。

npx crawlforge-setup

このウィザードでは、次の操作を行います。

  • 無料の API キーの取得を案内します
  • 認証情報を安全に設定します
  • Claude Code と Cursor を自動設定します(インストールされている場合)
  • セットアップが正常に動作していることを確認します

API キーをお持ちでない場合は、 https://www.crawlforge.dev/signup で無料のキーを取得してください。

ワンステップセットアップ(v4.6.0 以降): crawlforge init は API キーを検出し、エージェントスキルをインストールして、MCP 設定を Claude Code、Claude Desktop、Cursor にべき等にマージします。検出されたすべてのクライアントを対話なしで設定するには、crawlforge init --all --yes を使用してください。

3. IDE を設定(自動設定されていない場合)
🤖 Claude Desktop の場合

claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "crawlforge": {
      "command": "npx",
      "args": ["-y", "crawlforge-mcp-server"]
    }
  }
}

場所:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%/Claude/claude_desktop_config.json
  • Linux:~/.config/Claude/claude_desktop_config.json

Claude Desktop を再起動して有効にします。

🖥️ Claude Code CLI の場合(自動設定)

セットアップウィザードが ~/.claude.json に追加して、Claude Code を自動設定します。

{
  "mcpServers": {
    "crawlforge": {
      "type": "stdio",
      "command": "crawlforge-mcp"
    }
  }
}

セットアップ後、Claude Code を再起動して有効にします。

💻 Cursor IDE の場合(自動設定)

セットアップウィザードが ~/.cursor/mcp.json に追加して、Cursor を自動設定します。

{
  "mcpServers": {
    "crawlforge": {
      "type": "stdio",
      "command": "crawlforge-mcp"
    }
  }
}

Cursor を再起動して有効にします。

🔁 n8n の場合(ワークフロー自動化)

n8n に組み込まれている MCP Client Tool ノードは、Streamable HTTP 経由で接続します(n8n Cloud とセルフホスト環境の両方で動作します)。サーバーを HTTP モードで実行します。

export CRAWLFORGE_API_KEY=your_api_key
npm run start:http    # Streamable HTTP endpoint at http://localhost:10000/mcp

次に、MCP Client Tool ノードの接続先を http://<host>:10000/mcp に設定し、トランスポートに HTTP Streamable を指定します。また、API キーと同じ値を設定した Bearer 認証情報を指定してください。セルフホストの n8n では、STDIO 経由でコミュニティ製の n8n-nodes-mcp ノード(npx -y crawlforge-mcp-server)を使用することもできます。

完全なガイド:docs/n8n-integration.md

どの起動コマンドを使えばよいですか? npx -y crawlforge-mcp-server はグローバルインストール不要で、公開済みのバージョンを常に実行します(Claude Desktop ではこの方法を推奨します)。グローバルインストール(npm i -g crawlforge-mcp-server)の場合は、専用の crawlforge-mcp バイナリを使用してください。PATH 上で解決されるため、Node/nvm のバージョンを切り替えても利用できます。単独の crawlforge コマンドは、MCP クライアントが STDIO 経由で起動した場合も引き続きサーバーを起動します(v4.2.5 より前に作成された設定との後方互換性のため)。対話的に実行した場合は CLI です。サーバーを手動で起動するには、crawlforge mcp を実行してください。

📊 利用可能なツール

CrawlForge を利用するには CrawlForge API キーが必要です。すべてのツールは従量制で、クレジットを消費します。新規アカウントには、利用開始時に無料トライアルクレジットが 1,000 クレジット付与されます。crawlforge.dev/signup でキーを取得してください。

すべてのツール(API キーが必要)

ツールクレジット内容
fetch_url1任意の URL からコンテンツを取得します
extract_text1(escalate: true を指定した場合は見積もり 6。通常のフェッチが成功した場合の課金は 1)ウェブページから読みやすいテキストを抽出します
extract_links1(escalate: true を指定した場合は見積もり 6。通常のフェッチが成功した場合の課金は 1)ページ上のすべてのリンクを取得します
extract_metadata1ページのメタデータ(タイトル、OG タグ、schema.org)を抽出します
scrape_template1セレクターを記述せずに、よく知られたサイト(Amazon、GitHub、LinkedIn、YouTube、Reddit、Hacker News、npm など)から構造化データを取得します
list_ollama_models1ローカルにインストールされている Ollama モデルを一覧表示します(extract_with_llm 用の model 選びに役立ちます)
get_batch_results1batchId で指定した batch_scrape ジョブのページ分割された結果を取得します
read_result1ツールが truncated: true と result_handle を付けて返した結果を検索、範囲指定、行単位、または JSON パスで読み取ります(お使いのマシン上に 1 時間保存されます)。ページを再取得することはありません
scrape21 回のフェッチで複数形式を統合して抽出します。 formats 配列(markdown/html/rawHtml/text/links/metadata/screenshot/json-schema に加え、一致する文、テーブル行、コードブロックのみを Markdown 内のオフセット付きで原文のまま返す {type:"highlights",query} と {type:"question",question}。呼び出しごとに +1 クレジット、mode:"model" は +3)と onlyMainContent を渡します。1 回のフェッチで指定されたすべての形式を処理し、形式ごとに部分的な成功を警告します。escalate:true を指定すると、ブロックされた通常のフェッチをステルスブラウザーで 1 回再試行し、ブロック画面の代わりにページを返します(見積もり上限は +5。通常のフェッチが成功し、エスカレーションが実行されなかった場合は課金が 2 に戻ります)
scrape_structured2CSS セレクターを使って構造化データを抽出します
extract_embedded_state2(escalate: true を指定した場合は見積もり 7。通常のフェッチが成功した場合の課金は 2)ページに埋め込まれた JavaScript の状態(__NEXT_DATA__、React Server Component のペイロード(行間の参照を解決し、data_rows インデックスも含みます)、Nuxt(Nuxt 3 の __NUXT_DATA__ をデコード)、SvelteKit、Apollo、Redux、ytInitialData、Inertia、Shopify、JSON の data-* 属性、<script type="application/json">)を読み取ります。path で結果の範囲を指定したり、keys_only: true で最初の 2 階層のキーを確認したり、find: "<key>" でその名前のフィールドが存在するすべてのパスを取得したりできます。escalate: true を指定すると、アクセス制限されたページをステルスブラウザーで再読み込みし、同じパーサーを実行するとともに、window 上のフレームワークのグローバル変数も読み取ります(window_state)。抽出処理に LLM は使用しません
extract_content2強化されたコンテンツ抽出を行います
map_site2ウェブサイトの構造を検出してマッピングします(任意の search= で検出した URL を順位付けします)
process_document2複数形式のドキュメント処理を行います
localization2他のツールに渡す国別のロケール設定(Accept-Language、タイムゾーン、通貨)を調べます。値を返すだけで、適用はしません
track_changes3コンテンツの経時的な変化を監視します
analyze_content3コンテンツを包括的に分析します
extract_structured3LLM を利用したスキーマ駆動型の抽出を行います(独自の LLM キーまたはローカル Ollama を使用)
extract_with_llm3自然言語による抽出を行います。デフォルトではローカルの Ollama モデルを使用します。クラウドモデルを使うには、対応するキーとともに provider: "openai" | "anthropic" を渡します(外部 LLM の料金はプロバイダーから請求されます)
browser_session3呼び出しをまたいで開いたままになり、Cookie とログイン状態を保持するブラウザーページです。 URL でセッションを open し、snapshot で操作可能な要素を安定した参照(@e1、@e2)として一覧表示し、参照に対して act を実行し、コンテンツを read してから close します。操作ごとの料金は、open が 3、read が 2、snapshot/act/screenshot/close/list が各 1 です。クリックする要素を選ぶ前にページを見る必要がある場合、複数回の呼び出しにまたがるフローの場合、または後続の読み取りまでログイン状態を保つ必要がある場合に使用してください。1 ページ上で決まった操作を連続して実行する場合は scrape_with_actions を使用します
summarize_content4高品質な要約を生成します
crawl_deep4ウェブサイト全体を深くクロールします
search_web5ウェブ上をリアルタイム検索します(CrawlForge API 経由の Brave Search API)
reddit_search5Reddit の投稿やコメントを検索するか、スレッド全体を読み取ります。reddit.com は直接のスクレイピングをブロックするため、Arctic Shift のコミュニティアーカイブを読み取ります(無料で、Reddit の認証情報は不要です)。Reddit 全体を検索するには、投稿を見つけるためにウェブ検索を利用するため、料金は search_web と同じです。任意:独自の Reddit アプリの認証情報(REDDIT_CLIENT_ID/REDDIT_CLIENT_SECRET)を設定すると、投稿検索とスレッドの読み取りでは、まず Reddit の公式 API を利用し(リアルタイムのスコア、完全なコメントツリー)、失敗した場合にアーカイブを使用します。料金は同じです。Reddit は承認チケットなしでは新しい認証情報を発行しなくなりました。詳しくは docs/reddit-access-and-oauth.md をご覧ください
serp_rank5キーワードに対する Google の実際のオーガニック SERPでのドメイン順位を確認します(search_web では確認できない順位です)。DataForSEO を利用します(DATAFORSEO_LOGIN/DATAFORSEO_PASSWORD。料金はお使いの DataForSEO アカウントに請求されます)。設定されるまで { configured:false } を返し、クレジットは0です
batch_scrape5複数の URL を同時に処理します
scrape_with_actions5ブラウザー自動化の一連の操作を実行します
generate_llms_txt5AI とのやり取りに関するガイドラインを生成します
stealth_mode5検出回避ブラウザーを管理します
agent8(ページ取得に成功したステルス再試行ごとに +5、最大 2 回)自然言語のプロンプトから自律的に調査・抽出します。URL は不要です。 安全性を厳格に保ちながら、計画を立て、情報を収集し、回答をまとめます(最大ステップ数/URL 数/経過時間はオーケストレーターが制限し、LLM に制御させません)。通常のフェッチがアクセス制限されたページでは、自動的にステルスブラウザーで再試行します。まず指定した URL から試し、その証拠には via: "stealth" と表示します。再試行が実行されるたびに 5 が加算されます
deep_research10情報源を検証しながら、複数段階の調査を行います
10 個のツール(scrape、fetch_url、extract_content、crawl_deep、batch_scrape、stealth_mode、scrape_with_actions、process_document、deep_research、extract_embedded_state)は max_inline_chars(デフォルトは 40,000、環境変数は CRAWLFORGE_MAX_INLINE_CHARS)を受け付けます。結果がこの値を超えると、preview と read_result 用の result_handle が返され、完全な結果はお使いのマシン上の ~/.crawlforge/results/ に 1 時間保存されます。データがアップロードされることはありません。

正式な機能の全リファレンス(すべてのツール、CLI コマンド、ステルスエンジン、リサーチワークフロー)については、SKILL.md を参照してください。

↑ トップに戻る

💳 料金

すべてのツールは従量制で、API キーが必要です。 新規アカウントには 1,000 クレジットの無料トライアルが付与されます。開始時にクレジットカードは不要です。

プランクレジット最適な用途
Free1,000(1 回限り)テストと個人プロジェクト
Hobby($19)5,000 / 月小規模プロジェクトと開発
Professional($99)50,000 / 月プロフェッショナル用途と本番環境
Business($399)250,000 / 月大規模な運用

すべてのプランに含まれるもの:

  • 31 個すべてのツールへのアクセス
  • クレジットに有効期限はありません。有料プランのクレジットは翌月に繰り越されます
  • API アクセスと Webhook 通知

料金の詳細を見る

🔧 高度な設定

環境変数
# Optional: Set API key via environment
export CRAWLFORGE_API_KEY="cf_live_your_api_key_here"

# Optional: Custom API endpoint (for enterprise)
export CRAWLFORGE_API_URL="https://api.crawlforge.dev"
# As of v3.0.18, this variable is validated against an allow-list of CrawlForge backend hosts.

# Optional: Local LLM (Ollama) overrides — extract_with_llm, extract_structured
# and deep_research all use Ollama when no cloud key is set
export OLLAMA_BASE_URL="http://localhost:11434"   # default; set https://ollama.com for Ollama Cloud
export OLLAMA_DEFAULT_MODEL="gemma3:4b"            # optional; unset = pick the best installed model automatically
                                                   # deep_research judges claims with gemma3:12b when it is installed (ollama pull gemma3:12b);
                                                   # conflict detection is on only with that model, or a cloud provider
export OLLAMA_EMBEDDING_MODEL="nomic-embed-text"   # default: OLLAMA_DEFAULT_MODEL; used for semantic ranking in deep_research
export OLLAMA_API_KEY="..."                        # only for authenticated endpoints (required by Ollama Cloud; a local instance needs none)
export DISABLE_OLLAMA="true"                       # skip Ollama entirely and use CSS/keyword fallbacks

# Optional: Cloud LLM keys — only needed when you pass provider: "openai" or "anthropic"
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."

# Optional: limit which tools this client sees — by name, by group, or both (comma-separated)
export CRAWLFORGE_TOOLS="scrape,search_web,extract_content"
export CRAWLFORGE_TOOL_GROUPS="basic,search,scrape"   # unset = all tools; unknown names/groups are ignored with a warning

# Optional: deep_research stealth extraction fallback (v4.6.6) — see below
export RESEARCH_STEALTH_ENGINE="auto"      # auto (default) | camoufox | chromium
export RESEARCH_STEALTH_FALLBACK="true"    # set to "false" to disable entirely
export RESEARCH_MAX_STEALTH_RETRIES="8"    # cap on stealth retries per research run

# Optional: your own proxies for the stealth paths that have no caller to ask —
# the scrape escalation stage, the deep_research retry, the agent, browser_session.
# Comma-separated; a proxy passed on a call always wins. CrawlForge supplies none.
export CRAWLFORGE_STEALTH_PROXIES="http://user:[email protected]:8080"
# Unrelated to the PROXY_ROTATION_* variables, which belong to the localization tool.

# Optional: turn off the clearance jar (on by default) — see "Stealth engines and proxies"
export CRAWLFORGE_CLEARANCE_JAR="off"

# Optional: also refuse private networks (RFC1918, ULA, CGNAT, ...) — see "Security & Approvals"
export SSRF_STRICT="true"

# Optional: the only directories process_document may read local files from (":"-separated, ";" on Windows)
export CRAWLFORGE_ALLOWED_DIRS="$HOME/Documents:$HOME/Downloads"
MCP 仕様の機能

CrawlForge は、現在の MCP 仕様(2025-06-18)と、一部の実験的な拡張機能に対応しています。

  • 構造化出力 — scrape、map_site、serp_rank、reddit_search、search_web、extract_structured、crawl_deep は、通常のテキストに加えて、機械で解析可能な structuredContent を返します。公開済みの outputSchema に照らして検証されるため、従来のクライアントもテキストを引き続き利用できます。
  • 自己修正可能なエラー — 無効なツール入力は、生の JSON-RPC プロトコルエラーではなく、呼び出し元のモデルが読み取って再試行できる isError: true の結果として返されるようになりました。
  • JSON Schema 2020-12 のツールスキーマ、決定的な tools/list の順序(クライアントのプロンプトキャッシュに適しています)、読み取り専用ツールのキャッシュ可能な結果を示すヒント。
  • サーバー、ツール、プロンプトのアイコン。
  • 非同期タスク(実験的) — ポーリングに対応したクライアント向けに、実行時間の長い 4 つのツール(crawl_deep、batch_scrape、deep_research、agent)で利用できます。非対応のクライアントには、引き続き同期結果が返されます。

ワイヤーレベルの例とクライアント互換性に関する注意事項は、docs/mcp-spec-adoption.md を参照してください。

ローカル LLM のクイックスタート(Ollama での extract_with_llm)

extract_with_llm はデフォルトでローカルの Ollama モデルを使用します。LLM プロバイダーのキーも、LLM のトークンごとの費用も不要で、データがマシンの外部に送信されることもありません(CrawlForge のクレジット費用は適用されます)。

# 1. Install Ollama:  https://ollama.com
# 2. Pull any model from https://ollama.com/library
ollama pull llama3.2

# 3. Discover what's installed (from your MCP client)
#    list_ollama_models()

# 4. Extract — defaults to Ollama with the model from step 2
#    extract_with_llm({ url: "https://example.com", prompt: "…", model: "llama3.2" })
ステルスエンジンとプロキシ

すべてのステルスエントリーポイント(escalate: true を指定した scrape、stealth_mode、browser_session、scrape_with_actions、および deep_research の再試行)では、エンジンのデフォルトが auto になりました。Camoufox(Firefox のアンチディテクト機能)のバイナリがインストールされていれば使用し、インストールされていない場合は Chromium にフォールバックします。その理由は結果の warnings[] に記載されます。各結果には、実際に実行されたエンジンが示されます。エンジンを明示的に指定した場合の動作は従来どおりです。camoufox はフォールバックせずに失敗し、chromium と playwright は同じエンジンです(scrape の escalate_engine では playwright と指定してください)。

browser_session と scrape_with_actions では、エンジンが適用されるのは stealth: true の場合のみです。通常の処理では標準の Chromium プールが使用されます。

auto は無料ではありません。2026-09-21 に Apple Silicon 搭載 Mac でそれぞれ一度計測したところ(起動後、コンテキストと空のページを作成)、Chromium は 148 ms、253 MB、Camoufox は 946 ms、667 MB でした。ステルス呼び出しごとに、およそ +0.8 s、+400 MB かかります。ブロックされないサイトで大量の処理を行う場合は、engine: "playwright" を固定してください。

CrawlForge はプロキシを提供しません。 データセンタープロキシを使ってもブロックは解決しません。Cloudflare は JavaScript が実行される前に IP の ASN と TLS/HTTP2 ハンドシェイクを評価するため、ブラウザー側のパッチではデータセンターのアドレスを補えません。CRAWLFORGE_STEALTH_PROXIES(カンマ区切りの URL)で、独自のレジデンシャル出口を設定してください。呼び出し元がプロキシを渡さない場合、エスカレーションの段階、stealth_mode、browser_session、scrape_with_actions、deep_research の再試行、および agent ツールの自動ステルス再試行で使用されます。呼び出し時に渡されたプロキシは常に優先されます。プロキシを使用すると、Camoufox は出口 IP からタイムゾーン、ロケール、位置情報を取得します。

一度解決したチャレンジは、再度解決する必要はありません。 ステルスレンダリングが Cloudflare または DataDome のブロックを突破すると、ベンダーのクリアランスクッキー(cf_clearance、__cf_bm、datadome のみで、それ以外は対象外)が ~/.crawlforge/stealth-clearance.json(モード 0600)に保存されます。次回以降、同じエンジン、User-Agent、プロキシを使用するステルスコンテキストに再送されます。ただし、有効期間はクッキー自体の有効期限まで、かつ最大 24 時間です。レンダリングが再びブロックされた場合、クッキーは破棄されます。無効にするには CRAWLFORGE_CLEARANCE_JAR=off を設定してください。

詳細、計測結果、出典については、docs/stealth-engines.md を参照してください。

deep_research のステルス抽出(Camoufox)

deep_research は、通常の取得経路をブロックするソース(Reddit、Quora、フォーラム、Cloudflare/DataDome に保護されたページが HTTP 403 を返す場合)を、実際のフィンガープリントを持つブラウザー経由で自動的に再試行し、レンダリング済み HTML から再抽出します。再試行には上限があり(RESEARCH_MAX_STEALTH_RETRIES のデフォルトは 8、さらにページごとのタイムアウトも設定されます)、遅延読み込み方式です。ブラウザースタックは、ソースが実際にブロックされた場合にのみ読み込まれます。

エンジンの選択(RESEARCH_STEALTH_ENGINE):

  • auto(デフォルト) — Camoufox(Firefox のアンチ検出)を優先し、次に Chromium ステルス、最後に通常の取得へフォールバックします。
  • camoufox — Camoufox を強制的に使用します。
  • chromium — Chromium ステルスエンジンを強制的に使用します。

Camoufox は、ヘッドレス Chromium が阻まれるブロックも突破できます。2026-09-21 に住宅用 IP から実施したベンチマークでは、Cloudflare Turnstile(indeed.com)と Akamai(harrods.com)を突破できたのは Camoufox だけで、どちらも Chromium ステルスはブロックされました。どちらのエンジンも DataDome や対話型 Turnstile は突破できなかったため、これはより優れた取得経路であり、回避策ではありません。有効にするには、オプションの依存関係をインストールし、バイナリを一度だけ取得してください。

# Camoufox is declared as an optional dependency, so a normal install already pulls it.
# If you installed with --no-optional, add it explicitly:
npm install camoufox

# One-time download of the Camoufox Firefox binary (~130 MB):
npx camoufox fetch

Camoufox のバイナリがない場合、deep_research はエラーを出さずに Chromium ステルス、続いて通常の取得へフォールバックします。ただし、厳重に保護されたサイトでの復旧率は低下します。フォールバック全体を無効にするには、RESEARCH_STEALTH_FALLBACK=false を設定してください。

注: IP レピュテーションによる厳しいブロック(例:Reddit のエッジでの 403)は、どの IP からでもヘッドレスステルスでは対処できず、住宅用/モバイルプロキシが必要です。CrawlForge はこれらを提供していないため、CRAWLFORGE_STEALTH_PROXIES を使ってご自身のプロキシをサーバーに指定してください。詳細については、docs/stealth-engines.md をご覧ください。

手動設定

設定は ~/.crawlforge/config.json に保存されます。

{
  "apiKey": "cf_live_...",
  "userId": "user_...",
  "email": "[email protected]"
}

📖 使用例

設定が完了したら、AI アシスタントで次のツールを使用できます。

"Search for the latest AI news"
"Extract all links from example.com"
"Crawl the documentation site and summarize it"
"Monitor this page for changes"
"Extract product prices from this e-commerce site"

🔒 セキュリティとプライバシー

  • 安全な認証:従量制のすべてのツールで API キーが必要です
  • ローカルストレージ:API キーは ~/.crawlforge/config.json に安全に保存されます
  • HTTPS のみ:すべての接続で暗号化された HTTPS を使用します
  • データ保持なし:スクレイピングしたデータは保存せず、使用ログのみを保存します
  • レート制限:不正利用を防止する機能が組み込まれています
  • コンプライアンス:robots.txt と GDPR の要件を順守します
セキュリティと承認
  • SSRF の適用:リクエストを送信する前に、スクレイピング対象のすべての URL を検証します。また、すべての接続(リダイレクトごとの接続も含み、最大 5 回)について、実際の接続先アドレスを確認します。http/https のみを許可し、クラウドメタデータのホスト名(GCP、Azure)は拒否します。2 つのレベルがあります。
    • **デフォルト(Stage 1)**では、ループバック(127.0.0.0/8、::1)、未指定アドレス(0.0.0.0/8、::)、リンクローカルおよびクラウドメタデータ(169.254.0.0/16、169.254.169.254 を含む、fe80::/10)をブロックします。プライベートネットワークは許可します(RFC1918 10/8、172.16/12、192.168/16、IPv6 ULA)。ご自身のマシンで実行すると、サーバーはユーザーの代わりに動作するため、LAN 上のルーターページ、NAS、イントラネットのドキュメントサイトを読み取ることは正当な用途であり、より厳しいレベルでは妨げられます。
    • SSRF_STRICT=true にすると、すべてのプライベート範囲と予約範囲が追加されます。RFC1918、ULA(fc00::/7)、CGNAT(100.64/10)、マルチキャスト、予約済み、IPv4 互換(::/96)、NAT64(64:ff9b::/96)の IPv6 が対象です。信頼できないページを読み取るエージェント(プロンプトインジェクションによって LAN アドレスを取得するよう誘導される可能性があります)にローカルネットワークへアクセスさせたくない場合や、サーバーを共有する場合は設定してください。
  • ローカルファイル(sourceType が file または pdf_file の process_document。サーバーがネットワークに公開されている場合は全面的に拒否されます):パスは realpath に基づいて判定されるため、シンボリックリンクはリンク先として扱われます。読み取り対象は .pdf、.docx、.txt、.md、.html、.htm ファイルのみで、ドットディレクトリ(~/.ssh、~/.aws、~/.config、~/.crawlforge など)内のファイルは読み取りません。CRAWLFORGE_ALLOWED_DIRS(ディレクトリを区切る文字は通常 :、Windows では ;)を指定すると、読み取り対象をそのディレクトリ内に限定できます。その場合、ディレクトリ内ではドットディレクトリの規則が解除されますが、拡張子の規則は適用されます。
  • バックエンドエンドポイントガード(v3.0.18):CrawlForge.dev へのサーバー自身の呼び出しには、別のフェイルクローズ型許可リスト({crawlforge.dev, www.crawlforge.dev, api.crawlforge.dev})を適用します。HTTPS が必須です。CRAWLFORGE_API_URL に任意のホストを設定すると、解析時にブロックされます。
  • アクション許可リスト:scrape_with_actions が受け付けるアクションタイプは 11 種類のみです(snapshot、wait、click、type、press、scroll、screenshot、executeJavaScript、select、hover、navigate)。ダウンロード、ファイル書き込み、任意のページ間ナビゲーションの機能はありません。navigate は初期 URL と同じ SSRF および robots.txt のチェックを通過します。
  • JavaScript ゲート:executeJavaScript アクションはデフォルトではエラーを発生させます。デプロイ時に ALLOW_JAVASCRIPT_EXECUTION=true を設定すると有効になります(本番環境では推奨されません)。
  • MCP Elicitation(v3.6.0):4 つのツールは、負荷の高い操作を実行する前にユーザーの確認を求めます。deep_research(URL が 50 件超)、batch_scrape(同期モードで URL が 25 件超)、crawl_deep(予測ページ数が 500 ページ超)、extract_structured(LLM が設定されておらず、スキーマに必須フィールドが 3 つ超)。クレジットが不足している場合も確認を求めます。確認はベストエフォートです。MCP クライアントが elicitation に対応していない場合、ツールは処理を続行します(フェイルオープン)。
  • ツールごとのクレジットゲート:すべてのツールは withAuth() でラップされ、使用量が計測されます。実行前にクレジットを確認して差し引き、すべてのツールで有効な API キーが必要です(v3.0.18 以降はフェイルクローズ)。

詳しくは、docs/sandboxing-and-approvals.md をご覧ください。

セキュリティアップデート

v3.0.3(2025-10-01):認証バイパスの脆弱性を解消しました。すべてのユーザーに有効な API キーによる認証が必要です。

セキュリティポリシーの全文と脆弱性の報告方法については、SECURITY.md をご覧ください。

↑ トップに戻る

🆘 サポート

📄 ライセンス

MIT ライセンス — 詳細は LICENSE ファイルをご覧ください。

🤝 貢献

貢献を歓迎します!まずは貢献ガイドをお読みください。


CrawlForge チームが ❤️ を込めて開発しました

ウェブサイト | ドキュメント | API リファレンス

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。