这是一个强大的模型上下文协议(MCP)实现,与Crawl4AI和Supabase集成,为AI代理和AI编码助手提供高级的网络爬取和RAG能力。
通过这个MCP服务器,你可以抓取任何内容,然后在任何地方使用这些知识进行RAG。
主要目标是将此MCP服务器引入Archon,随着其发展成为AI编码助手构建AI代理的知识引擎。Crawl4AI/RAG MCP服务器的第一个版本将很快得到极大改进,特别是使其更加可配置,以便你可以使用不同的嵌入模型,并且可以在本地使用Ollama运行一切。
请考虑这个GitHub仓库是一个试验场,因此我还没有非常积极地处理问题和拉请求。不过,当我将其引入Archon V2时,我会这样做!
此MCP服务器提供了工具,使AI代理能够爬取网站,将内容存储在向量数据库(Supabase)中,并对爬取的内容执行RAG。它遵循了基于我之前提供的Mem0 MCP服务器模板的最佳实践来构建MCP服务器。
该服务器包括几种可以启用以提高检索质量的先进RAG策略:
请参阅下面的配置部分了解如何启用和配置这些策略的详细信息。
Crawl4AI RAG MCP服务器只是一个开始。以下是我们的目标方向:
该服务器提供了基本的网络爬取和搜索工具:
crawl_single_page:快速爬取单个网页并将内容存储在向量数据库中smart_crawl_url:根据提供的URL类型(站点地图、llms-full.txt或需要递归爬取的常规网页)智能爬取整个网站get_available_sources:获取数据库中所有可用来源(域)的列表perform_rag_query:使用语义搜索搜索相关内容,可选地按来源过滤search_code_examples(需要USE_AGENTIC_RAG=true):专门搜索从爬取的文档中提取的代码示例及其摘要。此工具为AI编码助手提供有针对性的代码片段检索。USE_KNOWLEDGE_GRAPH=true,见下文)parse_github_repository:将GitHub存储库解析为Neo4j知识图谱,提取类、方法、函数及其关系,用于幻觉检测check_ai_script_hallucinations:通过验证导入、方法调用和类使用情况来分析Python脚本中的AI幻觉query_knowledge_graph:使用命令如repos、classes、methods和自定义Cypher查询探索和查询Neo4j知识图谱克隆此仓库:
git clone https://github.com/coleam00/mcp-crawl4ai-rag.git
cd mcp-crawl4ai-rag
构建Docker镜像:
docker build -t mcp/crawl4ai-rag --build-arg PORT=8051 .
基于下面的配置部分创建一个.env文件
克隆此仓库:
git clone https://github.com/coleam00/mcp-crawl4ai-rag.git
cd mcp-crawl4ai-rag
如果没有安装uv,请安装:
pip install uv
创建并激活虚拟环境:
uv venv
.venv\Scripts\activate
# 在Mac/Linux上:source .venv/bin/activate
安装依赖项:
uv pip install -e .
crawl4ai-setup
基于下面的配置部分创建一个.env文件
在运行服务器之前,您需要使用pgvector扩展设置数据库:
转到您的Supabase仪表板中的SQL编辑器(如有必要,先创建一个新的项目)
创建一个新的查询并粘贴crawled_pages.sql的内容
运行查询以创建必要的表和函数
要启用AI幻觉检测和存储库分析功能,您需要设置Neo4j。
此外,知识图谱的实现目前还不完全兼容Docker,所以我建议现在直接通过uv运行,如果您想在MCP服务器内使用幻觉检测!
对于安装Neo4j:
最简单的本地运行Neo4j的方法是使用本地AI包——一个精心挑选的本地AI服务集合,包括Neo4j:
克隆本地AI包:
git clone https://github.com/coleam00/local-ai-packaged.git
cd local-ai-packaged
启动Neo4j: 按照本地AI包仓库中的说明使用Docker Compose启动Neo4j
默认连接详情:
bolt://localhost:7687neo4j或者直接安装Neo4j:
安装Neo4j桌面版:从neo4j.com/download下载
创建新的数据库:
neo4j用户设置密码记录您的连接详情:
bolt://localhost:7687(默认)neo4j(默认)在项目根目录创建一个.env文件,包含以下变量:
# MCP服务器配置
HOST=0.0.0.0
PORT=8051
TRANSPORT=sse
# OpenAI API配置
OPENAI_API_KEY=your_openai_api_key
# 用于摘要和上下文嵌入的LLM
MODEL_CHOICE=gpt-4.1-nano
# RAG策略(设置为"true"或"false",默认为"false")
USE_CONTEXTUAL_EMBEDDINGS=false
USE_HYBRID_SEARCH=false
USE_AGENTIC_RAG=false
USE_RERANKING=false
USE_KNOWLEDGE_GRAPH=false
# Supabase配置
SUPABASE_URL=your_supabase_project_url
SUPABASE_SERVICE_KEY=your_supabase_service_key
# Neo4j配置(知识图谱功能所需)
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_neo4j_password
Crawl4AI RAG MCP服务器支持四种强大的RAG策略,可以独立启用:
启用后,此策略通过整个文档的额外上下文增强每个分块的嵌入。系统将全文档和特定分块传递给LLM(通过MODEL_CHOICE配置),生成丰富的上下文并与分块内容一起嵌入。
结合传统的关键词搜索和语义向量搜索,提供更全面的结果。系统并行执行两种搜索,并智能合并结果,优先显示出现在两个结果集中的文档。
启用专门的代码示例提取和存储。爬取文档时,系统识别代码块(≥300字符),提取它们及其周围上下文,生成摘要,并将它们存储在一个专门设计用于代码搜索的向量数据库表中。
search_code_examples工具,AI代理可以用来查找特定的代码实现。在初始检索后应用交叉编码器重新排序搜索结果。使用轻量级交叉编码器模型(cross-encoder/ms-marco-MiniLM-L-6-v2)对每个结果相对于原始查询进行评分,然后按相关性重新排序结果。
启用使用Neo4j知识图谱的AI幻觉检测和存储库分析。启用后,系统可以将GitHub存储库解析为图数据库,并将AI生成的代码与实际存储库结构进行验证。(尚未完全兼容Docker,我建议通过uv运行)
parse_github_repository用于索引代码库,check_ai_script_hallucinations用于验证AI生成的代码,以及query_knowledge_graph用于探索已索引的存储库。您可以告诉AI编码助手将Python GitHub存储库添加到知识图谱中,例如:
"将https://github.com/pydantic/pydantic-ai.git添加到知识图谱"
确保存储库URL以.git结尾。
您还可以让AI编码助手检查刚刚创建的脚本中的幻觉,或者手动运行命令:
python knowledge_graphs/ai_hallucination_detector.py [要分析的脚本的完整路径]
对于一般文档RAG:
USE_CONTEXTUAL_EMBEDDINGS=false
USE_HYBRID_SEARCH=true
USE_AGENTIC_RAG=false
USE_RERANKING=true
对于带有代码示例的AI编码助手:
USE_CONTEXTUAL_EMBEDDINGS=true
USE_HYBRID_SEARCH=true
USE_AGENTIC_RAG=true
USE_RERANKING=true
USE_KNOWLEDGE_GRAPH=false
对于带有幻觉检测的AI编码助手:
USE_CONTEXTUAL_EMBEDDINGS=true
USE_HYBRID_SEARCH=true
USE_AGENTIC_RAG=true
USE_RERANKING=true
USE_KNOWLEDGE_GRAPH=true
对于快速的基本RAG:
USE_CONTEXTUAL_EMBEDDINGS=false
USE_HYBRID_SEARCH=true
USE_AGENTIC_RAG=false
USE_RERANKING=false
USE_KNOWLEDGE_GRAPH=false
docker run --env-file .env -p 8051:8051 mcp/crawl4ai-rag
uv run src/crawl4ai_mcp.py
服务器将启动并监听配置的主机和端口。
一旦您使用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 Code用户:
claude mcp add-json crawl4ai-rag '{"type":"http","url":"http://localhost:8051/sse"}' --scope user
将此服务器添加到您的MCP配置中,适用于Claude Desktop、Windsurf或其他任何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",
"USE_KNOWLEDGE_GRAPH": "false",
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USER": "neo4j",
"NEO4J_PASSWORD": "your_neo4j_password"
}
}
}
}
{
"mcpServers": {
"crawl4ai-rag": {
"command": "docker",
"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"],
"env": {
"TRAN