这是一个强大的模型上下文协议(MCP)实现,与Crawl4AI和Supabase集成,为AI代理和AI编码助手提供高级的网络爬取和RAG功能。
使用此MCP服务器,您可以<b>抓取任何内容</b>,然后<b>在任何地方使用这些知识</b>进行RAG。
此MCP服务器提供了使AI代理能够爬取网站、将内容存储在向量数据库(Supabase)中并执行RAG操作的工具。
服务器提供了四个基本的网络爬取和搜索工具:
crawl_single_page:快速爬取单个网页,并将其内容存储在向量数据库中smart_crawl_url:基于提供的URL类型(站点地图、llms-full.txt或需要递归爬取的常规网页)智能爬取整个网站get_available_sources:获取数据库中所有可用来源(域)的列表perform_rag_query:使用语义搜索查找相关内容,可选地按来源过滤克隆此仓库:
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文件
要使用Docker本地运行Supabase,请按照以下步骤操作:
获取Supabase代码:
git clone --depth 1 https://github.com/supabase/supabase
创建新的Supabase项目目录:
mkdir supabase-project
将compose文件复制到您的项目中:
cp -rf supabase/docker/* supabase-project
复制假的环境变量:
cp supabase/docker/.env.example supabase-project/.env
切换到您的项目目录:
cd supabase-project
拉取最新的镜像:
docker compose pull
启动服务(分离模式):
docker compose up -d
在本地启动Supabase后,请确保在此项目的.env文件中配置正确的SUPABASE_URL和SUPABASE_SERVICE_KEY指向您的本地Supabase实例。通常,在本地设置中,这些将是:
在运行服务器之前,您需要使用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
#本地supbase配置
SUPABASE_URL=your_local_supbase_url
SUPABASE_SERVICE_KEY=your_local_supbase_service_key
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 Desktop、Windsurf或其他任何MCP客户端的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"
}
}
}
}
{
"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()装饰器的方法添加您自己的工具utils.py文件以添加所需的辅助函数