网页爬取与RAG服务

为AI代理和AI编程助手提供高级网页爬取和检索增强生成(RAG)能力的服务。

  • by Anshumaan031
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 Anshumaan031/Crawl4AI-RAG-MCP-Server

使用说明

Crawl4AI RAG MCP Server

Web Crawling and RAG Capabilities for AI Agents and AI Coding Assistants

强有力的实施 模型上下文协议(MCP) 与...集成 Crawl4AI 和 Supabase 为人工智能代理和人工智能编码助手提供先进的网络爬行和RAG功能。

使用此MCP服务器,您可以 刮任何东西 然后 在任何地方使用这些知识 对于RAG来说。

概述

此MCP服务器提供的工具使AI代理能够抓取网站,将内容存储在矢量数据库(Supabase)中,并对抓取的内容执行RAG。

特性

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

工具

该服务器提供四种基本的网络爬行和搜索工具:

  1. crawl_single_page:快速抓取单个网页并将其内容存储在矢量数据库中
  2. smart_crawl_url:根据提供的URL类型智能抓取完整网站(sitemap、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. 将合成文件复制到项目中:

    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服务器,则适用此项!

标准配置

将此服务器添加到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"
      }
    }
  }
}

构建自己的服务器

此实现为构建具有web爬行功能的更复杂的MCP服务器提供了基础。建立自己的:

  1. 通过使用创建方法来添加自己的工具 @mcp.tool() 装饰器
  2. 创建自己的生命周期函数以添加自己的依赖项
  3. 修改 utils.py 您需要的任何辅助函数的文件
  4. 通过添加更专业的爬虫来扩展爬行功能