项目简介
这是一个实现了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 (推荐):
- 构建 Docker 镜像(替换端口如果需要):
docker build -t mcp/crawl4ai-rag --build-arg PORT=8051 . - 运行容器,加载 '.env' 文件:
docker run --env-file .env -p 8051:8051 mcp/crawl4ai-rag
- 构建 Docker 镜像(替换端口如果需要):
-
使用 uv (无 Docker):
- 克隆仓库并进入目录:
git clone https://github.com/coleam00/mcp-crawl4ai-rag.git cd mcp-crawl4ai-rag - 创建并激活虚拟环境,安装依赖:
pip install uv # 如果没有安装 uv uv venv .venv\Scripts\activate # Windows # source .venv/bin/activate # Mac/Linux uv pip install -e . # 运行crawl4ai的setup命令 (可选,如果需要命令行工具) crawl4ai-setup - 运行服务器:
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客户端就可以调用服务器提供的工具来执行任务:
- 抓取单个页面: 调用名为 'crawl_single_page' 的工具,传入要抓取的网页 URL。
- 智能抓取: 调用名为 'smart_crawl_url' 的工具,传入 URL。服务器会自动判断是抓取单个页面、处理网站地图还是进行递归抓取。可以指定抓取深度等参数。
- 查询可用来源: 调用名为 'get_available_sources' 的工具,获取数据库中所有已抓取网站的域名列表。
- 执行RAG查询: 调用名为 'perform_rag_query' 的工具,传入搜索查询文本。可以可选地提供 'source' 参数来限定搜索范围,或提供 'match_count' 来指定返回结果数量。
这些工具会返回 JSON 格式的结果,AI客户端可以解析这些结果以获取抓取的内容、搜索到的相关文档等信息,从而增强其理解能力和行动能力。
信息
分类
网页与API