Crawl4AI RAG MCP Server 结合了 Model Context Protocol (MCP) 与 Crawl4AI 和 Supabase,为 AI 代理和 AI 编码助手提供了高级的网页爬取和 RAG(检索增强生成)功能,使 AI 代理能够爬取网站,将内容存储在向量数据库(Supabase)中,在爬取的内容上执行 RAG。
1、智能URL检测:可自动识别并处理多种URL类型,包括普通网页、站点地图、文本文件等。
2、递归爬取:能够跟随内部链接,实现内容的发现与爬取。
3、并行处理:支持高效地同时爬取多个页面。
4、内容分块:依据标题和内容大小,对内容进行智能拆分,以便更好地处理。
5、向量搜索:可针对爬取的内容执行RAG操作,能根据数据源进行筛选,提升搜索精度。
6、来源检索:获取可用于筛选的来源列表,为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密钥(用于生成嵌入)。
1、使用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
文件。
2、直接使用uv(无需Docker)
• 克隆仓库:git clone https://github.com/coleam00/mcp-crawl4ai-rag.git
• 进入项目目录:cd mcp-crawl4ai-rag
• 安装uv(若尚未安装):pip install uv
• 创建并激活虚拟环境:
Windows:uv venv
,.venv\Scripts\activate
Mac/Linux:source .venv/bin/activate
• 安装依赖:uv pip install -e .
,crawl4ai-setup
• 基于配置部分创建.env
文件。
数据库设置
• 前往Supabase仪表盘的SQL编辑器(若需先创建新项目)。
• 创建新查询,并粘贴crawled_pages.sql
的内容。
• 运行查询,创建所需的表和函数。
环境配置
在项目根目录创建.env
文件,包含以下变量:
# MCP服务器配置
HOST=0.0.0.0
PORT=8051
TRANSPORT=sse
# OpenAI API配置
OPENAI_API_KEY=你的OpenAI API密钥
# Supabase配置
SUPABASE_URL=你的Supabase项目URL
SUPABASE_SERVICE_KEY=你的Supabase服务密钥
运行服务器
使用Docker:docker run --env-file .env -p 8051:8051 mcp/crawl4ai-rag
使用Python:uv run src/crawl4ai_mcp.py
服务器启动后,将在配置的主机和端口上监听。
SSE配置
服务器以SSE传输方式运行时,可使用以下配置连接:
{
"mcpServers": {
"crawl4ai-rag": {
"transport": "sse",
"url": "http://localhost:8051/sse"
}
}
}
Windsurf用户注意:配置中使用serverUrl
替代url
。
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": "你的OpenAI API密钥",
"SUPABASE_URL": "你的Supabase URL",
"SUPABASE_SERVICE_KEY": "你的Supabase服务密钥"
}
}
}
}
带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": "你的OpenAI API密钥",
"SUPABASE_URL": "你的Supabase URL",
"SUPABASE_SERVICE_KEY": "你的Supabase服务密钥"
}
}
}
}
该实现为构建具有网页爬取功能的复杂MCP服务器提供了基础,若要开发自定义服务器:
• 通过@mcp.tool()
装饰器创建自定义工具方法。
• 创建自定义生命周期函数,添加所需依赖。
• 修改utils.py
文件,实现所需的辅助函数。
• 通过添加更专业的爬虫,扩展爬取功能。