返回 MCP 目录
public公开dns本地运行

mcp-server-webcrawl

mcp-server-webcrawl是一个高级网络爬虫数据搜索与检索工具,专为AI客户端设计,支持多种爬虫格式(如WARC、wget等),提供全文搜索、布尔逻辑查询及资源类型/状态过滤功能。它可与Claude Desktop无缝集成,通过Python安装,适用于构建网站知识库或进行SEO/性能审计等任务。

article

README

🚀 mcp-server-webcrawl

mcp-server-webcrawl 是一款用于网页爬虫数据的高级搜索与检索工具。它能让你的 AI 客户端按照你的指令或自主地对网页内容进行过滤和分析。该服务器具备全文搜索接口,支持布尔逻辑搜索,还能根据类型、HTTP 状态等对资源进行过滤。

🚀 快速开始

mcp-server-webcrawl 是免费且开源的,使用前需安装 Claude Desktop 和 Python(版本 >=3.10)。可通过以下命令在命令行进行安装:

pip install mcp-server-webcrawl

若需查看 MCP 服务器的详细设置步骤,请参考 设置指南

✨ 主要特性

  • 支持 Claude Desktop
  • 兼容多种网页爬虫
  • 可根据类型、状态等进行过滤
  • 支持布尔搜索
  • 支持 Markdown 和代码片段
  • 可创建自己的网站知识库

📦 安装指南

在命令行中使用以下命令进行安装:

pip install mcp-server-webcrawl

💻 使用示例

基础用法

在安装完成后,你可以按照以下步骤使用 mcp-server-webcrawl 进行网页爬虫数据的搜索和分析。

高级用法

你可以使用预定义的提示例程来执行特定的任务,如 SEO 审计、404 审计等。以下是一些可用的提示例程: | 提示例程 | 下载链接 | 类别 | 描述 | |--------|----------|----------|-------------| |🔍 SEO 审计 | auditseo.md | 审计 | 技术 SEO(搜索引擎优化)分析。涵盖基础内容,可深入分析。 | |🔗 404 审计 | audit404.md | 审计 | 检测断链并进行模式分析。不仅能发现问题,还能提供修复建议。 | |⚡ 性能审计 | auditperf.md | 审计 | 网站速度和优化分析。 | |📁 文件审计 | auditfiles.md | 审计 | 文件组织和资产分析。了解网站构成。 | |🌐 Gopher 接口 | gopher.md | 接口 | 受旧版 Gopher 客户端启发的老式搜索接口。 | |⚙️ 搜索测试 | testsearch.md | 自测 | 一系列测试,用于检查搜索查询解析器和后续 FTS5 转换中的布尔逻辑一致性。 |

如果你想跳过网站选择步骤(减少一次查询),可粘贴 Markdown 内容,并在同一请求中输入 “run pasted for [网站名称或 URL]”,系统会自动处理。若粘贴时未提供额外上下文,系统会提示你从已爬取的网站列表中进行选择。

📚 详细文档

支持的爬虫/格式

mcp-server-webcrawl 支持多种爬虫和格式,具体如下: | 爬虫/格式 | 描述 | 平台 | 设置指南 | |----------------|-------------|-----------|-------------| | WARC | 标准网页存档格式 | 因客户端而异 | 设置指南 | | wget | CLI 网站镜像工具 | macOS/Linux | 设置指南 | | InterroBot | GUI 爬虫和分析器 | macOS/Windows | 设置指南 | | Katana | CLI 安全导向爬虫 | macOS/Windows/Linux | 设置指南 | | SiteOne | GUI 爬虫和分析器 | macOS/Windows/Linux | 设置指南 |

布尔搜索语法

查询引擎支持特定字段(field: value)搜索和复杂的布尔表达式。全文搜索结合了 URL、内容和头部字段。 以下是一些示例查询: | 查询示例 | 描述 | |--------------|-------------| | privacy | 全文单关键字匹配 | | "privacy policy" | 全文精确短语匹配 | | boundar* | 全文通配符匹配以 boundar 开头的结果(如 boundary, boundaries) | | id: 12345 | id 字段按 ID 匹配特定资源 | | url: example.com/somedir | url 字段匹配 URL 包含 example.com/somedir 的结果 | | type: html | type 字段仅匹配 HTML 页面 | | status: 200 | status 字段匹配特定 HTTP 状态码(等于 200) | | status: >=400 | status 字段匹配特定 HTTP 状态码(大于或等于 400) | | content: h1 | content 字段匹配内容(HTTP 响应体,通常但不总是 HTML) | | headers: text/xml | headers 字段匹配 HTTP 响应头部 | | privacy AND policy | 全文同时匹配两个关键字 | | privacy OR policy | 全文匹配任意一个关键字 | | policy NOT privacy | 全文匹配不包含 privacy 的 policy | | (login OR signin) AND form | 全文匹配包含 login 或 signin 且包含 form 的结果 | | type: html AND status: 200 | 全文仅匹配 HTTP 状态为成功的 HTML 页面 |

字段搜索定义

字段搜索可提高搜索精度,允许你指定搜索索引的哪些列进行过滤。你可以将查询限制在特定属性上,如 URL、头部或内容主体,而不是搜索整个内容。这种方法在查找爬取数据中的特定属性或模式时可提高效率。 | 字段 | 描述 | |-------|-------------| | id | 数据库 ID | | url | 资源 URL | | type | 类型枚举列表(见类型表) | | size | 文件大小(字节) | | status | HTTP 响应码 | | headers | HTTP 响应头部 | | content | HTTP 主体 — HTML、CSS、JS 等 |

字段内容

部分字段可独立请求返回结果,而核心字段始终包含在结果中。使用 headers 和 content 字段会快速消耗令牌。请谨慎使用,或使用 extras 参数来处理更多结果以适应上下文窗口。字段是顶级参数,与查询中的任何字段搜索无关。 | 字段 | 描述 | |-------|-------------| | id | 始终可用 | | url | 始终可用 | | type | 始终可用 | | status | 始终可用 | | created | 可请求 | | modified | 可请求 | | size | 可请求 | | headers | 可请求 | | content | 可请求 |

内容类型

爬取的数据包含除 HTML 页面之外的资源类型。type: 字段搜索允许按广泛的内容类型组进行过滤,在过滤图像时无需复杂的扩展名查询,特别有用。例如,你可以搜索 type: html NOT content: login 以查找不包含 “login” 的页面,或 type: img 以分析图像资源。以下是搜索系统支持的所有内容类型: | 类型 | 描述 | |------|-------------| | html | 网页 | | iframe | 内联框架 | | img | 网页图像 | | audio | 网页音频文件 | | video | 网页视频文件 | | font | 网页字体文件 | | style | CSS 样式表 | | script | JavaScript 文件 | | rss | RSS 聚合提要 | | text | 纯文本内容 | | pdf | PDF 文件 | | doc | MS Word 文档 | | other | 未分类 |

额外参数(Extras)

extras 参数提供了额外的处理选项,可转换 HTTP 数据(Markdown、代码片段、正则表达式、XPath),或将 LLM 连接到外部数据(缩略图)。这些选项可根据需要组合使用,以实现所需的结果格式。 | 额外参数 | 描述 | |-------|-------------| | thumbnails | 生成 base64 编码的图像,供 AI 模型查看和分析。在保持令牌输出最少的情况下,支持图像描述、内容分析和视觉理解。适用于图像,可在查询中使用 type: img 进行过滤。不支持 SVG。 | | markdown | 将 HTML 内容字段转换为简洁的 Markdown,减少令牌使用,提高 LLM 的可读性。适用于 HTML,可在查询中使用 type: html 进行过滤。 | | regex | 从爬取的文件(如 HTML、CSS、JavaScript 等)中提取正则表达式匹配项。对于 HTML 来说,不如 XPath 精确,但支持任何文本文件作为数据源。可使用 extrasRegex 参数请求一个或多个正则表达式模式。 | | snippets | 将全文查询与内容中的上下文关键字使用情况进行匹配。在不请求 content 字段(或 markdown 额外参数)的情况下使用时,可在不下载完整页面内容的情况下有效优化搜索。也适用于将旧版高亮结果渲染为列表,就像 1999 年的 Google 搜索一样。适用于 HTML、CSS、JS 或任何基于文本的爬取文件。 | | xpath | 提取 XPath 选择器数据,用于抓取 HTML 内容。使用 XPath 的 text() 选择器仅提取文本,元素选择器返回外部 HTML。仅支持 type: html,其他类型将被忽略。可使用 extrasXpath 参数请求一个或多个 XPath 选择器(如 //h1, count(//h1) 等)。 |

额外参数提供了一种高效生成 HTTP 内容响应的方法。Markdown 生成的字节数约为源 HTML 的 1/3,代码片段每个结果通常约 500 字节,XPath 可根据需要进行具体或广泛的设置。请求越聚焦,能在 LLM 会话中处理的结果就越多。

当然,理想情况下,LLM 会为你处理这些。如果你发现 LLM 倾向于使用 “content” 字段(完整 HTML),在聊天中提示使用 extras 功能来管理令牌预算即可。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端