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服务密钥

运行服务器

使用Dockerdocker run --env-file .env -p 8051:8051 mcp/crawl4ai-rag

使用Pythonuv run src/crawl4ai_mcp.py

服务器启动后,将在配置的主机和端口上监听。

与MCP客户端集成

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文件,实现所需的辅助函数。

• 通过添加更专业的爬虫,扩展爬取功能。