项目简介

这是一个实现了Model Context Protocol (MCP) 的后端服务,专为AI代理和AI编程助手设计。它集成了流行的网页抓取库 Crawl4AI 和 Supabase 向量数据库,提供强大的网页内容获取和检索增强生成 (RAG) 能力。AI客户端可以通过调用此服务提供的工具,获取网页信息或在已抓取内容中进行搜索。

主要功能点

  • 智能网页抓取: 能够识别并处理不同类型的网址,如普通网页、网站地图 (sitemap) 或文本文件 (llms.txt)。
  • 递归抓取: 对于普通网页,可以沿着内部链接进行深度抓取,收集更多相关内容。
  • 并行处理: 支持同时抓取多个页面,提高效率。
  • 内容分块: 将抓取到的长网页内容智能地分割成较小的块,便于存储和检索。
  • 向量搜索 (RAG): 利用向量数据库对抓取的内容进行语义搜索,快速找到与查询相关的文档片段。
  • 来源过滤: 检索时可以指定抓取的网站来源,提高搜索结果的精准性。
  • 来源查询: 提供工具列出数据库中所有已抓取的网站来源,帮助用户了解可用的数据。

安装步骤

要运行此MCP服务器,您需要具备以下环境:

  • Python 3.12 或更高版本
  • Supabase 账号(需要创建一个项目并配置数据库)
  • OpenAI API Key(用于生成内容和查询的向量嵌入)
  • 推荐安装 Docker 或 uv(Python 包安装器和运行器)

1. 数据库设置 (Supabase)

在您的 Supabase 项目的 SQL 编辑器中,运行仓库中 'crawled_pages.sql' 文件的内容,创建必要的表格和函数。

2. 配置环境变量

在项目根目录创建一个名为 '.env' 的文件,填入您的配置信息:

# MCP Server 配置
HOST=0.0.0.0
PORT=8051
TRANSPORT=sse # 或 stdio

# OpenAI API 配置
OPENAI_API_KEY=你的_openai_api_key

# Supabase 配置
SUPABASE_URL=你的_supabase_项目_url
SUPABASE_SERVICE_KEY=你的_supabase_service_key

3. 安装与运行

  • 使用 Docker (推荐):

    1. 构建 Docker 镜像(替换端口如果需要):
      docker build -t mcp/crawl4ai-rag --build-arg PORT=8051 .
    2. 运行容器,加载 '.env' 文件:
      docker run --env-file .env -p 8051:8051 mcp/crawl4ai-rag
  • 使用 uv (无 Docker):

    1. 克隆仓库并进入目录:
      git clone https://github.com/coleam00/mcp-crawl4ai-rag.git
      cd mcp-crawl4ai-rag
    2. 创建并激活虚拟环境,安装依赖:
      pip install uv # 如果没有安装 uv
      uv venv
      .venv\Scripts\activate # Windows
      # source .venv/bin/activate # Mac/Linux
      uv pip install -e .
      # 运行crawl4ai的setup命令 (可选,如果需要命令行工具)
      crawl4ai-setup 
    3. 运行服务器:
      uv run src/crawl4ai_mcp.py

服务器将根据 '.env' 中的配置启动。

服务器配置 (供MCP客户端使用)

您的MCP客户端需要知道如何连接到这个MCP服务器。根据您选择的 'TRANSPORT' (sse 或 stdio),配置方式有所不同。通常,您需要在客户端的MCP配置文件中添加一个服务器条目,指定服务器名称、连接方式和必要的参数。

  • 对于 SSE 传输: 客户端需要配置服务器的 'transport' 为 'sse',并提供服务器监听的 'url' (例如 'http://localhost:8051/sse')。如果客户端在 Docker 容器中且服务器在宿主机,可能需要使用 'host.docker.internal' 代替 'localhost'。

  • 对于 Stdio 传输: 客户端需要配置服务器的 'transport' 为 'stdio',并提供启动服务器进程的 'command' (例如 'python' 或 'docker') 及其 'args' (启动脚本路径或 Docker 运行参数)。此外,客户端可能需要通过 'env' 传递运行服务器所需的环境变量 (如 'OPENAI_API_KEY', 'SUPABASE_URL', 'SUPABASE_SERVICE_KEY')。

请根据您使用的具体MCP客户端及其文档进行配置。

基本使用方法

一旦服务器运行并连接到MCP客户端,AI客户端就可以调用服务器提供的工具来执行任务:

  1. 抓取单个页面: 调用名为 'crawl_single_page' 的工具,传入要抓取的网页 URL。
  2. 智能抓取: 调用名为 'smart_crawl_url' 的工具,传入 URL。服务器会自动判断是抓取单个页面、处理网站地图还是进行递归抓取。可以指定抓取深度等参数。
  3. 查询可用来源: 调用名为 'get_available_sources' 的工具,获取数据库中所有已抓取网站的域名列表。
  4. 执行RAG查询: 调用名为 'perform_rag_query' 的工具,传入搜索查询文本。可以可选地提供 'source' 参数来限定搜索范围,或提供 'match_count' 来指定返回结果数量。

这些工具会返回 JSON 格式的结果,AI客户端可以解析这些结果以获取抓取的内容、搜索到的相关文档等信息,从而增强其理解能力和行动能力。

信息

分类

网页与API