339 查看 · 2026-07-07 更新
⚠️ 通知
MCP 服务器当前正在开发中
尚未准备好投入生产使用
将在可用时更新
Crawl4AI MCP 服务器
🚀 高性能的 Crawl4AI MCP 服务器 - 通过 Model Context Protocol (MCP) 使 AI 助手能够访问网页抓取、爬虫和深度研究功能。比 FireCrawl 更快更高效!
概述
该项目实现了一个自定义的 Model Context Protocol (MCP) 服务器,与开源的网页抓取和爬虫库 Crawl4AI 集成。该服务器部署在 CloudFlare Workers 上作为远程 MCP 服务器,允许像 Claude 这样的 AI 助手访问 Crawl4AI 强大的网页抓取能力。
文档
有关此项目的详细信息,请参阅以下文档:
- 迁移计划 - 从 Firecrawl 迁移到 Crawl4AI 的详细计划
- 增强架构 - 具有云提供商灵活性的多租户架构
- 实施指南 - 技术实施细节和代码示例
- 代码简化 - 代码简化和最佳实践的详细信息
- Docker 设置指南 - 本地开发和生产的 Docker 设置说明
特性
网页数据获取
- 🌐 单个网页抓取:从单个网页提取内容
- 🕸️ 网站爬取:以可配置的深度和页面限制爬取网站
- 🗺️ URL 发现:从起点映射和发现 URL
- 🕸️ 异步爬取:高效地爬取整个网站
内容处理
- 🔍 深度研究:跨多个页面进行综合研究
- 📊 结构化数据提取:使用 CSS 选择器或基于 LLM 的提取方法提取特定数据
- 🔎 内容搜索:搜索之前爬取的内容
集成与安全
- 🔄 MCP 集成:与 MCP 客户端(如 Claude Desktop 等)无缝集成
- 🔒 OAuth 认证:通过适当的授权确保安全访问
- 🔒 认证选项:通过 OAuth 或 API 密钥(Bearer token)进行安全访问
- ⚡ 高性能:优化速度和效率
项目结构
plaintext crawl4ai-mcp/ ├── src/ │ ├── index.ts # 主入口点,包含 OAuth 提供者设置 │ ├── auth-handler.ts # 认证处理器 │ ├── mcp-server.ts # MCP 服务器实现 │ ├── crawl4ai-adapter.ts # Crawl4AI API 适配器 │ ├── tool-schemas/ # MCP 工具模式定义 │ │ └── [...].ts # 工具模式 │ ├── handlers/ │ │ ├── crawl.ts # 网页爬取实现 │ │ ├── search.ts # 搜索功能 │ │ └── extract.ts # 内容提取 │ └── utils/ # 实用函数 ├── tests/ # 测试用例 ├── .github/ # GitHub 配置 ├── wrangler.toml # CloudFlare Workers 配置 ├── tsconfig.json # TypeScript 配置 ├── package.json # Node.js 依赖项 └── README.md # 项目文档
开始使用
前提条件
安装
-
克隆仓库:
bash git clone https://github.com/BjornMelin/crawl4ai-mcp-server.git cd crawl4ai-mcp-server
-
安装依赖项:
bash npm install
-
设置 CloudFlare KV 命名空间:
bash wrangler kv:namespace create CRAWL_DATA4. 更新
wrangler.toml以包含 KV 命名空间 ID:toml kv_namespaces = [ { binding = "CRAWL_DATA", id = "your-namespace-id" } ]
开发
本地开发
使用 NPM
-
启动开发服务器:
bash npm run dev
-
服务器将在 http://localhost:8787 可用。
使用 Docker
您也可以使用 Docker 进行本地开发,其中包括 Crawl4AI API 和调试 UI:
-
设置环境变量:
bash cp .env.example .env
编辑 .env 文件并添加您的 API 密钥
-
启动 Docker 开发环境:
bash docker-compose up -d
-
访问服务:
- MCP 服务器: http://localhost:8787
- Crawl4AI UI: http://localhost:3000
有关更多详细信息,请参阅 Docker 设置指南。
测试
项目包括一个使用 Jest 的全面测试套件。要运行测试:
bash
运行所有测试
npm test
在开发期间以监视模式运行测试
npm run test:watch
运行带有覆盖率报告的测试
npm run test:coverage
仅运行单元测试
npm run test:unit
仅运行集成测试
npm run test:integration
在 Docker 中运行时:
bash docker-compose exec mcp-server npm test
部署
-
部署到 CloudFlare Workers:
bash npm run deploy
-
您的服务器将可以在分配给已部署 worker 的 CloudFlare Workers URL 上访问。
与 MCP 客户端一起使用
此服务器实现了 Model Context Protocol,允许 AI 助手访问其工具。
身份验证
- 使用 workers-oauth-provider 实现 OAuth 身份验证
- 使用 Bearer 令牌添加 API 密钥身份验证
- 创建登录页面和令牌管理
连接到 MCP 客户端
- 使用分配给已部署 worker 的 CloudFlare Workers URL
- 在 Claude Desktop 或其他 MCP 客户端中,将此服务器添加为工具源
可用工具
crawl: 从起始 URL 抓取网页getCrawl: 通过 ID 检索抓取数据listCrawls: 列出所有抓取或按域名过滤search: 根据查询搜索索引文档extract: 从 URL 提取结构化内容
配置
可以通过修改 wrangler.toml 中的环境变量来配置服务器:
MAX_CRAWL_DEPTH: 网页抓取的最大深度(默认值:3)MAX_CRAWL_PAGES: 最大抓取页面数(默认值:100)API_VERSION: API 版本字符串(默认值:"v1")OAUTH_CLIENT_ID: 用于身份验证的 OAuth 客户端 IDOAUTH_CLIENT_SECRET: 用于身份验证的 OAuth 客户端密钥
路线图
该项目正在考虑以下组件进行开发:
- 项目设置和配置:CloudFlare Worker 设置、TypeScript 配置
- MCP 服务器和工具模式:实现带有工具定义的 MCP 服务器
- Crawl4AI 适配器:与 Crawl4AI 功能集成
- OAuth 身份验证:安全身份验证实现
- 性能优化:提高速度和可靠性
- 高级提取功能:改进结构化数据提取能力
贡献
欢迎贡献!请在开始处理功能或错误修复之前检查开放的问题或创建新问题。详见 贡献指南。
支持
如果您遇到问题或有疑问:
- 在 GitHub 仓库上打开一个问题
- 查看 Crawl4AI 文档
- 参考 Model Context Protocol 规范
如何引用
如果您在研究或项目中使用了 Crawl4AI MCP 服务器,请使用以下 BibTeX 条目引用它:
bibtex @software{crawl4ai_mcp_2025, author = {Melin, Bjorn}, title = {Crawl4AI MCP Server: High-performance Web Crawling for AI Assistants}, url = {https://github.com/BjornMelin/crawl4ai-mcp-server}, version = {1.0.0}, year = {2025}, month = {5} }
许可证MIT
这里的翻译主要是将"MIT"保留,因为它是一个专有名词,指的是麻省理工学院的许可证类型。而[LICENSE]看起来像是一个链接或引用到具体的许可证文本文件,因此也保持不变。在中文环境中,通常直接使用英文原名来指代这种类型的许可证,以确保准确性和一致性。如果需要对“LICENSE”进行进一步说明,可以添加注释或解释,但根据您的要求,这里保持原文不变。
来源
- 来源:github
- 链接:https://github.com/BjornMelin/crawl4ai-mcp-server