AI网络爬虫与RAG工具
网络爬虫和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) 实现,集成了 Crawl4AI 和 Supabase,旨在为 AI 代理和 AI 编码助手提供先进的网络爬取和 RAG 功能。
通过这个 MCP 服务器,你可以抓取任何内容,然后在 RAG 中随处使用这些知识。
主要目标是将这个 MCP 服务器集成到 Archon 中,随着我将其发展成为一个知识引擎,以帮助构建更好的 AI 代理。这个 Crawl4AI/RAG MCP 服务器的第一个版本很快将得到大幅改进,特别是使其更加可配置,以便你可以使用不同的嵌入模型,并通过 Ollama 在本地运行所有内容。
概览
此 MCP 服务器提供了工具,使 AI 代理能够爬取网站、将内容存储在向量数据库(Supabase)中,并对爬取的内容执行 RAG。它遵循了基于我之前在频道上提供的 Mem0 MCP 服务器模板 构建 MCP 服务器的最佳实践。
愿景
Crawl4AI RAG MCP 服务器只是一个开始。我们的目标如下:
-
与 Archon 集成:直接将该系统构建到 Archon 中,创建一个全面的知识引擎,帮助 AI 编码助手构建更好的 AI 代理。
-
多种嵌入模型:扩展支持 OpenAI 之外的多种嵌入模型,包括通过 Ollama 在本地运行所有内容的能力,以实现完全控制和隐私保护。
-
高级 RAG 策略:实施上下文检索、延迟分块等复杂的检索技术,超越基本的“朴素查找”,显著增强 RAG 系统的功能和精度,特别是在与 Archon 集成时。
-
增强的分块策略:实施受 Context 7 启发的分块方法,专注于示例并为每个分块创建独特且语义上有意义的部分,从而提高检索精度。
-
性能优化:提高爬取和索引速度,使得快速索引新文档并在同一提示中利用它们变得更加现实。
特性
- 智能 URL 检测:自动检测并处理不同类型的 URL(普通网页、站点地图、文本文件)
- 递归爬取:跟随内部链接发现内容
- 并行处理:高效地同时爬取多个页面
- 内容分块:根据标题和大小智能分割内容,以便更好地处理
- 向量搜索:对爬取的内容执行 RAG,可选地按数据源过滤以提高精度
- 源检索:检索可用于过滤的源,以指导 RAG 过程
工具
服务器提供了四个关键的网络爬取和搜索工具:
crawl_single_page:快速爬取单个网页并将内容存储在向量数据库中smart_crawl_url:根据提供的 URL 类型(站点地图、llms-full.txt 或需要递归爬取的普通网页)智能爬取整个网站get_available_sources:获取数据库中所有可用的源(域名)列表perform_rag_query:使用语义搜索查找相关内容,可选地按源过滤
前提条件
- 如果作为容器运行 MCP 服务器,则需要 Docker/Docker Desktop(推荐)
- 如果直接通过 uv 运行 MCP 服务器,则需要 Python 3.12+
- Supabase(用于 RAG 的数据库)- OpenAI API key(用于生成嵌入)
安装
使用 Docker(推荐)
-
克隆此仓库:
bash
git clone https://github.com/coleam00/mcp-crawl4ai-rag.git
cd mcp-crawl4ai-rag -
构建 Docker 镜像:
bash
docker build -t mcp/crawl4ai-rag --build-arg PORT=8051 . -
根据下面的配置部分创建一个
.env文件
直接使用 uv(不使用 Docker)
-
克隆此仓库:
bash
git clone https://github.com/coleam00/mcp-crawl4ai-rag.git
cd mcp-crawl4ai-rag -
如果你还没有安装 uv,请安装它:
bash
pip install uv -
创建并激活虚拟环境:
bash
uv venv
.venvScriptsactivate在 Mac/Linux 上:source .venv/bin/activate
-
安装依赖项:
bash
uv pip install -e .
crawl4ai-setup -
根据下面的配置部分创建一个
.env文件
数据库设置
在运行服务器之前,你需要使用 pgvector 扩展来设置数据库:
-
进入你的 Supabase 仪表板中的 SQL 编辑器(如果需要的话,先创建一个新的项目)
-
创建一个新的查询并将
crawled_pages.sql的内容粘贴进去 -
运行查询以创建必要的表和函数
配置
在项目根目录下创建一个 .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 服务器提供了一个基础。要构建你自己的服务器:
- 通过创建带有
@mcp.tool()装饰器的方法来添加你自己的工具 - 创建你自己的生命周期函数以添加你自己的依赖项3. 根据需要修改
utils.py文件以添加辅助函数 - 通过添加更多专门的爬虫来扩展爬取能力