网页爬取与分析服务器

Crawl4AI MCP Server 是一个强大的模型上下文协议服务器,提供网页爬取和分析功能,支持HTML/Markdown内容提取、基于CSS选择器的精准数据抓取、网页截图捕获等功能,适用于AI辅助的网页内容分析场景。

  • by Nexus-Digital-Automations
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 nexus-digital-automations/crawl4ai-mcp

使用说明

Crawl4AI MCP服务器

一个强大的模型上下文协议(MCP)服务器,使用Crawl4AI提供网络抓取和爬行功能。该服务器充当客户端AI的“手和眼睛”,实现智能网络内容分析和提取。

特性

  • 🔍 页面结构分析:从任何网页提取干净的HTML或Markdown内容
  • 🎯 基于模式的提取:使用CSS选择器和AI生成的模式进行精确的数据提取
  • 📸 电脑屏幕截图工具:用于分析的可视化网页表示
  • ⚡ 异步操作:具有进度报告的非阻塞网络爬行
  • 🛡️ 错误处理:全面的错误处理和验证
  • 📊 MCP集成:与日志记录和进度跟踪完全兼容的模型上下文协议

建筑

┌─────────────────┐    ┌───────────────────┐    ┌─────────────────┐
│   Client AI     │    │  Crawl4AI MCP     │    │   Web Content   │
│   ("Brain")     │◄──►│   Server          │◄──►│   (Websites)    │
│                 │    │  ("Hands & Eyes") │    │                 │
└─────────────────┘    └───────────────────┘    └─────────────────┘
  • FastMCP:处理MCP协议和工具注册
  • AsyncWebCrawler:提供异步web抓取功能
  • 标准运输:MCP兼容通信信道
  • 错误安全日志记录:所有日志都指向stderr,以防止协议损坏

安装

先决条件

  • Python 3.10或更高版本
  • pip包管理器

设置

  1. 克隆或下载此存储库:

    git clone <repository-url>
    cd crawl4ai-mcp
    
  2. 创建并激活虚拟环境:

    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 安装Playwright浏览器 (截图需要):

    playwright install
    

用法

启动服务器

# Activate virtual environment
source venv/bin/activate

# Start the MCP server
python3 crawl4ai_mcp_server.py

MCP检验员测试

对于交互式测试和开发:

# Start MCP Inspector interface
fastmcp dev crawl4ai_mcp_server.py

这将启动一个web界面(通常在http://localhost:6274)在那里,您可以交互式地测试所有工具。

可用工具

1.服务器状态

目的:获取服务器运行状况和功能信息
参数:无

示例响应:

{
  "server_name": "Crawl4AI-MCP-Server",
  "version": "1.0.0", 
  "status": "operational",
  "capabilities": ["web_crawling", "content_extraction", "screenshot_capture", "schema_based_extraction"]
}

2.get_page_structure

目的:提取网页内容进行分析(“眼睛”功能)
参数:

  • url (string):要分析的网页URL
  • format (字符串,可选):输出格式-“html”或“markdown”(默认:“html”)

示例:

{
  "url": "https://example.com",
  "format": "html"
}

3.crawl_with_schema

目的:使用CSS选择器进行精确数据提取(“hands”功能)
参数:

  • url (string):从中提取数据的网页URL
  • extraction_schema (string):定义字段名和CSS选择器的JSON字符串

示例架构:

{
  "title": "h1",
  "description": "p.description", 
  "price": ".price-value",
  "author": ".author-name",
  "tags": ".tag"
}

示例用法:

{
  "url": "https://example.com/product",
  "extraction_schema": "{\"title\": \"h1\", \"price\": \".price\", \"description\": \"p\"}"
}

4.拍摄_屏幕截图

目的:捕捉网页的视觉表现
参数:

  • url (string):要截图的网页URL

示例:

{
  "url": "https://example.com"
}

退货:带元数据的Base64编码PNG图像数据

与Claude Desktop集成

要将此服务器与Claude Desktop一起使用,请将此配置添加到您的Claude Desktop设置中:

{
  "mcpServers": {
    "crawl4ai": {
      "command": "python3",
      "args": ["/path/to/crawl4ai-mcp/crawl4ai_mcp_server.py"],
      "env": {}
    }
  }
}

替换 /path/to/crawl4ai-mcp/ 带有安装目录的实际路径。

错误处理

所有工具都包括全面的错误处理和返回结构化JSON响应:

{
  "error": "Error description",
  "url": "https://example.com", 
  "success": false
}

常见错误场景:

  • URL格式无效
  • 网络连接问题
  • 提取架构无效
  • 屏幕截图失败

发展

项目结构

crawl4ai-mcp/
├── crawl4ai_mcp_server.py    # Main server implementation
├── requirements.txt          # Python dependencies
├── pyproject.toml           # Project configuration
├── USAGE_EXAMPLES.md        # Detailed usage examples
└── README.md               # This file

依赖项

  • fastmcp:用于MCP服务器开发的FastMCP框架
  • crawl4ai:核心网络爬行和提取库
  • 媒染剂:数据验证和解析
  • 剧作家:屏幕截图的浏览器自动化

测试

运行linter以确保代码质量:

ruff check .

测试服务器启动:

python3 crawl4ai_mcp_server.py

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 使用MCP检查员进行彻底测试
  5. 提交拉取请求

许可证

这个项目是开源的。有关详细信息,请参阅LICENSE文件。

支持

对于问题和疑问:

  1. 检查USAGE_EXAMPLES.md中的故障排除部分
  2. 与MCP检查员一起进行测试,以隔离问题
  3. 验证所有依赖项是否已正确安装
  4. 确保虚拟环境已激活

致谢

  • Crawl4AI:强大的网络爬行和提取功能
  • FastMCP:简化了MCP服务器开发框架
  • 模型上下文协议:标准化AI工具集成