mcpField
C
crawl4ai-mcp

crawl4ai-mcp

本地服务
mcp-crawl4ai.vercel.app浏览器自动化026 周前更新

关于 crawl4ai-mcp

crawl4ai-mcp 使用 Crawl4AI 为 AI 系统提供网页抓取和爬取能力,包含 4 个工具、2 个资源和 3 个提示词。它支持 stdio 与 Streamable HTTP,并由服务生命周期管理无头 Chromium 浏览器。

主要功能

  1. 01抓取网页并提取内容
  2. 02支持列表与深度爬取
  3. 03提供会话关闭和制品获取
  4. 04注册配置与版本资源
  5. 05提供页面总结等提示词
  6. 06支持 stdio 与 Streamable HTTP

适用场景

  1. 01抓取网页并转换为 Markdown 或文本
  2. 02递归遍历网站页面
  3. 03总结、提取或比较网页内容

MCP 相关

该 MCP 服务向客户端提供网页抓取与爬取工具、配置和版本资源,以及用于总结、提取和比较页面的提示词。支持 stdio 和 Streamable HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"crawl4ai": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP-Crawl4AI

MCP-Crawl4AI 标志

由 Crawl4AI 驱动的网页爬取模型上下文协议服务

CI Codecov PyPI

Ruff Pre-commit Dependabot

Python 3.13+ License: MIT

MCP Compatible FastMCP v3 Crawl4AI Docker Documentation

GitHub stars GitHub last commit


概述

MCP-Crawl4AI 是一个 模型上下文协议 服务,可让 AI 系统访问实时网络。它基于 FastMCP v3 和 Crawl4AI 构建,通过标准化的 MCP 接口提供 4 个工具、2 个资源和 3 个提示词,并由一个生命周期托管的无头 Chromium 浏览器提供支持。

运行时依赖仅有 2 个 — fastmcp 和 crawl4ai。

提示

查看完整文档站点 →

主要功能
  • 完全符合 MCP 规范,通过 FastMCP v3 实现,并支持工具注解(readOnlyHint、destructiveHint 等)
  • 4 个专用工具,围绕标准的抓取/爬取以及会话生命周期/制品展开
  • 3 个提示词,用于常见的大模型工作流(总结、提取架构、比较页面)
  • 2 个资源,提供服务配置和版本信息
  • 无头 Chromium 作为生命周期单例管理(启动一次,到处复用)
  • 多种传输方式 — stdio(默认)和 Streamable HTTP
  • 针对大模型优化的输出 — Markdown、清理后的 HTML、原始 HTML 或纯文本
  • 标准选项组,涵盖提取、运行时、诊断、会话、渲染和遍历
  • 列表和深度遍历,统一使用一个 crawl 契约
  • 感知会话的工作流,提供显式关闭会话和获取制品的工具
  • 自动设置浏览器 — 检测缺失的 Playwright 浏览器并自动安装

安装

pip
pip install mcp-crawl4ai
mcp-crawl4ai --setup       # one-time: installs Playwright browsers
uv(推荐)
uv add mcp-crawl4ai
mcp-crawl4ai --setup       # one-time: installs Playwright browsers
Docker
docker build -t mcp-crawl4ai .
docker run -p 8000:8000 mcp-crawl4ai

Docker 镜像已包含 Playwright 浏览器 — 无需单独设置。

开发
git clone https://github.com/wyattowalsh/mcp-crawl4ai.git
cd mcp-crawl4ai
uv sync --group dev
mcp-crawl4ai --setup

说明

服务会在首次启动时自动检测缺失的 Playwright 浏览器,并尝试自动安装。你也可以随时手动运行 mcp-crawl4ai --setup 或 crawl4ai-setup。


快速开始

stdio(默认 — 适用于 Claude Desktop、Cursor 等)
mcp-crawl4ai
HTTP 传输
mcp-crawl4ai --transport http --port 8000

说明

HTTP 默认绑定到 127.0.0.1(仅限私有/本地访问);如需对外开放,请显式设置 --host,并使用反向代理处理 TLS/身份验证。

Claude Desktop 配置

将以下内容添加到 Claude Desktop MCP 设置(claude_desktop_config.json):

{
  "mcpServers": {
    "crawl4ai": {
      "command": "mcp-crawl4ai",
      "args": ["--transport", "stdio"]
    }
  }
}
Claude Code 配置
claude mcp add crawl4ai -- mcp-crawl4ai --transport stdio
MCP Inspector
npx @modelcontextprotocol/inspector uv --directory . run mcp-crawl4ai

工具

标准接口现提供 4 个工具:

scrape

使用单一标准封装响应抓取一个 URL 或有数量限制的 URL 列表(最多 20 个)。

  • 输入:targets(str | list[str])以及可选的分组 options
  • 支持提取(schema、extraction_mode)、运行时控制、诊断、会话设置、渲染设置和制品捕获
  • 返回包含 schema_version、tool、ok、data/items、meta、warnings、error 的标准 JSON 封装
crawl

使用标准遍历控制进行爬取。

  • 对有数量限制的列表遍历,使用 options.traversal.mode="list"
  • 从单个种子递归进行 BFS/DFS 遍历,使用 options.traversal.mode="deep"
  • 与抓取共用选项组和相同的封装格式,并额外支持遍历选项
close_session

关闭通过 options.session.session_id 创建的有状态会话。

get_artifact

获取在 scrape 或 crawl 期间捕获的制品元数据/内容;需启用 options.conversion.capture_artifacts。

选择核心用法还是高级用法
  • 核心路径(推荐): 使用 scrape/crawl 并搭配最少选项(runtime、conversion.output_format、traversal.mode="list")。对于大多数 Agent 工作流,这样可以保持行为可预测且风险较低。
  • 高级路径(显式启用): 仅在任务结果需要时,使用深度遍历、自定义调度器控制、JS 转换、提取架构和制品捕获。
  • 安全预算和门控: 检查 config://server 中的 settings.defaults、settings.limits、settings.policies 和 settings.capabilities,了解当前启用的约束和功能门控,然后再启用高级选项。

资源

URIMIME 类型描述
config://serverapplication/json当前服务配置:名称、版本、工具列表、浏览器配置
crawl4ai://versionapplication/json服务和依赖项的版本信息(server、crawl4ai、fastmcp)

提示词

提示词参数描述
summarize_pageurl、focus(默认值:"key points")抓取页面并根据指定重点总结其内容
build_extraction_schemaurl、data_type检查页面并为 scrape 构建 CSS 提取架构
compare_pagesurl1、url2抓取两个页面并生成结构化比较结果

架构

graph TD
    A[MCP Client] -->|stdio / HTTP| B[FastMCP v3]
    B --> C[Tool Router]
    C --> D[scrape]
    C --> E[crawl]
    C --> F[close_session]
    C --> G[get_artifact]
    D & E & F & G --> N[AsyncWebCrawler Singleton]
    N --> O[Headless Chromium]
    B --> P[Resources]
    B --> Q[Prompts]

    style B fill:#4B8BBE,color:#fff
    style N fill:#FF6B35,color:#fff
    style O fill:#2496ED,color:#fff

该服务采用单模块架构:

  • FastMCP v3 负责 MCP 协议协商、传输、工具/资源/提示词注册和消息路由
  • 由生命周期管理的 AsyncWebCrawler 在服务启动时启动一个无头 Chromium 浏览器,并在所有工具调用间共享;服务退出时会正常关闭浏览器
  • 4 个工具函数通过 @mcp.tool() 装饰器定义规范接口
  • 2 个资源函数通过 @mcp.resource() 装饰器返回 JSON
  • 3 个提示词函数通过 @mcp.prompt 装饰器返回结构化的 Message 列表

重要

没有中间管理器类或自定义 HTTP 客户端。服务将所有抓取工作委托给 crawl4ai 的 AsyncWebCrawler,并将所有协议处理委托给 FastMCP。运行时依赖项仅有 2 个。


配置

CLI 标志
标志默认值描述
--transportstdio传输协议:stdio 或 http
--host127.0.0.1要绑定的主机(仅限 HTTP 传输)
--port8000要绑定的端口(仅限 HTTP 传输)
--setup—安装 Playwright 浏览器并退出
环境变量

无需设置环境变量。服务的所有配置均使用合理的默认值。如果设置了 Crawl4AI 自身的环境变量(例如 CRAWL4AI_VERBOSE),服务也会采用这些变量。


测试

# Run all tests
uv run pytest

# Coverage gate (>=90%)
uv run pytest --cov=mcp_crawl4ai --cov-report=term-missing

# Smoke tests only
uv run pytest -m smoke

# Unit tests only
uv run pytest -m unit

# Integration workflow tests
uv run pytest -m integration

# End-to-end workflow tests
uv run pytest -m e2e

# Manual live test (requires browser)
uv run python tests/manual/test_live.py

说明

所有自动化测试都使用 fastmcp.Client(mcp) 在内存中运行,无需浏览器或网络。测试套件会模拟 AsyncWebCrawler,以实现快速、确定性的执行。


贡献

有关设置开发环境、编码规范和拉取请求流程的详情,请参阅贡献指南。

许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。


MCP-Crawl4AI — 连接 AI 与实时网络

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。