用于网络爬虫数据的高级搜索和检索。通过mcp-server-webcrawl,您的AI客户端可以在您的指导下或自主地过滤和分析网页内容。该服务器包括一个支持布尔运算的全文搜索接口,并且可以根据类型、HTTP状态等进行资源过滤。
mcp-server-webcrawl为LLM提供了一个完整的菜单,以进行搜索,并与多种网络爬虫兼容:
| 爬虫/格式 | 描述 | 平台 | 设置指南 |
|---|---|---|---|
| ArchiveBox | 网页存档工具 | macOS/Linux | 设置指南 |
| HTTrack | 图形界面镜像工具 | macOS/Windows/Linux | 设置指南 |
| InterroBot | 图形界面爬虫和分析器 | macOS/Windows/Linux | 设置指南 |
| Katana | 命令行安全聚焦爬虫 | macOS/Windows/Linux | 设置指南 |
| SiteOne | 图形界面爬虫和分析器 | macOS/Windows/Linux | 设置指南 |
| WARC | 标准网页存档格式 | 客户端不同而异 | 设置指南 |
| wget | 命令行网站镜像工具 | macOS/Linux | 设置指南 |
mcp-server-webcrawl是免费和开源的,需要Claude Desktop和Python(>=3.10)。它可以通过命令行使用pip安装:
pip install mcp-server-webcrawl
对于详细的MCP服务器设置步骤,请参考设置指南。
mcp-server-webcrawl提供了自由搜索网络爬虫数据所需的工具包,您可以边走边摸索,对每个查询做出反应。这就是它的设计目的。
它还能够运行程序(作为提示)。您可以自己编写这些提示,也可以使用提供的提示。这些提示是复制粘贴的,并作为原始Markdown使用。它们通过提供给LLM的高级搜索功能启用;查询和逻辑可以嵌入到一系列指令中,甚至是一个输入循环,就像Gopher服务的情况一样。
| 提示 | 下载 | 类别 | 描述 |
|---|---|---|---|
| 🔍 SEO审计 | auditseo.md | 审计 | 技术SEO(搜索引擎优化)分析。涵盖基础内容,有选项深入分析。 |
| 🔗 404审计 | audit404.md | 审计 | 检测断链并分析模式。不仅发现问题,还会建议修复方法。 |
| ⚡ 性能审计 | auditperf.md | 审计 | 网站速度和优化分析。实话实说。 |
| 📁 文件审计 | auditfiles.md | 审计 | 文件组织和资产分析。发现您网站的构成。 |
| 🌐 Gopher接口 | gopher.md | 接口 | 向昔日的Gopher客户端致敬的老式搜索界面。 |
| ⚙️ 搜索测试 | testsearch.md | 自检 | 一组测试,检查搜索查询解析器中的布尔逻辑不一致以及后续的FTS5转换。 |
如果您想跳过站点选择(少一次查询),在请求中粘贴Markdown并输入“运行粘贴的[站点名称或URL]”。它会自行解决。当没有额外上下文时粘贴,您应该会被提示从已爬取的站点列表中选择。
查询引擎支持字段特定(字段:值)搜索和复杂的布尔表达式。全文搜索支持url、内容和headers字段的组合。
虽然API接口旨在由LLM直接消费,但熟悉搜索语法可能会有所帮助。由LLM生成的搜索是可以检查的,但在UI中通常被折叠。如果您需要查看查询,请展开MCP可折叠部分。
查询示例
| 查询示例 | 描述 |
|---|---|
| privacy | 全文单个关键词匹配 |
| "privacy policy" | 全文精确短语匹配 |
| boundar* | 全文通配符匹配以boundar开头的结果(如boundary、boundaries) |
| id: 12345 | id字段匹配特定ID的资源 |
| url: example.com/somedir | url字段匹配包含example.com/somedir的URL结果 |
| type: html | type字段仅匹配HTML页面 |
| status: 200 | status字段匹配特定HTTP状态码(等于200) |
| status: >=400 | status字段匹配大于或等于400的HTTP状态码 |
| content: h1 | content字段匹配内容(通常是HTTP响应体,但不总是HTML) |
| headers: text/xml | headers字段匹配HTTP响应头 |
| privacy AND policy | 全文匹配两者 |
| privacy OR policy | 全文匹配任一 |
| policy NOT privacy | 全文匹配不含隐私的政策 |
| (login OR signin) AND 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会快速消耗令牌。谨慎使用,或者使用额外选项将更多结果压缩进上下文窗口。字段是顶级参数,独立于查询中的任何字段搜索。
| 字段 | 描述 |
|---|---|
| id | 始终可用 |
| url | 始终可用 |
| type | 始终可用 |
| status | 始终可用 |
| created | 请求时可用 |
| modified | 请求时可用 |
| size | 请求时可用 |
| headers | 请求时可用 |
| content | 请求时可用 |
爬取的数据包含HTML页面以外的资源类型。type:字段搜索允许按广泛的内容类型组进行过滤,特别适用于无需复杂扩展查询即可过滤图像。例如,您可能搜索type: html NOT content: login以找到不含“登录”的页面,或type: img来分析图像资源。下表列出了搜索系统中所有支持的内容类型。
| 类型 | 描述 |
|---|---|
| html | 网页 |
| iframe | iframe |
| img | 网页图像 |
| audio | 网页音频文件 |
| video | 网页视频文件 |
| font | 网页字体文件 |
| style | CSS样式表 |
| script | JavaScript文件 |
| rss | RSS聚合订阅源 |
| text | 纯文本内容 |
| PDF文件 | |
| doc | MS Word文档 |
| other | 未分类 |
extras参数提供了额外的处理选项,可以转换HTTP数据(Markdown、代码片段、正则表达式、XPath),或将LLM连接到外部数据(缩略图)。这些选项可以根据需要组合使用,以实现所需的结果格式。
| 额外选项 | 描述 |
|---|---|
| 缩略图 | 生成供AI模型查看和分析的base64编码图像。使图像描述、内容分析和视觉理解成为可能,同时保持最小的令牌输出。适用于图像,可以通过type: img在查询中过滤。SVG不支持。 |
| Markdown | 将HTML内容字段提供为简洁的Markdown,减少令牌使用量并提高LLM的可读性。适用于HTML,可以通过type: html在查询中过滤。 |
| 正则表达式 | 从爬取的文件(如HTML、CSS、JavaScript等)中提取正则表达式匹配项。对于HTML不如XPath精确,但支持任何文本文件作为数据源。可以请求一个或多个正则表达式模式,使用extrasRegex参数。 |
| 代码片段 | 匹配内容中上下文关键词使用的全文查询。在不请求内容字段(或Markdown额外选项)的情况下使用时,可以作为一种高效的方法来细化搜索,而不必下载完整的页面内容。也适合渲染旧式的高亮显示结果列表,类似于1999年的Google搜索。适用于HTML、CSS、JS或任何基于文本的爬取文件。 |
| XPath | 提取XPath选择器数据,用于刮取HTML内容。使用XPath的text()选择器获取纯文本,元素选择器返回outerHTML。仅支持type: html,其他类型将被忽略。可以请求一个或多个XPath选择器(//h1, count(//h1)等),使用extrasXpath参数。 |
额外选项提供了一种生产令牌高效的HTTP内容响应方式。Markdown产生的字节数约为源HTML的1/3,代码片段一般每个结果约500字节,XPath的选择范围可以从非常具体到非常广泛。您的请求越集中,就能将更多的结果放入您的LLM会话中。
当然,这个想法是让LLM为您处理这一切。如果您注意到您的LLM开始倾向于“内容”字段(完整的HTML),只需在聊天中提示使用额外功能预算令牌即可。
无需AI,只需经典的终端布尔搜索您的网络存档。
mcp-server-webcrawl可以用作您的网络存档的终端搜索。您可以针对本地存档运行它,但当您意识到您可以ssh进入任何远程主机并查看该主机上的存档时,这变得更加有趣。无需下载、同步、多因素登录或其他常见的繁琐操作。借助交互模式,您可以在短时间内进入并搜索位于远程服务器上的爬取数据。
使用--crawler和--datasource启动以立即加载搜索,或在应用程序中设置datasrc和crawler。
mcp-server-webcrawl --crawler wget --datasrc /path/to/datasrc --interactive
# 或手动在UI中输入crawler和datasrc
mcp-server-webcrawl --interactive
交互模式是一种随时、随地在终端中搜索爬取数据的方式。
