B

BjornMelin

web-scrapingrag-systemssearch

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 强大的网页抓取能力。

文档

有关此项目的详细信息,请参阅以下文档:

特性

网页数据获取

  • 🌐 单个网页抓取:从单个网页提取内容
  • 🕸️ 网站爬取:以可配置的深度和页面限制爬取网站
  • 🗺️ 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 # 项目文档

开始使用

前提条件

  • Node.js (v18 或更高版本)
  • npm
  • Wrangler (CloudFlare Workers CLI)
  • 一个 CloudFlare 账号

安装

  1. 克隆仓库:

    bash git clone https://github.com/BjornMelin/crawl4ai-mcp-server.git cd crawl4ai-mcp-server

  2. 安装依赖项:

    bash npm install

  3. 设置 CloudFlare KV 命名空间:

    bash wrangler kv:namespace create CRAWL_DATA4. 更新 wrangler.toml 以包含 KV 命名空间 ID:

    toml kv_namespaces = [ { binding = "CRAWL_DATA", id = "your-namespace-id" } ]

开发

本地开发

使用 NPM

  1. 启动开发服务器:

    bash npm run dev

  2. 服务器将在 http://localhost:8787 可用。

使用 Docker

您也可以使用 Docker 进行本地开发,其中包括 Crawl4AI API 和调试 UI:

  1. 设置环境变量:

    bash cp .env.example .env

    编辑 .env 文件并添加您的 API 密钥

  2. 启动 Docker 开发环境:

    bash docker-compose up -d

  3. 访问服务:

有关更多详细信息,请参阅 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

部署

  1. 部署到 CloudFlare Workers:

    bash npm run deploy

  2. 您的服务器将可以在分配给已部署 worker 的 CloudFlare Workers URL 上访问。

与 MCP 客户端一起使用

此服务器实现了 Model Context Protocol,允许 AI 助手访问其工具。

身份验证

  • 使用 workers-oauth-provider 实现 OAuth 身份验证
  • 使用 Bearer 令牌添加 API 密钥身份验证
  • 创建登录页面和令牌管理

连接到 MCP 客户端

  1. 使用分配给已部署 worker 的 CloudFlare Workers URL
  2. 在 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 客户端 ID
  • OAUTH_CLIENT_SECRET: 用于身份验证的 OAuth 客户端密钥

路线图

该项目正在考虑以下组件进行开发:

  1. 项目设置和配置:CloudFlare Worker 设置、TypeScript 配置
  2. MCP 服务器和工具模式:实现带有工具定义的 MCP 服务器
  3. Crawl4AI 适配器:与 Crawl4AI 功能集成
  4. OAuth 身份验证:安全身份验证实现
  5. 性能优化:提高速度和可靠性
  6. 高级提取功能:改进结构化数据提取能力

贡献

欢迎贡献!请在开始处理功能或错误修复之前检查开放的问题或创建新问题。详见 贡献指南

支持

如果您遇到问题或有疑问:

如何引用

如果您在研究或项目中使用了 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”进行进一步说明,可以添加注释或解释,但根据您的要求,这里保持原文不变。

来源