mcpField
C
Crawl4AI RAG MCP Server

Crawl4AI RAG MCP Server

本地服务
github.com/Anshumaan031记忆与知识871 周前更新

关于 Crawl4AI RAG MCP Server

Crawl4AI RAG MCP Server 为 AI Agent 和编码助手提供网站抓取、Supabase 内容存储与 RAG 检索。它结合递归抓取、内容分块和可按来源筛选的语义搜索。

主要功能

  1. 01识别网页、站点地图和文本文件
  2. 02递归抓取站内链接
  3. 03并行处理页面
  4. 04按标题和长度拆分内容
  5. 05支持来源筛选的语义搜索
  6. 06列出已存储的内容来源

适用场景

  1. 01抓取单页以供后续检索
  2. 02从站点地图抓取网站
  3. 03按来源搜索已抓取内容
  4. 04为 Agent RAG 提供网页内容

MCP 相关

向 MCP 客户端提供抓取、来源列表和 RAG 查询工具。支持 SSE 和 stdio 传输方式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"Crawl4AI-RAG-MCP-Server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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 流程

工具

此服务提供四种重要的网页抓取和搜索工具:

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

前置条件

安装

使用 Docker(推荐)
  1. 克隆此仓库:

    git clone https://github.com/coleam00/mcp-crawl4ai-rag.git
    cd mcp-crawl4ai-rag
    
  2. 构建 Docker 镜像:

    docker build -t mcp/crawl4ai-rag --build-arg PORT=8051 .
    
  3. 根据下方的配置部分创建 .env 文件

直接使用 uv(不使用 Docker)
  1. 克隆此仓库:

    git clone https://github.com/coleam00/mcp-crawl4ai-rag.git
    cd mcp-crawl4ai-rag
    
  2. 如果尚未安装 uv,请先安装:

    pip install uv
    
  3. 创建并激活虚拟环境:

    uv venv
    .venv\Scripts\activate
    # on Mac/Linux: source .venv/bin/activate
    
  4. 安装依赖:

    uv pip install -e .
    crawl4ai-setup
    
  5. 根据下方的配置部分创建 .env 文件

使用 Docker 在本地运行 Supabase(可选)

按照以下步骤使用 Docker 在本地运行 Supabase:

  1. 获取 Supabase 代码:

    git clone --depth 1 https://github.com/supabase/supabase
    
  2. 创建新的 Supabase 项目目录:

    mkdir supabase-project
    
  3. 将 compose 文件复制到项目目录:

    cp -rf supabase/docker/* supabase-project
    
  4. 复制示例环境变量:

    cp supabase/docker/.env.example supabase-project/.env
    
  5. 切换到项目目录:

    cd supabase-project
    
  6. 拉取最新镜像:

    docker compose pull
    
  7. 启动服务(以分离模式运行):

    docker compose up -d
    

在本地启动 Supabase 后,请确保在此项目的 .env 文件中配置正确的 SUPABASE_URL 和 SUPABASE_SERVICE_KEY,使其指向本地 Supabase 实例。对于本地设置,这些值通常为:

数据库设置

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

  1. 前往 Supabase 控制面板中的 SQL 编辑器(如有需要,请先创建一个新项目)

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

  3. 运行查询,以创建所需的表和函数

配置

在项目根目录中创建一个 .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 服务提供了基础。要构建自己的服务:

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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。