Anycrawl - Turn Any Website Into Llm Ready について
AnyCrawl MCP Serverは、MCPクライアントにページのスクレイピング、サイトのクロール、ウェブ検索ツールを提供します。複数の抽出エンジンと出力形式に対応し、ローカルまたはクラウドで動作し、非同期クロールジョブを管理できます。
主な機能
- 01単一URLのスクレイピング
- 02深度とページ数を指定したサイトクロール
- 03検索結果の取得と任意のスクレイピング
- 04複数のスクレイピングエンジン
- 05Markdown、HTML、テキスト、画像、JSONで出力
- 06クロールジョブの監視、結果取得、キャンセル
活用シーン
- 01特定のウェブページからコンテンツを抽出
- 02サイト内の複数ページを収集
- 03複数サイトを検索して調査
- 04長時間のクロール状況確認やキャンセル
MCP 対応
スクレイピング、クロール、検索、クロールジョブ管理のツールをMCPクライアントに公開します。stdio、Streamable HTTP、SSEに対応し、ホスト型クラウドエンドポイントも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| proxy | string | いいえ | |
| formats | array | いいえ | |
| timeout | number | いいえ | |
| wait_for | number | いいえ | |
| include_tags | array | いいえ | |
| exclude_tags | array | いいえ | |
| json_options | object | いいえ | |
| json_options.schema | any | いいえ | |
| json_options.user_prompt | string | いいえ | |
| json_options.schema_name | string | いいえ | |
| json_options.schema_description | string | いいえ | |
| extract_source | enum | いいえ | html | markdown |
| engine | enum | いいえ | playwright | cheerio | puppeteer |
| url | string | はい | |
| retry | boolean | いいえ |
詳細
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 を設定します。
| モード | 説明 | 最適な用途 | トランスポート |
|---|---|---|---|
STDIO | stdio 経由の標準 MCP(デフォルト) | コマンド型 MCP クライアント、ローカルツール | stdio |
MCP | ストリーム可能な HTTP(JSON、ステートフル) | Cursor(streamable_http)、API 連携 | HTTP + JSON |
SSE | Server-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、SSEANYCRAWL_MCP_PORT:デフォルトは3000ANYCRAWL_SSE_PORT:デフォルトは3001CLOUD_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 の場合:
- Cursor Settings → Features → MCP Servers → 「+ Add New MCP Server」を開きます
- Name:「anycrawl-mcp」(または任意の名前)
- Type:「command」
- 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(必須):スクレイピングする URLengine(任意):スクレイピングエンジン(auto、playwright、cheerio、puppeteer。デフォルト:auto)formats(任意):出力形式(markdown、html、text、screenshot、screenshot@fullPage、rawHtml、json)proxy(任意):プロキシ URLtimeout(任意):タイムアウト(ミリ秒、デフォルト: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(必須):クロールするベース URLengine(任意):スクレイピングエンジン(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(必須):クロールジョブの IDskip(任意):スキップする結果の数(ページネーション用)
例:
{
"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
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- テストを実行します:
npm test - プルリクエストを送信します
ライセンス
MIT License — 詳細は LICENSE ファイルを参照してください
サポート
- GitHub Issues:バグの報告や機能のリクエスト
- ドキュメント:AnyCrawl API ドキュメント
- メール:[email protected]
AnyCrawl について
AnyCrawl は、ウェブサイトを LLM 対応データに変換し、Google/Bing/Baidu などから構造化された SERP の結果を抽出する、強力な Node.js/TypeScript クローラーです。大量処理向けのネイティブなマルチスレッド機能を備え、複数の出力形式に対応しています。
- ウェブサイト:https://anycrawl.dev
- GitHub:https://github.com/any4ai/anycrawl
- API:https://api.anycrawl.dev
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。