返回市场
爬取4AI-RAG-MCP服务器

爬取4AI-RAG-MCP服务器

作者:Anshumaan0316 星标更新:2025-06-21

项目介绍

<h1 align="center">Crawl4AI RAG MCP 服务器</h1> <p align="center"> <em>为AI代理和AI编码助手提供网络爬取和RAG功能</em> </p>

这是一个强大的模型上下文协议(MCP)实现,与Crawl4AISupabase集成,为AI代理和AI编码助手提供高级的网络爬取和RAG功能。

使用此MCP服务器,您可以<b>抓取任何内容</b>,然后<b>在任何地方使用这些知识</b>进行RAG。

概述

此MCP服务器提供了使AI代理能够爬取网站、将内容存储在向量数据库(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
    # 在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_URLSUPABASE_SERVICE_KEY指向您的本地Supabase实例。通常,在本地设置中,这些将是:

数据库设置

在运行服务器之前,您需要使用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

#本地supbase配置
SUPABASE_URL=your_local_supbase_url
SUPABASE_SERVICE_KEY=your_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"
      }
    }
  }
}

Docker与Stdio配置

{
  "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. 通过添加更多专门的爬虫来扩展爬取能力