<em>为AI代理和AI编码助手提供网络爬取、搜索和RAG功能</em>
(从 https://github.com/coleam00/mcp-crawl4ai-rag 分叉而来). 添加了SearXNG集成和批量抓取及处理能力。
这是一个自包含的Docker解决方案,结合了模型上下文协议(MCP)、Crawl4AI、SearXNG和Supabase,为AI代理和编码助手提供了完整的网络搜索、爬取和RAG功能。
🚀 一键部署完整堆栈:使用docker compose up -d部署所有内容 - 不需要Python环境设置,无需外部服务。
与传统的抓取(如Firecrawl)不同,后者会倾倒原始内容并淹没LLM上下文窗口,本解决方案使用**智能RAG(检索增强生成)**来:
灵活的输出选项:
这个基于Docker的MCP服务器提供了一个完整的网络智能堆栈,使AI代理能够:
可用的高级RAG策略:
详情请参阅下方的配置部分。
服务器提供了基本的网络爬取和搜索工具:
scrape_urls:抓取一个或多个URL并将它们的内容存储在向量数据库中。支持单个URL和URL列表的批处理。smart_crawl_url:根据提供的URL类型(站点地图、llms-full.txt或需要递归爬取的常规网页)智能爬取整个网站get_available_sources:获取数据库中所有可用的来源(域)列表perform_rag_query:使用语义搜索查找相关内容,可选来源过滤search:综合的网络搜索工具,集成了SearXNG搜索、自动化抓取和RAG处理。执行完整的流程:(1)使用提供的查询搜索SearXNG,(2)从搜索结果中提取URL,(3)自动抓取所有找到的URL,(4)将内容存储在向量数据库中,(5)返回按URL组织的RAG处理结果或原始Markdown内容。关键参数:query(搜索词),return_raw_markdown(跳过RAG获取原始内容),num_results(搜索结果限制),batch_size(数据库操作批处理),max_concurrent(并行抓取会话)。适用于研究工作流、竞争分析和带有内置智能的内容发现。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知识图谱必需:
可选:
这是一个仅限Docker的解决方案 - 不需要设置Python环境!
克隆此仓库:
git clone https://github.com/coleam00/mcp-crawl4ai-rag.git
cd mcp-crawl4ai-rag
配置环境:
cp .env.example .env
# 编辑.env文件,添加您的API密钥(见下文配置部分)
部署完整堆栈:
docker compose up -d
就这样!您的完整搜索、爬取和RAG堆栈现在正在运行:
Docker Compose堆栈包括:
在运行服务器之前,您需要使用pgvector扩展设置数据库:
转到Supabase仪表板中的SQL编辑器(如有必要,先创建一个新的项目)
创建一个新的查询,并粘贴crawled_pages.sql的内容
运行查询以创建必要的表和函数
要启用AI幻觉检测和仓库分析功能,您需要设置Neo4j。
注意: 知识图谱功能完全支持Docker,并支持所有功能。
选项1:本地AI包(推荐)
最简单的方法是使用本地AI包:
克隆并启动Neo4j:
git clone https://github.com/coleam00/local-ai-packaged.git
cd local-ai-packaged
# 按照仓库说明使用Docker Compose启动Neo4j
Docker连接详细信息:
bolt://host.docker.internal:7687(对于Docker容器)bolt://localhost:7687(对于本地访问)neo4j选项2:Neo4j Docker
直接使用Docker运行Neo4j:
docker run -d \
--name neo4j \
-p 7474:7474 -p 7687:7687 \
-e NEO4J_AUTH=neo4j/your-password \
neo4j:latest
选项3:Neo4j桌面版
使用Neo4j桌面版进行本地GUI安装:
bolt://host.docker.internal:7687(对于Docker容器)bolt://localhost:7687(对于本地访问)neo4j通过编辑.env文件来配置Docker堆栈(从.env.example复制):
# ========================================
# MCP SERVER CONFIGURATION
# ========================================
TRANSPORT=sse
HOST=0.0.0.0
PORT=8051
# ========================================
# INTEGRATED SEARXNG CONFIGURATION
# ========================================
# 预配置用于Docker Compose - SearXNG内部运行
SEARXNG_URL=http://searxng:8080
SEARXNG_USER_AGENT=MCP-Crawl4AI-RAG-Server/1.0
SEARXNG_DEFAULT_ENGINES=google,bing,duckduckgo
SEARXNG_TIMEOUT=30
# 可选:生产HTTPS的自定义域名
SEARXNG_HOSTNAME=http://localhost
# SEARXNG_TLS=your-email@example.com # 对于Let's Encrypt
# ========================================
# AI SERVICES CONFIGURATION
# ========================================
# 必需:OpenAI API用于嵌入
OPENAI_API_KEY=your_openai_api_key
# LLM用于摘要和上下文嵌入
MODEL_CHOICE=gpt-4.1-nano-2025-04-14
# 必需:Supabase用于向量数据库
SUPABASE_URL=your_supabase_project_url
SUPABASE_SERVICE_KEY=your_supabase_service_key
# ========================================
# RAG ENHANCEMENT STRATEGIES
# ========================================
USE_CONTEXTUAL_EMBEDDINGS=false
USE_HYBRID_SEARCH=false
USE_AGENTIC_RAG=false
USE_RERANKING=false
USE_KNOWLEDGE_GRAPH=false
# 可选:如果USE_KNOWLEDGE_GRAPH=true,则使用Neo4j进行知识图谱
# 使用host.docker.internal:7687用于Windows/Mac上的Docker Desktop
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_neo4j_password
🔍 SearXNG集成:堆栈中包含一个预配置的SearXNG实例,自动运行。无需外部设置!
🐳 Docker网络:默认配置使用Docker内部网络(http://searxng:8080),开箱即用。
🔐 生产设置:对于生产,将SEARXNG_HOSTNAME设置为您自己的域名,并将SEARXNG_TLS设置为您的电子邮件地址以自动获取HTTPS。
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 - 所有功能都在容器化环境中工作。
parse_github_repository用于索引代码库,check_ai_script_hallucinations用于验证AI生成的代码,以及query_knowledge_graph用于探索已索引的仓库。与MCP工具的使用:
您可以指示AI编码助手将Python GitHub仓库添加到知识图谱中:
"将https://github.com/pydantic/pydantic-ai.git添加到知识图谱"
确保仓库URL以.git结尾。
您还可以让AI编码助手使用MCP的check_ai_script_hallucinations工具检查其创建的脚本中的幻觉。
对于一般文档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 Compose管理:
docker compose up -d
# 所有服务
docker compose logs -f
# 特定服务
docker compose logs -f mcp-crawl4ai
docker compose logs -f searxng
docker compose down
# 重启所有
docker compose restart
# 重启特定服务
docker compose restart mcp-crawl4ai
``