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 协议进行请求/响应