Crawl4AI RAG MCP Server について
Crawl4AI RAG MCP Serverは、AIエージェントやコーディングアシスタント向けに、Webサイトのクロール、Supabaseへの保存、RAG検索を提供します。再帰クロール、コンテンツ分割、ソース指定のセマンティック検索を組み合わせています。
主な機能
- 01Webページ、サイトマップ、テキストファイルの判別
- 02内部リンクの再帰クロール
- 03ページの並列処理
- 04見出しとサイズに基づく分割
- 05ソース指定対応のセマンティック検索
- 06保存済みソースの一覧表示
活用シーン
- 01単一ページを後で検索できるよう保存
- 02サイトマップからサイトをクロール
- 03ソースを指定して取得済み内容を検索
- 04エージェントのRAGにWebコンテンツを提供
MCP 対応
クロール、ソース一覧、RAGクエリのツールをMCPクライアントに公開します。SSEとstdioのトランスポートに対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Crawl4AI RAG MCP サーバー
AI エージェントと AI コーディングアシスタント向けのウェブクローリングおよび RAG 機能
Model Context Protocol (MCP) と Crawl4AI、Supabase を統合した強力な実装で、AI エージェントと AI コーディングアシスタントに高度なウェブクローリングおよび RAG 機能を提供します。
この MCP サーバーを使えば、あらゆるものをスクレイピングし、その知識をどこでも活用して RAG を実行できます。
概要
この MCP サーバーは、AI エージェントがウェブサイトをクロールし、コンテンツをベクトルデータベース(Supabase)に保存して、クロールしたコンテンツに対して RAG を実行できるツールを提供します。
機能
- スマート URL 検出:さまざまな URL タイプ(通常のウェブページ、サイトマップ、テキストファイル)を自動的に検出して処理します
- 再帰的クロール:内部リンクをたどってコンテンツを見つけます
- 並列処理:複数のページを効率的に同時クロールします
- コンテンツのチャンク分割:処理を改善するため、ヘッダーとサイズに基づいてコンテンツをインテリジェントに分割します
- ベクトル検索:クロールしたコンテンツに対して RAG を実行し、精度を高めるためにデータソースで任意にフィルタリングできます
- ソースの取得:フィルタリングに利用できるソースを取得して、RAG の実行を支援します
ツール
サーバーは、ウェブクローリングと検索に不可欠な 4 つのツールを提供します。
crawl_single_page:単一のウェブページをすばやくクロールし、そのコンテンツをベクトルデータベースに保存しますsmart_crawl_url:指定された URL のタイプ(サイトマップ、llms-full.txt、または再帰的にクロールする必要がある通常のウェブページ)に基づいて、ウェブサイト全体をインテリジェントにクロールしますget_available_sources:データベースで利用可能なすべてのソース(ドメイン)の一覧を取得しますperform_rag_query:ソースによる任意のフィルタリングを使って、セマンティック検索で関連コンテンツを検索します
前提条件
- MCP サーバーをコンテナとして実行する場合(推奨)は Docker/Docker Desktop
- uv 経由で MCP サーバーを直接実行する場合は Python 3.12+
- Supabase(RAG 用データベース)
- OpenAI API key(埋め込みの生成用)
インストール
Docker を使用する(推奨)
-
このリポジトリをクローンします:
git clone https://github.com/coleam00/mcp-crawl4ai-rag.git cd mcp-crawl4ai-rag -
Docker イメージをビルドします:
docker build -t mcp/crawl4ai-rag --build-arg PORT=8051 . -
以下の設定セクションを参考に
.envファイルを作成します
uv を直接使用する(Docker 不要)
-
このリポジトリをクローンします:
git clone https://github.com/coleam00/mcp-crawl4ai-rag.git cd mcp-crawl4ai-rag -
uv がインストールされていない場合は、インストールします:
pip install uv -
仮想環境を作成して有効化します:
uv venv .venv\Scripts\activate # on Mac/Linux: source .venv/bin/activate -
依存関係をインストールします:
uv pip install -e . crawl4ai-setup -
以下の設定セクションを参考に
.envファイルを作成します
Docker で Supabase をローカル実行する(任意)
Docker を使って Supabase をローカル実行するには、次の手順に従います。
-
Supabase のコードを取得します:
git clone --depth 1 https://github.com/supabase/supabase -
新しい Supabase プロジェクトのディレクトリを作成します:
mkdir supabase-project -
compose ファイルをプロジェクトにコピーします:
cp -rf supabase/docker/* supabase-project -
サンプル環境変数をコピーします:
cp supabase/docker/.env.example supabase-project/.env -
プロジェクトのディレクトリに移動します:
cd supabase-project -
最新のイメージを取得します:
docker compose pull -
サービスを起動します(デタッチモード):
docker compose up -d
Supabase をローカルで起動した後、このプロジェクトの .env ファイルで、ローカルの Supabase インスタンスを指す正しい SUPABASE_URL と SUPABASE_SERVICE_KEY を設定してください。通常、ローカル環境では次のようになります。
データベースのセットアップ
サーバーを実行する前に、pgvector 拡張機能を使用してデータベースをセットアップする必要があります。
-
Supabase ダッシュボードの SQL Editor に移動します(必要に応じて、先に新しいプロジェクトを作成してください)
-
新しいクエリを作成し、
crawled_pages.sqlの内容を貼り付けます -
クエリを実行して、必要なテーブルと関数を作成します
設定
プロジェクトのルートに .env ファイルを作成し、次の変数を設定します。
# MCP Server Configuration
HOST=0.0.0.0
PORT=8051
TRANSPORT=sse
# OpenAI API Configuration
OPENAI_API_KEY=your_openai_api_key
# Supabase Configuration
SUPABASE_URL=your_supabase_project_url
SUPABASE_SERVICE_KEY=your_supabase_service_key
#local supbase config
SUPABASE_URL=your_local_supbase_url
SUPABASE_SERVICE_KEY=yuut_local_supbase_service_key
サーバーの実行
Docker を使用する場合
docker run --env-file .env -p 8051:8051 mcp/crawl4ai-rag
Python を使用する場合
uv run src/crawl4ai_mcp.py
サーバーが起動し、設定されたホストとポートでリッスンします。
MCP クライアントとの連携
SSE の設定
SSE トランスポートでサーバーを起動したら、次の設定を使用して接続できます。
{
"mcpServers": {
"crawl4ai-rag": {
"transport": "sse",
"url": "http://localhost:8051/sse"
}
}
}
Windsurf ユーザーへの注意:設定では
urlの代わりにserverUrlを使用してください。{ "mcpServers": { "crawl4ai-rag": { "transport": "sse", "serverUrl": "http://localhost:8051/sse" } } }Docker ユーザーへの注意:クライアントが別のコンテナで実行されている場合は、
localhostの代わりにhost.docker.internalを使用してください。n8n 内でこの MCP サーバーを使用する場合も同様です。
Stdio の設定
このサーバーを Claude Desktop、Windsurf、その他の MCP クライアントの MCP 設定に追加します。
{
"mcpServers": {
"crawl4ai-rag": {
"command": "python",
"args": ["path/to/crawl4ai-mcp/src/crawl4ai_mcp.py"],
"env": {
"TRANSPORT": "stdio",
"OPENAI_API_KEY": "your_openai_api_key",
"SUPABASE_URL": "your_supabase_url",
"SUPABASE_SERVICE_KEY": "your_supabase_service_key"
}
}
}
}
Stdio 設定での Docker の使用
{
"mcpServers": {
"crawl4ai-rag": {
"command": "docker",
"args": ["run", "--rm", "-i",
"-e", "TRANSPORT",
"-e", "OPENAI_API_KEY",
"-e", "SUPABASE_URL",
"-e", "SUPABASE_SERVICE_KEY",
"mcp/crawl4ai"],
"env": {
"TRANSPORT": "stdio",
"OPENAI_API_KEY": "your_openai_api_key",
"SUPABASE_URL": "your_supabase_url",
"SUPABASE_SERVICE_KEY": "your_supabase_service_key"
}
}
}
}
独自のサーバーの構築
この実装は、ウェブクロール機能を備えた、より複雑な MCP サーバーを構築するための基盤となります。独自のサーバーを構築するには、次の手順を実行します。
@mcp.tool()デコレーターを使ったメソッドを作成し、独自のツールを追加します- 独自の依存関係を追加するための lifespan 関数を作成します
- 必要なヘルパー関数に合わせて
utils.pyファイルを変更します - より専門的なクローラーを追加して、クロール機能を拡張します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。