fetcher-mcp

查看源码
2025-5-12
Words 1451Read Time 4 min
Score:92

基于Playwright的无头浏览器MCP服务器,支持动态网页内容抓取和智能提取,输出HTML或Markdown格式。

TypeScript

Fetcher MCP

基于 Playwright 无头浏览器的网页内容抓取 MCP 服务器。

优势特性

  • JavaScript 支持:与传统网页抓取工具不同,Fetcher MCP 使用 Playwright 执行 JavaScript,能够处理动态网页内容和现代 Web 应用。
  • 智能内容提取:内置 Readability 算法,自动提取网页主要内容,去除广告、导航栏等非必要元素。
  • 灵活输出格式:支持 HTML 和 Markdown 两种输出格式,便于与各种下游应用集成。
  • 并行处理fetch_urls 工具支持并发抓取多个 URL,显著提升批量操作效率。
  • 资源优化:自动屏蔽非必要资源(图片、样式表、字体、媒体文件),减少带宽占用,提高性能。
  • 健壮的错误处理:全面的错误处理和日志记录,确保在处理问题网页时仍能可靠运行。
  • 可配置参数:提供细粒度的超时、内容提取和输出格式控制,适应不同使用场景。

快速开始

使用 npx 直接运行:
首次设置 - 在终端中运行以下命令安装所需浏览器:

调试模式

使用 --debug 选项运行,显示浏览器窗口用于调试:

MCP 配置

在 Claude Desktop 中配置此 MCP 服务器:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

功能特性

  • 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 相同

使用技巧

处理特殊网站场景

应对反爬虫机制

  • 等待完全加载:对于使用验证码、重定向或其他验证机制的网站,可在提示中包含:
    • 这将使用 waitForNavigation: true 参数。
  • 增加超时时间:对于加载缓慢的网站:
    • 这将相应调整 timeoutnavigationTimeout 参数。

内容获取调整

  • 保留原始 HTML 结构:当内容提取可能失败时:
    • 设置 extractContent: falsereturnHtml: true
  • 获取完整页面内容:当提取内容过于有限时:
    • 设置 extractContent: false
  • 返回 HTML 格式内容:当需要 HTML 格式而非默认的 Markdown 时:
    • 设置 returnHtml: true

调试与认证

启用调试模式

  • 动态调试激活:在特定抓取操作期间显示浏览器窗口:
    • 即使服务器启动时未使用 --debug 标志,也会设置 debug: true

使用自定义 Cookie 进行认证

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

开发指南

安装依赖

安装 Playwright 浏览器

安装 Playwright 所需的浏览器:

构建服务器

调试

使用 MCP Inspector 进行调试:
也可以启用可见浏览器模式进行调试:

相关项目

  • g-search-mcp:强大的 Google 搜索 MCP 服务器,支持同时使用多个关键词进行并行搜索。非常适合批量搜索操作和数据收集。

许可证

基于 MIT 许可证 授权
上一篇
macPilotCli
下一篇
mcp