# Crawl4AI MCP Server
这是一个基于MCP (Model Context Protocol)的智能信息获取服务器,为AI助手系统提供强大的搜索能力和面向LLM优化的网页内容理解功能。通过多引擎搜索和智能内容提取,帮助AI系统高效获取和理解互联网信息。
## 文件结构
- `src/index.py`: MCP服务器主实现,使用FastMCP提供网页爬取功能
- `pyproject.toml`: 项目配置和依赖管理
- `requirements.txt`: 环境依赖列表,基于实际测试的版本
## 功能说明
服务器提供以下核心工具:
1. `search`: 强大的网络搜索功能
- 支持多个搜索引擎:
* DuckDuckGo: 无需API密钥,全面处理AbstractText、Results和RelatedTopics
* Google: 需要配置API密钥和CSE ID,提供精准搜索结果
- 参数说明:
* query: 搜索查询字符串
* num_results: 返回结果数量(默认10)
* engine: 搜索引擎选择(duckduckgo/google)
- 特点:
* 支持选择特定搜索引擎
* 智能结果整合和排序
2. `read_url`: 面向LLM优化的网页内容理解工具
- 输出格式:
* markdown_with_citations: 包含内联引用的Markdown,保持信息溯源
* fit_markdown: 经过LLM优化的精简内容,去除冗余信息
* raw_markdown: 基础HTML→Markdown转换
* references_markdown: 单独的引用/参考文献部分
* fit_html: 生成fit_markdown的过滤后HTML
* markdown: 默认Markdown格式
- 特点:
* 智能内容识别和提取
* 自动过滤非核心内容
* 保持引用完整性
## 环境要求
- Python >= 3.9
- 依赖包版本:
- Crawl4AI==0.4.248
- playwright==1.50.0
- beautifulsoup4==4.13.3
- 其他依赖见requirements.txt
## 注意事项
1. 服务器使用专门的Python环境(crawl4ai_env)
2. 首次使用需要安装playwright浏览器:
```bash
playwright install
```
3. 服务器使用异步操作,确保资源正确清理
4. LLM内容优化策略:
- 智能内容识别: 自动识别并保留文章主体、关键信息段落
- 噪音过滤: 自动过滤导航栏、广告、页脚等对理解无帮助的内容
- 信息完整性: 保留URL引用,支持信息溯源
- 长度优化: 使用最小词数阈值(10)过滤无效片段
- 格式优化: 默认输出markdown_with_citations格式,便于LLM理解和引用
## 更新历史
- 2025.03.20: 修复Windows系统上的字符编码问题,确保read_url和search方法在不同操作系统上正常工作
- 2025.02.10: 集成duckduckgo_search库,优化DuckDuckGo搜索实现,支持更多搜索特性
- 2025.02.08: 优化DuckDuckGo搜索实现,增强结果收集能力
- 2025.02.07: 重构项目结构,使用FastMCP实现,优化依赖管理
- 2025.02.07: 优化内容过滤配置,提高token效率并保持URL完整性
## 跨平台兼容性
为确保在不同操作系统上的兼容性,特别是Windows系统,本项目采取了以下措施:
1. **编码处理**: 所有文本输出使用UTF-8编码,并使用`errors='replace'`参数处理无法编码的字符
2. **错误处理**: 增强了异常捕获和处理机制,提供更详细的错误信息
3. **JSON序列化**: 使用`ensure_ascii=False`确保非ASCII字符正确处理,避免Windows默认编码(通常是cp1252)的限制