mcpField
A
Anycrawl  - Turn Any Website Into Llm Ready

Anycrawl - Turn Any Website Into Llm Ready

ローカル
github.com/any4aiAI・エージェント67 週間前に更新

Anycrawl - Turn Any Website Into Llm Ready について

AnyCrawl MCP Serverは、MCPクライアントにページのスクレイピング、サイトのクロール、ウェブ検索ツールを提供します。複数の抽出エンジンと出力形式に対応し、ローカルまたはクラウドで動作し、非同期クロールジョブを管理できます。

主な機能

  1. 01単一URLのスクレイピング
  2. 02深度とページ数を指定したサイトクロール
  3. 03検索結果の取得と任意のスクレイピング
  4. 04複数のスクレイピングエンジン
  5. 05Markdown、HTML、テキスト、画像、JSONで出力
  6. 06クロールジョブの監視、結果取得、キャンセル

活用シーン

  1. 01特定のウェブページからコンテンツを抽出
  2. 02サイト内の複数ページを収集
  3. 03複数サイトを検索して調査
  4. 04長時間のクロール状況確認やキャンセル

MCP 対応

スクレイピング、クロール、検索、クロールジョブ管理のツールをMCPクライアントに公開します。stdio、Streamable HTTP、SSEに対応し、ホスト型クラウドエンドポイントも利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"anycrawl": {
"command": "npx",
"args": [
"-y",
"anycrawl-mcp-server"
],
"env": {
"ANYCRAWL_API_KEY": "<ANYCRAWL_API_KEY>",
"ANYCRAWL_BASE_URL": "<ANYCRAWL_BASE_URL>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドnpx -y anycrawl-mcp-server
設定が必要な環境変数
ANYCRAWL_API_KEYシークレット
ANYCRAWL_BASE_URL
LOG_LEVEL

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

パッケージ
npmanycrawl-mcp-server

ツール

6

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
proxystringいいえ
formatsarrayいいえ
timeoutnumberいいえ
wait_fornumberいいえ
include_tagsarrayいいえ
exclude_tagsarrayいいえ
json_optionsobjectいいえ
json_options.schemaanyいいえ
json_options.user_promptstringいいえ
json_options.schema_namestringいいえ
json_options.schema_descriptionstringいいえ
extract_sourceenumいいえhtml | markdown
engineenumいいえplaywright | cheerio | puppeteer
urlstringはい
retrybooleanいいえ

詳細

AnyCrawl MCP サーバー

🚀 AnyCrawl MCP サーバー — Model Context Protocol(MCP)を介して、Cursor、Claude、その他の LLM クライアントで強力なウェブスクレイピングとクローリングを実現します。

機能

  • ウェブスクレイピング:複数の出力形式で単一 URL からコンテンツを抽出します
  • ウェブサイトのクローリング:深度と上限を設定して、ウェブサイト全体をクロールします
  • 検索エンジンとの連携:ウェブを検索し、必要に応じて検索結果をスクレイピングします
  • 複数のエンジン:自動モード(インテリジェントな選択)、Playwright、Cheerio、Puppeteer
  • 柔軟な出力:Markdown、HTML、テキスト、スクリーンショット、構造化 JSON
  • 非同期処理:ステータスを監視できる、ノンブロッキングのクロールジョブ
  • エラー処理:堅牢なエラー処理とロギング
  • 複数のモード:STDIO(デフォルト)、MCP(HTTP)、SSE。Nginx プロキシを使用したクラウド対応

インストール

npx で実行する
ANYCRAWL_API_KEY=YOUR-API-KEY npx -y anycrawl-mcp
手動でインストールする
npm install -g anycrawl-mcp-server

ANYCRAWL_API_KEY=YOUR-API-KEY anycrawl-mcp

設定

AnyCrawl MCP サーバーは、クラウドサービス(推奨)とセルフホストの 2 つのデプロイモードに対応しています。

クラウドサービス(推奨)

AnyCrawl クラウドサービスを mcp.anycrawl.dev で利用します。サーバーのセットアップは不要です。

# Only need your API key
export ANYCRAWL_API_KEY="your-api-key-here"

クラウドエンドポイント:

  • MCP(streamable_http):https://mcp.anycrawl.dev/{API_KEY}/mcp — Codex と Cursor ではこちらを使用してください
  • SSE:https://mcp.anycrawl.dev/{API_KEY}/sse — 旧式の SSE クライアント専用(Codex では使用できません)
セルフホストでのデプロイ

セルフホストでデプロイする場合は、ベース URL が独自の AnyCrawl API インスタンスを指すように設定します。

export ANYCRAWL_API_KEY="your-api-key-here"
export ANYCRAWL_BASE_URL="https://your-api-server.com"  # Your self-hosted API URL

カスタムのホスト/ポートでローカル開発する場合:

export ANYCRAWL_HOST="127.0.0.1"  # Default: mcp.anycrawl.dev (cloud)
export ANYCRAWL_PORT="3000"       # Default: 3000
API キーを取得する
  • AnyCrawl のウェブサイトにアクセスして、登録またはログインします:AnyCrawl
  • 🎉 無料で登録すると 1,500 クレジットを受け取れます。約 1,500 ページのクロールに十分な量です。
  • ダッシュボードを開き、API Keys に移動して、キーをコピーします。
  • キーをコピーし、ANYCRAWL_API_KEY 環境変数に設定します(上記を参照)。

使用方法

利用可能なモード

AnyCrawl MCP サーバーは、次のデプロイモードに対応しています。

デフォルトのモードは STDIO です(環境変数の設定は不要です)。モードを切り替えるには、ANYCRAWL_MODE を設定します。

モード説明最適な用途トランスポート
STDIOstdio 経由の標準 MCP(デフォルト)コマンド型 MCP クライアント、ローカルツールstdio
MCPストリーム可能な HTTP(JSON、ステートフル)Cursor(streamable_http)、API 連携HTTP + JSON
SSEServer-Sent Eventsウェブアプリ、ブラウザー連携HTTP + SSE
クイックスタートコマンド
# Development (local)
npm run dev            # STDIO (default)
npm run dev:mcp          # MCP mode (JSON /mcp)
npm run dev:sse          # SSE mode (/sse)

# Production (built output)
npm start              # STDIO (default)
npm run start:mcp
npm run start:sse

# Env examples
ANYCRAWL_MODE=MCP ANYCRAWL_API_KEY=YOUR-KEY npm run dev:mcp
ANYCRAWL_MODE=SSE ANYCRAWL_API_KEY=YOUR-KEY npm run dev:sse
Docker Compose(Nginx を使用した MCP + SSE)

このリポジトリには、本番環境ですぐに使えるイメージが含まれています。同じコンテナ内でポート 3000 で MCP(JSON)、ポート 3001 で SSE を実行し、Nginx を前段に配置します。また、Nginx は API キーをプレフィックスにしたパス /{API_KEY}/mcp と /{API_KEY}/sse に対応し、x-anycrawl-api-key ヘッダーを使ってキーを転送します。

docker compose build
docker compose up -d

Docker イメージで使用する環境変数:

  • ANYCRAWL_MODE:MCP_AND_SSE(compose でのデフォルト)、または MCP、SSE
  • ANYCRAWL_MCP_PORT:デフォルトは 3000
  • ANYCRAWL_SSE_PORT:デフォルトは 3001
  • CLOUD_SERVICE:true にすると、/{API_KEY}/... またはヘッダーから API キーを抽出します
  • ANYCRAWL_BASE_URL:デフォルトは https://api.anycrawl.dev
Cursor で実行する

Cursor の設定。注:Cursor v0.45.6 以降が必要です。

Cursor v0.48.6 以降では、MCP Servers の設定に次の内容を追加します。

{
  "mcpServers": {
    "anycrawl-mcp": {
      "command": "npx",
      "args": ["-y", "anycrawl-mcp"],
      "env": {
        "ANYCRAWL_API_KEY": "YOUR-API-KEY"
      }
    }
  }
}

Cursor v0.45.6 の場合:

  1. Cursor Settings → Features → MCP Servers → 「+ Add New MCP Server」を開きます
  2. Name:「anycrawl-mcp」(または任意の名前)
  3. Type:「command」
  4. Command:
env ANYCRAWL_API_KEY=YOUR-API-KEY npx -y anycrawl-mcp

Windows で問題が発生した場合:

cmd /c "set ANYCRAWL_API_KEY=YOUR-API-KEY && npx -y anycrawl-mcp"
VS Code で実行する

手動でインストールする場合は、この JSON を VS Code の User Settings(JSON)に追加します(Command Palette → Preferences: Open User Settings (JSON))。

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "apiKey",
        "description": "AnyCrawl API Key",
        "password": true
      }
    ],
    "servers": {
      "anycrawl": {
        "command": "npx",
        "args": ["-y", "anycrawl-mcp"],
        "env": {
          "ANYCRAWL_API_KEY": "${input:apiKey}"
        }
      }
    }
  }
}

必要に応じて、設定を共有するには、ワークスペースの .vscode/mcp.json に次の内容を配置します。

{
  "inputs": [
    {
      "type": "promptString",
      "id": "apiKey",
      "description": "AnyCrawl API Key",
      "password": true
    }
  ],
  "servers": {
    "anycrawl": {
      "command": "npx",
      "args": ["-y", "anycrawl-mcp"],
      "env": {
        "ANYCRAWL_API_KEY": "${input:apiKey}"
      }
    }
  }
}
Windsurf での実行

次の内容を ~/.codeium/windsurf/model_config.json に追加します。

{
  "mcpServers": {
    "mcp-server-anycrawl": {
      "command": "npx",
      "args": ["-y", "anycrawl-mcp"],
      "env": {
        "ANYCRAWL_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}
Claude Desktop / Claude Code での実行
Claude Code(CLI)

claude mcp add コマンドを使用して、AnyCrawl MCP サーバーを追加します。

claude mcp add --transport stdio anycrawl -e ANYCRAWL_API_KEY=your-api-key -- npx -y anycrawl-mcp
Claude Desktop

次の内容を Claude Desktop の設定ファイルに追加します。

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "anycrawl": {
      "command": "npx",
      "args": ["-y", "anycrawl-mcp"],
      "env": {
        "ANYCRAWL_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}
SSE サーバーモードでの実行

SSE(Server-Sent Events)モードは、MCP 通信用のウェブベースのインターフェースを提供します。ウェブアプリケーション、テスト、ウェブベースの LLM クライアントとの連携に最適です。

クイックスタート
ANYCRAWL_MODE=SSE ANYCRAWL_API_KEY=YOUR-API-KEY npx -y anycrawl-mcp

# Or using npm scripts
ANYCRAWL_API_KEY=YOUR-API-KEY npm run dev:sse
サーバー設定

ローカル/セルフホスト型のデプロイ向けの任意のサーバー設定です。

export ANYCRAWL_PORT=3000           # Default: 3000
export ANYCRAWL_HOST=127.0.0.1      # Set to override cloud default (mcp.anycrawl.dev)
ヘルスチェック
curl -s http://localhost:${ANYCRAWL_PORT:-3000}/health
# Response: ok
汎用 MCP/SSE クライアントの設定

SSE トランスポートに対応する他の MCP/SSE クライアントでは、次の設定を使用します。

{
  "mcpServers": {
    "anycrawl": {
      "type": "sse",
      "url": "https://mcp.anycrawl.dev/{API_KEY}/sse",
      "name": "AnyCrawl MCP Server",
      "description": "Web scraping and crawling tools"
    }
  }
}

または

{
  "mcpServers": {
    "AnyCrawl": {
      "type": "streamable_http",
      "url": "https://mcp.anycrawl.dev/{API_KEY}/mcp"
    }
  }
}

環境の設定:

# Start SSE server with API key
ANYCRAWL_API_KEY=your-api-key-here npm run dev:sse
HTTP モード(streamable_http)向けの Cursor 設定

Cursor が HTTP MCP サーバーに接続するように設定します。

ローカル HTTP Streamable サーバー:

{
  "mcpServers": {
    "anycrawl-http-local": {
      "type": "streamable_http",
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

クラウド HTTP Streamable サーバー:

{
  "mcpServers": {
    "anycrawl-http-cloud": {
      "type": "streamable_http",
      "url": "https://mcp.anycrawl.dev/{API_KEY}/mcp"
    }
  }
}

注:HTTP モードでは、サーバープロセスの環境、または URL に ANYCRAWL_API_KEY(および任意のホスト/ポート)を設定します。streamable_http を使用する場合、Cursor に API キーは必要ありません。

Codex の設定(streamable HTTP)

Codex は streamable HTTP のみを使用します。従来の SSE トランスポートには対応していません。

~/.codex/config.toml に次の内容を追加します(YOUR_API_KEY を置き換えてください)。

[mcp_servers.anycrawl]
url = "https://mcp.anycrawl.dev/YOUR_API_KEY/mcp"
startup_timeout_sec = 60

重要:

  • /sse ではなく /mcp を使用してください。/sse を設定すると、Codex は SSE ではなく streamable HTTP を想定しているため、タイムアウト(約 30 秒)まで応答しなくなります。
  • API キーは URL パスに設定してください(Codex はリモートサーバーに対して ANYCRAWL_API_KEY を読み取りません)。
  • 起動がタイムアウトする場合は、startup_timeout_sec を増やしてください(Codex のデフォルトは 10 秒です)。

利用可能なツール

1. スクレイプツール(anycrawl_scrape)

単一の URL をスクレイピングし、さまざまな形式でコンテンツを抽出します。

最適な用途:

  • 単一のページからコンテンツを抽出する
  • すばやくデータを抽出する
  • 特定の URL をテストする

パラメーター:

  • url(必須):スクレイピングする URL
  • engine(任意):スクレイピングエンジン(auto、playwright、cheerio、puppeteer。デフォルト:auto)
  • formats(任意):出力形式(markdown、html、text、screenshot、screenshot@fullPage、rawHtml、json)
  • proxy(任意):プロキシ URL
  • timeout(任意):タイムアウト(ミリ秒、デフォルト:300000)
  • retry(任意):失敗時に再試行するかどうか(デフォルト:false)
  • wait_for(任意):ページの読み込みを待つ時間
  • include_tags(任意):含める HTML タグ
  • exclude_tags(任意):除外する HTML タグ
  • json_options(任意):JSON 抽出のオプション

例:

{
  "name": "anycrawl_scrape",
  "arguments": {
    "url": "https://example.com",
    "formats": ["markdown", "html"],
    "timeout": 30000
  }
}
2. クロールツール(anycrawl_crawl)

クロールジョブを開始し、ウェブサイトの複数のページをスクレイピングします。デフォルトでは、完了まで待機し、SDK の client.crawl を使って集約結果を返します(デフォルト:3 秒ごとにポーリングし、60 秒後にタイムアウト)。

最適な用途:

  • 関連する複数のページからコンテンツを抽出する
  • ウェブサイトを包括的に分析する
  • 大量のデータを収集する

パラメーター:

  • url(必須):クロールするベース URL
  • engine(任意):スクレイピングエンジン(auto、playwright、cheerio、puppeteer。デフォルト:auto)
  • max_depth(任意):クロールの最大深度(デフォルト:10)
  • limit(任意):ページの最大数(デフォルト:100)
  • strategy(任意):クロール戦略(all、same-domain、same-hostname、same-origin)
  • exclude_paths(任意):除外する URL パターン
  • include_paths(任意):対象に含める URL パターン
  • scrape_options(任意):各ページのスクレイピングオプション
  • poll_seconds(任意):待機中のポーリング間隔(秒)(デフォルト:3)
  • timeout_ms(任意):待機時の全体タイムアウト(ミリ秒)(デフォルト:60000)

例:

{
  "name": "anycrawl_crawl",
  "arguments": {
    "url": "https://example.com/blog",
    "max_depth": 2,
    "limit": 50,
    "strategy": "same-domain",
    "poll_seconds": 3,
    "timeout_ms": 60000
  }
}

戻り値:{ "job_id": "...", "status": "completed", "total": N, "completed": N, "creditsUsed": N, "data": [...] }。

3. クロールステータスツール(anycrawl_crawl_status)

クロールジョブのステータスを確認します。

パラメーター:

  • job_id(必須):クロールジョブの ID

例:

{
  "name": "anycrawl_crawl_status",
  "arguments": {
    "job_id": "7a2e165d-8f81-4be6-9ef7-23222330a396"
  }
}
4. クロール結果ツール(anycrawl_crawl_results)

クロールジョブの結果を取得します。

パラメーター:

  • job_id(必須):クロールジョブの ID
  • skip(任意):スキップする結果の数(ページネーション用)

例:

{
  "name": "anycrawl_crawl_results",
  "arguments": {
    "job_id": "7a2e165d-8f81-4be6-9ef7-23222330a396",
    "skip": 0
  }
}
5. クロールキャンセルツール(anycrawl_cancel_crawl)

保留中のクロールジョブをキャンセルします。

パラメーター:

  • job_id(必須):キャンセルするクロールジョブの ID

例:

{
  "name": "anycrawl_cancel_crawl",
  "arguments": {
    "job_id": "7a2e165d-8f81-4be6-9ef7-23222330a396"
  }
}
6. 検索ツール(anycrawl_search)

AnyCrawl 検索エンジンを使ってウェブを検索します。

最適な用途:

  • 複数のウェブサイトから特定の情報を見つける
  • 調査や情報の発見
  • どのウェブサイトに情報があるか分からない場合

パラメーター:

  • query(必須):検索クエリ
  • engine(任意):検索エンジン(google)
  • limit(任意):結果の最大数(デフォルト:10)
  • offset(任意):スキップする結果の数(デフォルト:0)
  • pages(任意):検索するページ数
  • lang(任意):言語コード
  • country(任意):国コード
  • scrape_options(必須):検索結果のスクレイピングオプション
  • safeSearch(任意):セーフサーチのレベル(0=オフ、1=中程度、2=厳格)

例:

{
  "name": "anycrawl_search",
  "arguments": {
    "query": "latest AI research papers 2024",
    "engine": "google",
    "limit": 5,
    "scrape_options": {
      "formats": ["markdown"]
    }
  }
}

出力形式

Markdown

LLM での利用に最適な、整理された読みやすい Markdown コンテンツです。

HTML

すべての書式を保持した、生の HTML コンテンツです。

テキスト

書式を最小限に抑えたプレーンテキストコンテンツです。

スクリーンショット

ページの視覚的なスクリーンショットです。

スクリーンショット(全ページ)

スクロールしないと見えない部分も含む、ページ全体のスクリーンショットです。

生の HTML

未処理の HTML コンテンツです。

JSON

カスタムスキーマを使って抽出した構造化データです。

エンジン

Auto(デフォルト)
  • 対象 URL に最適なエンジンを自動的に選択します
  • 手動設定なしで速度と精度を最適化します
  • ほとんどのユースケースに推奨されます
Cheerio
  • 高速で軽量です
  • 静的コンテンツに適しています
  • サーバーサイドレンダリングに対応しています
Playwright
  • ブラウザーを完全に自動化します
  • JavaScript のレンダリングに対応しています
  • 動的コンテンツに最適です
Puppeteer
  • Chrome/Chromium を自動化します
  • 機能とパフォーマンスのバランスに優れています

エラー処理

サーバーは包括的なエラー処理を提供します。

  • 検証エラー:パラメーターが無効、または必須フィールドがありません
  • API エラー:詳細なメッセージを含む AnyCrawl API エラーです
  • ネットワークエラー:接続やタイムアウトに関する問題です
  • レート制限:バックオフを伴う自動再試行です

ログ

サーバーには詳細なログ機能が備わっています。

  • Debug:詳細な操作情報
  • Info:一般的な操作状況
  • Warn:重大ではない問題
  • Error:重大なエラーや失敗

環境変数でログレベルを設定します。

export LOG_LEVEL=debug  # debug, info, warn, error

開発

前提条件
  • Node.js 22.12+(Docker と CI では Node 22 を使用します。.node-versionを参照してください)
  • npm
セットアップ
git clone <repository>
cd anycrawl-mcp
npm ci
ビルド
npm run build
テスト
npm test

既存の単体テストを実行し、CLI をビルドして、STDIO、Streamable HTTP、レガシー SSE を介した実際の FastMCP ハンドシェイクを確認します。roots の回帰テストでは、クライアントが roots のサポートを通知しつつ、roots/listへの応答を行いません。roots が無効な場合、リクエストがゼロ件で、2 秒以内にセッションが準備完了になる必要があります。

Nginx のルートを含め、両方の Docker イメージを確認するには、次を実行します。

docker build -t anycrawl-mcp:verify .
docker build -f Dockerfile.service -t anycrawl-mcp-combined:verify .
npm run test:containers -- anycrawl-mcp:verify anycrawl-mcp-combined:verify

リリースとロールバックの確認については、MCP デプロイ手順書に記載されています。

Lint
npm run lint
フォーマット
npm run format

コントリビューション

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. テストを実行します:npm test
  4. プルリクエストを送信します

ライセンス

MIT License — 詳細は LICENSE ファイルを参照してください

サポート

AnyCrawl について

AnyCrawl は、ウェブサイトを LLM 対応データに変換し、Google/Bing/Baidu などから構造化された SERP の結果を抽出する、強力な Node.js/TypeScript クローラーです。大量処理向けのネイティブなマルチスレッド機能を備え、複数の出力形式に対応しています。

コメント

MCP は初めてですか?

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

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