SuperAPI AI 工具集

fetcher-mcp

fetcher-mcp 是一个基于 Playwright 无头浏览器的 MCP 服务器,用于抓取网页内容。它支持 JavaScript 渲染,能处理动态网页和现代 Web 应用;内置 Readability 算法可自动提取正文,去除广告和导航等非必要元素;支持 Markdown 或 HTML 输出,并提供并发批量抓取、资源优化、错误处理和可配置参数。用户可通过 npx 直接运行,也支持 HTTP 和 SSE 传输、Docker 部署,以及配置到 Claude Desktop 等 MCP 客户端中。

访问官网

工具介绍

fetcher-mcp 是一个 MCP(Model Context Protocol)服务器,通过 Playwright 无头浏览器获取网页内容。它主要面向需要将网页抓取能力集成到 AI 客户端或自动化流程中的用户。

用途

该工具用于抓取网页内容,尤其适合处理依赖 JavaScript 渲染的动态页面和现代 Web 应用。与传统的网页抓取器不同,它使用 Playwright 执行 JavaScript,因此可以获取动态生成的内容。

主要能力

  • JavaScript 支持:使用 Playwright 执行 JavaScript,处理动态网页内容。
  • 智能内容提取:内置 Readability 算法,自动提取网页正文,移除广告、导航等非必要元素。
  • 灵活输出格式:支持 HTML 和 Markdown 两种输出格式,便于集成到下游应用。
  • 并行处理:fetch_urls 工具支持并发抓取多个 URL,提升批量操作效率。
  • 资源优化:自动屏蔽不必要的资源(图片、样式表、字体、媒体),减少带宽占用并提升性能。
  • 健壮的错误处理:提供全面的错误处理与日志记录。
  • 可配置参数:可对超时、内容提取和输出格式进行细粒度控制。

使用方式

通过 npx 直接运行

首次设置需安装所需浏览器,在终端中运行相应命令。

HTTP 和 SSE 传输

使用 --transport=http 参数可同时启动 Streamable HTTP 端点和 SSE 端点。启动后服务器提供以下端点:

  • /mcp - Streamable HTTP 端点(现代 MCP 协议)
  • /sse - SSE 端点(旧版 MCP 协议)

客户端可根据需要选择连接方式。

使用 --debug 选项可显示浏览器窗口以进行调试。

配置 MCP

在 Claude Desktop 中配置此 MCP 服务器:

  • MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%/Claude/claude_desktop_config.json

Docker 部署

支持使用 Docker 运行,也可使用 Docker Compose 部署(需创建 docker-compose.yml 文件)。

工具与参数

fetch_url

从指定 URL 获取网页内容。使用 Playwright 无头浏览器解析 JavaScript,支持智能提取正文并转换为 Markdown。参数包括:

  • url:要抓取的网页 URL(必填)
  • timeout:页面加载超时(毫秒),默认 30000(30 秒)
  • waitUntil:导航完成时机,可选 'load'、'domcontentloaded'、'networkidle'、'commit',默认 'load'
  • extractContent:是否智能提取正文,默认 true
  • maxLength:返回内容最大长度(字符),默认无限制
  • returnHtml:是否返回 HTML 而非 Markdown,默认 false
  • waitForNavigation:是否在初始页面加载后等待额外导航(适用于有反机器人验证的站点),默认 false
  • navigationTimeout:等待额外导航的最大时间(毫秒),默认 10000(10 秒)
  • disableMedia:是否禁用媒体资源(图片、样式表、字体、媒体),默认 true
  • debug:是否启用调试模式(显示浏览器窗口),若指定则覆盖 --debug 命令行标志

fetch_urls

并行批量获取多个 URL 的网页内容。使用多标签页并行抓取提升性能,返回合并结果并清晰分隔各网页。参数包括:urls(要抓取的 URL 数组,必填),其他参数与 fetch_url 相同。

browser_install

自动安装 Playwright Chromium 浏览器二进制文件。当浏览器不可用时安装所需的 Chromium 二进制文件,出现浏览器安装错误时会自动建议。参数包括:withDeps(安装 Chromium 所需的系统依赖,默认 false)、force(即使已安装 Chromium 也强制安装,默认 false)。

特殊网站场景处理

  • 等待完整加载:对于使用 CAPTCHA、重定向或其他验证机制的网站,可在提示中加入“请等待页面完全加载”,将使用 waitForNavigation: true 参数。
  • 增加超时时间:对于加载缓慢的网站,可设置页面加载超时为 60 秒,相应调整 timeout 和 navigationTimeout 参数。
  • 保留原始 HTML 结构:当内容提取可能失败时,可保留原始 HTML 内容,设置 extractContent: false 和 returnHtml: true。
  • 抓取完整页面内容:当提取内容过少时,可抓取完整网页内容而非仅正文,设置 extractContent: false。
  • 返回 HTML 格式:需要 HTML 格式而非默认 Markdown 时,设置 returnHtml: true。

调试与认证

  • 动态调试激活:在特定抓取操作中显示浏览器窗口,可设置 debug: true,即使服务器启动时未使用 --debug。
  • 手动登录:使用自己的凭据登录时,可在调试模式下运行,设置 debug: true 或使用 --debug 标志,保持浏览器窗口打开以手动登录。
  • 与调试浏览器交互:启用调试模式后,浏览器窗口保持打开,可手动登录网站,登录完成后将使用已认证会话抓取内容。
  • 为特定请求启用调试:即使服务器已运行,也可为特定请求启用调试模式,设置 debug: true 仅对该请求打开浏览器窗口进行手动登录。

安装与构建

  • 安装依赖
  • 安装 Playwright 浏览器
  • 构建服务器
  • 使用 MCP Inspector 进行调试
  • 也可启用可见浏览器模式进行调试

相关项目

g-search-mcp:一个用于 Google 搜索的 MCP 服务器,支持多关键词并行搜索,适合批量搜索和数据收集。

本项目采用 MIT 许可证。

限制

资料未提供具体的性能指标、抓取成功率、兼容的 MCP 客户端完整列表或价格信息。