A

AI网络爬虫与RAG工具

@coleam00/mcp-crawl4ai-rag
4 Stars 918 次浏览 coleam00 更新于 2026-08-23

网络爬虫和RAG(检索增强生成)的实现,使AI代理能够抓取网站并对其爬取的内容进行语义搜索,并将所有内容存储在Supabase中以实现持久的知识检索。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "crawl4ai-rag": {
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "TRANSPORT",
        "-e",
        "OPENAI_API_KEY",
        "-e",
        "SUPABASE_URL",
        "-e",
        "SUPABASE_SERVICE_KEY",
        "-e",
        "USE_KNOWLEDGE_GRAPH",
        "-e",
        "NEO4J_URI",
        "-e",
        "NEO4J_USER",
        "-e",
        "NEO4J_PASSWORD",
        "mcp/crawl4ai"
      ],
      "command": "docker",
      "env": {
        "NEO4J_PASSWORD": "your_neo4j_password",
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "OPENAI_API_KEY": "your_openai_api_key",
        "SUPABASE_SERVICE_KEY": "your_supabase_service_key",
        "SUPABASE_URL": "your_supabase_url",
        "TRANSPORT": "stdio",
        "USE_KNOWLEDGE_GRAPH": "false"
      }
    }
  }
}

该服务需要配置环境变量:HOST、OPENAI_API_KEY、PORT、SUPABASE_SERVICE_KEY、SUPABASE_URL、TRANSPORT

服务介绍

这是一个强大的 Model Context Protocol (MCP) 实现,集成了 Crawl4AISupabase,旨在为 AI 代理和 AI 编码助手提供先进的网络爬取和 RAG 功能。

通过这个 MCP 服务器,你可以抓取任何内容,然后在 RAG 中随处使用这些知识

主要目标是将这个 MCP 服务器集成到 Archon 中,随着我将其发展成为一个知识引擎,以帮助构建更好的 AI 代理。这个 Crawl4AI/RAG MCP 服务器的第一个版本很快将得到大幅改进,特别是使其更加可配置,以便你可以使用不同的嵌入模型,并通过 Ollama 在本地运行所有内容。

概览

此 MCP 服务器提供了工具,使 AI 代理能够爬取网站、将内容存储在向量数据库(Supabase)中,并对爬取的内容执行 RAG。它遵循了基于我之前在频道上提供的 Mem0 MCP 服务器模板 构建 MCP 服务器的最佳实践。

愿景

Crawl4AI RAG MCP 服务器只是一个开始。我们的目标如下:

  1. 与 Archon 集成:直接将该系统构建到 Archon 中,创建一个全面的知识引擎,帮助 AI 编码助手构建更好的 AI 代理。

  2. 多种嵌入模型:扩展支持 OpenAI 之外的多种嵌入模型,包括通过 Ollama 在本地运行所有内容的能力,以实现完全控制和隐私保护。

  3. 高级 RAG 策略:实施上下文检索、延迟分块等复杂的检索技术,超越基本的“朴素查找”,显著增强 RAG 系统的功能和精度,特别是在与 Archon 集成时。

  4. 增强的分块策略:实施受 Context 7 启发的分块方法,专注于示例并为每个分块创建独特且语义上有意义的部分,从而提高检索精度。

  5. 性能优化:提高爬取和索引速度,使得快速索引新文档并在同一提示中利用它们变得更加现实。

特性

  • 智能 URL 检测:自动检测并处理不同类型的 URL(普通网页、站点地图、文本文件)
  • 递归爬取:跟随内部链接发现内容
  • 并行处理:高效地同时爬取多个页面
  • 内容分块:根据标题和大小智能分割内容,以便更好地处理
  • 向量搜索:对爬取的内容执行 RAG,可选地按数据源过滤以提高精度
  • 源检索:检索可用于过滤的源,以指导 RAG 过程

工具

服务器提供了四个关键的网络爬取和搜索工具:

  1. crawl_single_page:快速爬取单个网页并将内容存储在向量数据库中
  2. smart_crawl_url:根据提供的 URL 类型(站点地图、llms-full.txt 或需要递归爬取的普通网页)智能爬取整个网站
  3. get_available_sources:获取数据库中所有可用的源(域名)列表
  4. perform_rag_query:使用语义搜索查找相关内容,可选地按源过滤

前提条件

安装

使用 Docker(推荐)

  1. 克隆此仓库:
    bash
    git clone https://github.com/coleam00/mcp-crawl4ai-rag.git
    cd mcp-crawl4ai-rag

  2. 构建 Docker 镜像:
    bash
    docker build -t mcp/crawl4ai-rag --build-arg PORT=8051 .

  3. 根据下面的配置部分创建一个 .env 文件

直接使用 uv(不使用 Docker)

  1. 克隆此仓库:
    bash
    git clone https://github.com/coleam00/mcp-crawl4ai-rag.git
    cd mcp-crawl4ai-rag

  2. 如果你还没有安装 uv,请安装它:
    bash
    pip install uv

  3. 创建并激活虚拟环境:
    bash
    uv venv
    .venvScriptsactivate

    在 Mac/Linux 上:source .venv/bin/activate

  4. 安装依赖项:
    bash
    uv pip install -e .
    crawl4ai-setup

  5. 根据下面的配置部分创建一个 .env 文件

数据库设置

在运行服务器之前,你需要使用 pgvector 扩展来设置数据库:

  1. 进入你的 Supabase 仪表板中的 SQL 编辑器(如果需要的话,先创建一个新的项目)

  2. 创建一个新的查询并将 crawled_pages.sql 的内容粘贴进去

  3. 运行查询以创建必要的表和函数

配置

在项目根目录下创建一个 .env 文件,并包含以下变量:

MCP 服务器配置

HOST=0.0.0.0
PORT=8051
TRANSPORT=sse

OpenAI API 配置

OPENAI_API_KEY=your_openai_api_key

Supabase 配置

SUPABASE_URL=your_supabase_project_url
SUPABASE_SERVICE_KEY=your_supabase_service_key

运行服务器

使用 Docker

bash
docker run --env-file .env -p 8051:8051 mcp/crawl4ai-rag

使用 Python

bash
uv run src/crawl4ai_mcp.py

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

与 MCP 客户端集成

SSE 配置

一旦你使用 SSE 传输方式运行了服务器,你可以使用以下配置连接到它:

json
{
"mcpServers": {
"crawl4ai-rag": {
"transport": "sse",
"url": "http://localhost:8051/sse"
}
}
}

Windsurf 用户注意:在你的配置中使用 serverUrl 而不是 url
json
{
"mcpServers": {
"crawl4ai-rag": {
"transport": "sse",
"serverUrl": "http://localhost:8051/sse"
}
}
}

Docker 用户注意:如果你的客户端运行在不同的容器中,请使用 host.docker.internal 代替 localhost。这适用于你在 n8n 中使用此 MCP 服务器的情况!

Stdio 配置

将此服务器添加到你的 MCP 配置中,适用于 Claude Desktop、Windsurf 或任何其他 MCP 客户端:

json
{
"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

json
{
"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 服务器提供了一个基础。要构建你自己的服务器:

  1. 通过创建带有 @mcp.tool() 装饰器的方法来添加你自己的工具
  2. 创建你自己的生命周期函数以添加你自己的依赖项3. 根据需要修改 utils.py 文件以添加辅助函数
  3. 通过添加更多专门的爬虫来扩展爬取能力

相关 MCP 服务