使用说明
Crawl4AI+ChromaDB MCP服务器
Maicol第二大脑的文档抓取器,带有矢量存储功能。
特性
- 🕷️ Web剪贴 使用Crawl4AI(异步、无头Chrome)
- 📊 矢量存储器 使用ChromaDB
- 🔍 语义搜索 使用句子变换器(自由嵌入)
- 🚀 快速API 便于集成的端点
- 🐳 码头工人 铁路部署准备就绪
堆栈
- Crawl4AI:Web抓取框架
- 色度数据库:矢量数据库
- 句子转换:全MiniLM-L6-v2(免费嵌入)
- 快速API:REST API框架
- 铁路:云托管
API终点
健康检查
GET /health
返回服务状态和ChromaDB连接信息。
爬行和索引
POST /crawl
Content-Type: application/json
{
"url": "https://docs.example.com",
"max_depth": 1,
"chunk_size": 1000
}
在ChromaDB中抓取URL并索引内容。
搜索
POST /search
Content-Type: application/json
{
"query": "How to deploy to Railway?",
"n_results": 5
}
对索引文档进行语义搜索。
统计
GET /stats
获取收集统计数据(文档计数等)。
删除收藏
DELETE /collection
⚠️ 删除整个集合。小心使用!
环境变量
CHROMA_URL=http://chroma.railway.internal:8000
CHROMA_API_KEY=your-api-key-here
COLLECTION_NAME=maicol_docs
铁路部署
1.部署ChromaDB模板
使用Railway的官方ChromaDB模板(包括Auth Proxy)。
2.部署Crawl4AI服务
# Push to GitHub
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/MrBlackSheep91/crawl4ai-mcp.git
git push -u origin main
# In Railway:
# - Create new service from GitHub repo
# - Set environment variables
# - Deploy
3.配置环境变量
CHROMA_URL=http://chroma.railway.internal:8000
CHROMA_API_KEY=6fpt4o4nhwr6kp69
COLLECTION_NAME=maicol_docs
使用示例
铁路文件索引
curl -X POST https://your-crawl4ai.up.railway.app/crawl \
-H "Content-Type: application/json" \
-d '{
"url": "https://docs.railway.app",
"max_depth": 1,
"chunk_size": 1000
}'
搜索索引文档
curl -X POST https://your-crawl4ai.up.railway.app/search \
-H "Content-Type: application/json" \
-d '{
"query": "How to deploy Docker containers?",
"n_results": 5
}'
成本优化
- 嵌入:免费(当地句子转换器)
- 色度数据库:铁路约1-2美元/月
- Crawl4AI:铁路约1-2美元/月
- 总计:约2-4美元/月
嵌入不需要OpenAI成本! 🎉
本地开发
# Install dependencies
pip install -r requirements.txt
# Set environment variables
cp .env.example .env
# Edit .env with your values
# Run locally
uvicorn main:app --reload --port 8000
与Graphiti集成
索引文档后,您可以与Graphiti知识图同步:
# Search docs
docs = await search_documents({"query": "Railway deployment"})
# Add to Graphiti
await graphiti.add_messages({
"group_id": "maicol_second_brain",
"messages": [{
"content": doc.content,
"role_type": "system",
"role": "documentation",
"timestamp": datetime.now().isoformat()
} for doc in docs.results]
})
故障排除
ChromaDB连接失败
- 检查
CHROMA_URL是正确的(应该是http://chroma.railway.internal:8000) - 验证
CHROMA_API_KEY匹配身份验证代理配置 - 确保两个服务都在同一个铁路项目中
爬行失败
- 检查URL是否可访问
- 验证Chrome是否安装在Docker容器中
- 如果需要,增加超时时间
未生成嵌入
- 首次运行时下载句子转换器模型(~100MB)
- 确保容器有足够的内存(至少512MB)
后续步骤
- []为多个URL添加批量爬网
- []实施爬网调度(cron作业)
- []添加对经过身份验证的页面的支持
- []创建MCP协议端点
已部署: 2025-11-18 状态: 在开发中
