crawl4ai-mcp-server

使用说明(Markdown 格式)

项目简介

crawl4ai-mcp-server 是一个基于 MCP(Model Context Protocol)的后端服务器实现,提供爬取相关的资源、工具和提示模板等能力。服务器通过 MCP 的 JSON-RPC 协议与客户端通信,支持对网页抓取、站点爬取、站点地图爬取等多种任务的执行与结果持久化,当前实现通过 STDIO(标准输入输出)传输与 MCP 客户端通信,方便与 OpenAI Agents SDK、Cursor、Claude Code 等集成。

主要功能点

  • MCP 服务端核心:实现 MCP 的服务端逻辑,包含工具注册、请求处理、结果返回等
  • 工具集成(示例工具):scrape、crawl、crawl_site、crawl_sitemap,支持返回内容、链接、以及持久化信息
  • 结果持久化:将抓取内容、元数据、链接等持久化到本地目录,生成 manifest.json、pages.jsonl、links.csv、log.ndjson 等
  • 路径与安全控制:对 URL 做公开性校验,支持同域 crawling、正则筛选 include/exclude 等
  • 异步爬取实现:使用 Crawl4AI 的 AsyncWebCrawler 进行异步网页抓取
  • 多传输模式支持(通过示例实现):当前实现为 STDIO 传输的 MCP 服务端,便于集成到现有工作流中
  • 容错与日志:完善的日志记录和错误处理,便于排错和监控

安装与运行步骤

  • 安装依赖(示例,具体以项目实际依赖为准):
    • Python 版本应为 3.8+(代码使用了现代 Python 特性)
    • 安装 MCP 相关库与网页爬取相关依赖(例如 mcp、httpx、pydantic、crawl4ai 等)以及异步工具
  • 获取代码并进入项目目录
  • 直接运行 MCP 服务端(STDIO 传输示例)
    • 理想做法是让 MCP 客户端通过 STDIO 与服务端连接,服务器启动命令如下: python -m crawler_agent.mcp_server
  • 使用 MCP 客户端连接与测试
    • 使用支持 MCP 的客户端(如 OpenAI Agents SDK)进行连接与调用工具
    • 进行以下操作以测试:列出工具、调用 scrape/crawl 等

MCP 客户端配置(JSON,供客户端连接时使用;不需要客户端额外的实现细节)

{ "server_name": "crawl4ai-mcp", "command": "python", "args": ["-m", "crawler_agent.mcp_server"], "description": "MCP 服务端,使用 STDIO 传输的 crawl4ai-mcp-server 模块", "env": { "OPENAI_API_KEY": "<your-api-key-if-needed>" } // 其它环境变量可按需传入 }

注释说明

  • server_name: MCP 服务端在客户端侧的标识名称,应与服务端一致
  • command 与 args: 启动服务端的命令及参数,本文实现使用模块方式启动,等效于在终端执行 python -m crawler_agent.mcp_server
  • env: 运行时环境变量,若客户端需要注入 API key 或其他配置,可在此传入
  • 该配置仅用于客户端启动时的连接信息,实际通信仍通过 MCP 协议进行请求/响应

服务器信息