关于 Crawl4AI RAG MCP Server
Crawl4AI RAG MCP Server 为 AI Agent 和编码助手提供网站抓取、Supabase 内容存储与 RAG 检索。它结合递归抓取、内容分块和可按来源筛选的语义搜索。
主要功能
- 01识别网页、站点地图和文本文件
- 02递归抓取站内链接
- 03并行处理页面
- 04按标题和长度拆分内容
- 05支持来源筛选的语义搜索
- 06列出已存储的内容来源
适用场景
- 01抓取单页以供后续检索
- 02从站点地图抓取网站
- 03按来源搜索已抓取内容
- 04为 Agent RAG 提供网页内容
MCP 相关
向 MCP 客户端提供抓取、来源列表和 RAG 查询工具。支持 SSE 和 stdio 传输方式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Crawl4AI RAG MCP 服务
为 AI Agent 和 AI 编码助手提供网页抓取与 RAG 功能
这是 Model Context Protocol (MCP) 与 Crawl4AI 和 Supabase 集成的强大实现,可为 AI Agent 和 AI 编码助手提供高级网页抓取与 RAG 功能。
借助此 MCP 服务,你可以抓取任何内容,然后随处使用这些知识进行 RAG。
概述
此 MCP 服务提供了一些工具,使 AI Agent 能够抓取网站、将内容存储在向量数据库(Supabase)中,并基于抓取的内容执行 RAG。
功能
- 智能 URL 检测:自动检测并处理不同类型的 URL(普通网页、站点地图、文本文件)
- 递归抓取:跟踪内部链接以发现内容
- 并行处理:高效地同时抓取多个页面
- 内容分块:按标题和大小智能拆分内容,以便更好地处理
- 向量搜索:基于抓取的内容执行 RAG,还可按数据源筛选以提高准确性
- 来源检索:检索可用于筛选的来源,以便指导 RAG 流程
工具
此服务提供四种重要的网页抓取和搜索工具:
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 密钥(用于生成嵌入向量)
安装
使用 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_URL 和 SUPABASE_SERVICE_KEY,使其指向本地 Supabase 实例。对于本地设置,这些值通常为:
数据库设置
在运行服务之前,需要使用 pgvector 扩展设置数据库:
-
前往 Supabase 控制面板中的 SQL 编辑器(如有需要,请先创建一个新项目)
-
创建一个新查询,并粘贴
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 用户须知:在配置中使用
serverUrl替代url:{ "mcpServers": { "crawl4ai-rag": { "transport": "sse", "serverUrl": "http://localhost:8051/sse" } } }Docker 用户须知:如果客户端运行在不同的容器中,请使用
host.docker.internal替代localhost。在 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()装饰器创建方法,以添加自己的工具 - 创建自己的生命周期函数,以添加所需依赖项
- 根据需要修改
utils.py文件,添加辅助函数 - 添加更多专用爬虫,以扩展抓取能力
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。