Skip to main content
Glama

crawl_mcp

基于 crawl4ai 和 FastMCP 的 MCP 服务器,提供网页爬取和搜索功能。

PyPI Version GitHub

功能

爬取工具

  • crawl_single - 单页爬取(自动降级:快速提取 → 浏览器渲染)

  • crawl_site - 递归爬取整个网站

  • crawl_batch - 批量爬取(自动降级,三阶段并行优化)

搜索工具

  • search_text - 通用网页搜索

  • search_news - 新闻内容搜索

  • search_images - 图片搜索(支持下载和 AI 分析)

  • search_books - 图书/电子书搜索

  • search_videos - 视频搜索(含时长、播放量等)

可选 AI 能力

  • LLM 后处理(实验性)- 对已爬取的 Markdown 进行 AI 摘要/结构化提取

  • 图片分析 - 使用视觉模型分析图片内容

核心定位:专业爬取工具。不配置 API Key 即可使用全部爬取和搜索功能。

Related MCP server: Deep Search MCP Server

性能

crawl_single / crawl_batch 内置自动降级:静态页走快速路径(~0.5s),SPA 自动 fallback 到浏览器。

场景

耗时

说明

crawl_single(静态博客)

~0.5s

快速提取路径

crawl_single(SPA 网站)

~0.6s + ~23s

快速检测失败 → 浏览器降级

crawl_batch 10 页(全静态)

~0.5s

并行快速提取

crawl_batch 10 页(混合)

~24s

静态页快速 + SPA 浏览器

search_text / news / books / videos

~1.5-2s

ddgs 搜索

关键优势:

  • 无需手动选择工具:crawl_single 自动判断用快速提取还是浏览器

  • 静态页面享受亚秒级速度,SPA 自动降级保证完整性

  • 批量爬取智能分流:静态 URL 并行快提取,失败项才走浏览器

  • 搜索类工具全部基于 ddgs,秒级响应

  • 无需配置任何 API Key 即可使用核心功能

安装

pip install crawl-mcp

MCP 配置

基础配置(推荐,无需 API Key)

默认配置不需要任何 API Key。以下工具都可以直接使用:

  • crawl_single / crawl_batch / crawl_site

  • search_text / search_news / search_books / search_videos / search_images

只有两类可选能力需要 API Key:

  • 传入 llm_config 做 LLM 后处理

  • 调用 search_images 且设置 analyze=true 做图片分析

{
  "mcpServers": {
    "crawl-mcp": {
      "command": "uvx",
      "args": ["crawl-mcp"]
    }
  }
}

可选 AI 配置(仅在需要 LLM / 图片分析时)

如果需要 llm_config 后处理或图片分析,再增加 env:

{
  "mcpServers": {
    "crawl-mcp": {
      "command": "uvx",
      "args": ["crawl-mcp"],
      "env": {
        "CRAWL_MCP_API_KEY": "your-api-key",
        "CRAWL_MCP_BASE_URL": "https://api.openai.com/v1",
        "CRAWL_MCP_TEXT_MODEL": "glm-4.7",
        "CRAWL_MCP_VISION_MODEL": "glm-4.6v"
      }
    }
  }
}

环境变量

变量

说明

必需

默认值

CRAWL_MCP_API_KEY

LLM 后处理 / 图片分析使用的 API 密钥

否

-

CRAWL_MCP_BASE_URL

OpenAI 兼容 API 基础 URL

否

https://api.openai.com/v1

CRAWL_MCP_TEXT_MODEL

LLM 后处理模型名称

否

glm-4.7

CRAWL_MCP_VISION_MODEL

图片分析模型名称

否

glm-4.6v

不配置 CRAWL_MCP_API_KEY 时,所有爬取和搜索工具仍可正常使用。传入 llm_config 时会跳过 LLM 后处理并返回 llm_skipped;search_images(analyze=true) 会返回图片分析配置错误,但普通图片搜索和下载不受影响。

LLM 后处理(实验性功能)

crawl_single 和 crawl_batch 支持可选的 llm_config 参数:

{
  "instruction": "提取产品信息",
  "schema": {
    "type": "object",
    "properties": {
      "name": {"type": "string"},
      "price": {"type": "number"}
    }
  }
}
  • instruction: 提取指令

  • schema: 可选的 JSON Schema(用于结构化数据提取)

前提条件:必须配置 CRAWL_MCP_API_KEY,否则会优雅跳过并在结果中返回 llm_skipped 提示。

工具用法

crawl_single - 单页爬取(自动降级)

已知一个明确 URL、需要提取页面正文 Markdown 时使用。内置「快速提取 → 浏览器渲染」自动降级策略:

{
  "name": "crawl_single",
  "arguments": {
    "url": "https://example.com/article"
  }
}

返回示例:

{
  "success": true,
  "markdown": "# Article Title\n\nContent...",
  "title": "Article Title",
  "method": "fast_extract"
}

可选参数:

  • enhanced: 浏览器增强模式,适用于 SPA/慢加载页面;只在浏览器路径生效

  • prefer_fast: 是否优先快速提取(默认 true,设 false 强制浏览器)

  • min_content_length: 快速提取最小内容长度阈值(默认 200 字符)

  • llm_config: LLM 后处理配置(实验性,需 API Key)

若要强制浏览器增强模式,请同时设置 prefer_fast=false 和 enhanced=true。 fallback_reason 仅在快速提取失败后进入浏览器 fallback 时返回。

crawl_batch - 批量爬取多个明确 URL

已知一组 URL、需要并行抓取多个页面时使用。它会先并行快速提取所有 URL,只把失败、内容不足或 SPA 骨架页送入浏览器 fallback。

{
  "name": "crawl_batch",
  "arguments": {
    "urls": [
      "https://example.com/a",
      "https://example.com/b"
    ],
    "concurrent": 3
  }
}

可选参数:

  • concurrent: 浏览器 fallback 并发数(默认 3)

  • prefer_fast: 是否优先快速提取(默认 true,设 false 时所有 URL 直接走浏览器)

  • min_content_length: 快速提取最小内容长度阈值(默认 200 字符)

  • llm_config: LLM 后处理配置(实验性,需 API Key)

  • llm_concurrent: LLM 后处理并发数(默认 3)

返回为结果列表。method 仅在 prefer_fast=true 的快速/降级路径中出现;fallback_reason 仅在单项发生浏览器 fallback 时出现。

crawl_site - 从入口页递归爬站

只有一个网站入口、希望沿站内链接发现并抓取若干页面时使用。它使用浏览器和 BFS 深度策略,不走快速提取,也不支持 LLM 后处理。

{
  "name": "crawl_site",
  "arguments": {
    "url": "https://example.com",
    "depth": 2,
    "pages": 10,
    "concurrent": 3
  }
}

参数:

  • depth: 最大链接深度(默认 2)

  • pages: 最大页面数(默认 10)

  • concurrent: 浏览器爬取并发数(默认 3)

返回包含 successful_pages、total_pages、success_rate 和 results。

search_text - 通用网页搜索

适用于搜索技术文档、百科、博客、论坛、教程等网页内容。搜索工具只返回摘要和链接,不抓取页面正文;如需正文,请对结果 URL 再调用 crawl_single 或 crawl_batch。

{
  "name": "search_text",
  "arguments": {
    "query": "Python 快速排序算法",
    "region": "cn-zh",
    "max_results": 5
  }
}

返回格式:

{
  "success": true,
  "query": "Python 快速排序算法",
  "count": 5,
  "results": [
    {"title": "...", "href": "https://...", "body": "..."}
  ]
}

search_images - 图片搜索

搜索图片,支持下载到本地和 AI 分析。

{
  "name": "search_images",
  "arguments": {
    "query": "cute cat",
    "max_results": 10,
    "download": true,
    "download_count": 5,
    "analyze": true,
    "analysis_prompt": "描述这张图片的内容和风格"
  }
}

返回格式:

{
  "success": true,
  "query": "cute cat",
  "search_results": {"count": 10, "results": [...]},
  "download_results": {"total": 5, "downloaded": 5, ...},
  "analysis_results": {"count": 5, "results": [...]}
}

search_books / search_videos

图书搜索和视频搜索,用法与 search_text 类似。返回字段由 ddgs 上游决定,通常包含标题、链接、摘要或媒体信息,具体字段会随来源变化。

开发

uv sync
uv run pytest
uv run python -m crawl4ai_mcp.fastmcp_server --http

发布

当前准备发布版本:0.2.0

发布前检查:

uv run pytest tests/unit
uv run ruff check .
uv run ruff format --check .
uv build

创建并推送 tag 后会触发 GitHub Actions 发布到 PyPI:

git tag v0.2.0
git push origin v0.2.0

许可证

MIT License

Available Tools

8 tools
crawl_batchA

批量爬取多个网页(自动降级版)

适用于已经有一组明确 URL、需要并行抓取多个页面的场景。 默认对所有 URL 并行快速提取;只有失败、内容过短或 SPA 骨架页才进入浏览器 fallback。 若只有一个 URL,请使用 crawl_single;若只有入口页并希望发现站内链接,请使用 crawl_site。

参数组合:

  • prefer_fast=True:静态页走快速路径,失败项才走浏览器 fallback。

  • prefer_fast=False:所有 URL 都直接走浏览器,不返回 fast/fallback 方法标记。

  • min_content_length 只影响快速提取是否被认为足够完整。

Inputs: urls (required), concurrent, llm_config, prefer_fast, +2 more. Returns: result

crawl_singleA

爬取单个网页(自动降级:快速提取 → 浏览器渲染)

适用于已经知道一个明确 URL、需要提取该页面正文 Markdown 的场景。 默认先尝试轻量级快速提取(适合静态文章/文档页),失败、内容过短或检测到 SPA 骨架页时 自动切换到浏览器渲染。若要从一个入口页继续发现站内链接,请使用 crawl_site; 若已有多个明确 URL,请使用 crawl_batch。

参数组合:

  • 默认 prefer_fast=True:先快提取,必要时 fallback 到浏览器。

  • prefer_fast=False:跳过快速提取,强制直接使用浏览器。

  • enhanced=True:只影响浏览器路径的等待时间;不会单独跳过快速提取。 如需强制浏览器增强模式,请同时设置 prefer_fast=False, enhanced=True。

Inputs: url (required), enhanced, llm_config, prefer_fast, +1 more. Returns: object

crawl_siteA

从入口页开始递归爬取站内页面(浏览器 + BFS 深度爬取)

适用于只有一个网站入口、希望沿站内链接抓取若干页面的场景。 与 crawl_batch 不同,本工具会从起始页发现链接;与 crawl_single/crawl_batch 不同, 本工具不走快速提取自动降级,也不支持 LLM 后处理。

Inputs: url (required), depth, pages, concurrent. Returns: object

search_booksA

搜索图书

适用于查找技术书籍、学术资料、电子书等。

Inputs: query (required), region, max_results. Returns: object

search_imagesA

搜索图片(支持下载和分析)

=== 基础搜索 === query: 搜索关键词 max_results: 搜索结果数量(默认:10)

=== 搜索过滤 === region: 区域代码 (wt-wt/us-en/cn-zh等) safesearch: 安全搜索 (on/moderate/off) timelimit: 时间限制 (d=天, w=周) size: 图片尺寸 (Small/Medium/Large/Wallpaper) color: 颜色过滤 (如 "Red", "Monochrome") type_image: 类型 (photo/clipart/gif/transparent/line) layout: 布局 (Square/Tall/Wide)

=== 下载选项 === download: 是否下载到本地(默认:False) download_count: 下载数量(默认:全部) output_dir: 下载目录(默认:./downloads/images)

=== 分析选项 === analyze: 是否使用图片模型分析(默认:False) analysis_prompt: 分析提示词 analyze_concurrent: 图片分析并发数(默认:3)

=== 返回格式 === { "success": True, "query": "butterfly", "search_results": { "count": 10, "results": [ { "title": "...", "image": "https://...", "thumbnail": "https://...", "width": 1920, "height": 1080, "source": "Bing" }, ... ] }, "download_results": { # 仅当 download=True 时 "total": 5, "downloaded": 5, "output_dir": "./downloads/images" }, "analysis_results": { # 仅当 analyze=True 时 "count": 5, "results": [ { "image": "...", "type": "local", "analysis": "这是一张..." } ] } }

Inputs: query (required), size, color, layout, +11 more. Returns: object

search_newsA

搜索新闻内容

适用于搜索突发新闻、时事、财经、体育等时效性内容。 只返回新闻搜索结果摘要和来源链接,不抓取全文;如需全文,请对结果 URL 再调用 crawl_single。

Inputs: query (required), region, timelimit, safesearch, +1 more. Returns: object

search_textA

搜索网页内容(通用搜索)

适用于搜索技术文档、百科、博客、论坛、教程等网页内容。 只返回搜索结果摘要和链接,不抓取页面正文;如需正文,请对结果 URL 再调用 crawl_single/crawl_batch。

Inputs: query (required), region, timelimit, safesearch, +1 more. Returns: object

search_videosB

搜索视频

适用于查找教程视频、演示视频、课程录像等。

Inputs: query (required), region, timelimit, safesearch, +1 more. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 8 tools

    Disambiguation5/5

    Each search tool targets a distinct content type (videos, images, text, books, news), and each crawl tool specifies a clear scenario (single URL, site discovery, batch URLs). No two tools have overlapping purposes.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern: search_* for searching different media types and crawl_* for crawling variants. This is highly predictable.

    Tool Count5/5

    8 tools is well-scoped for a search-and-crawl server. Each tool serves a distinct need with no redundancy or bloat.

    Completeness5/5

    The tool set covers the full search-and-crawl lifecycle: searching multiple content types, extracting page content, batch processing, and site traversal. There are no obvious missing operations for the stated purpose.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Crawl4AI MCP Server is an intelligent information retrieval server offering robust search capabilities and LLM-optimized web content understanding, utilizing multi-engine search and intelligent content extraction to efficiently gather and comprehend internet information.
      155
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides comprehensive search capabilities including web search, content extraction, news search, academic search, and AI-powered multi-source research. Enables natural language access to web content and research through a production-ready MCP server.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A general-purpose MCP server for crawling and extracting structured data from any website. Supports tools for crawling, single-page extraction, search-and-crawl, and schema extraction.
      2
      MIT