Fetch MCP

Fetch MCP

一个 MCP 服务器,使用 Playwright 无头浏览器检索网页内容,能够提取主要内容并转换为 Markdown 格式。

Category
访问服务器

README

<div align="center"> <img src="https://raw.githubusercontent.com/jae-jae/fetcher-mcp/refs/heads/main/icon.svg" width="100" height="100" alt="Fetcher MCP Icon" /> </div>

Fetcher MCP

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

优势

  • JavaScript 支持: 与传统的网页抓取工具不同,Fetcher MCP 使用 Playwright 执行 JavaScript,使其能够处理动态网页内容和现代 Web 应用程序。

  • 智能内容提取: 内置的 Readability 算法自动从网页中提取主要内容,删除广告、导航和其他非必要元素。

  • 灵活的输出格式: 支持 HTML 和 Markdown 两种输出格式,方便与各种下游应用程序集成。

  • 并行处理: fetch_urls 工具支持并发抓取多个 URL,显著提高批量操作的效率。

  • 资源优化: 自动阻止不必要的资源(图像、样式表、字体、媒体),以减少带宽使用并提高性能。

  • 强大的错误处理: 全面的错误处理和日志记录确保即使在处理有问题的网页时也能可靠运行。

  • 可配置的参数: 可以对超时、内容提取和输出格式进行细粒度控制,以适应不同的用例。

快速开始

直接使用 npx 运行:

npx -y fetcher-mcp

首次设置 - 通过在终端中运行以下命令来安装所需的浏览器:

npx playwright install chromium

调试模式

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

npx -y fetcher-mcp --debug

配置 MCP

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

在 MacOS 上:~/Library/Application Support/Claude/claude_desktop_config.json

在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "fetcher": {
      "command": "npx",
      "args": ["-y", "fetcher-mcp"]
    }
  }
}

功能

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

提示

处理特殊网站场景

处理反爬虫机制

  • 等待完全加载: 对于使用 CAPTCHA、重定向或其他验证机制的网站,请在提示中包含:

    请等待页面完全加载
    

    这将使用 waitForNavigation: true 参数。

  • 增加超时时间: 对于加载缓慢的网站:

    请将页面加载超时时间设置为 60 秒
    

    这将相应地调整 timeoutnavigationTimeout 参数。

内容检索调整

  • 保留原始 HTML 结构: 当内容提取可能失败时:

    请保留原始 HTML 内容
    

    设置 extractContent: falsereturnHtml: true

  • 抓取完整的页面内容: 当提取的内容太有限时:

    请抓取完整的网页内容,而不仅仅是主要内容
    

    设置 extractContent: false

  • 以 HTML 格式返回内容: 当需要 HTML 格式而不是默认的 Markdown 时:

    请以 HTML 格式返回内容
    

    设置 returnHtml: true

调试和身份验证

启用调试模式

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

使用自定义 Cookie 进行身份验证

  • 手动登录: 要使用您自己的凭据登录:

    请在调试模式下运行,以便我可以手动登录到网站
    

    设置 debug: true 或使用 --debug 标志,保持浏览器窗口打开以进行手动登录。

  • 与调试浏览器交互: 启用调试模式后:

    1. 浏览器窗口保持打开状态
    2. 您可以使用您的凭据手动登录到网站
    3. 登录完成后,将使用您的已验证会话抓取内容
  • 为特定请求启用调试: 即使服务器已经在运行,您也可以为特定请求启用调试模式:

    请为此身份验证步骤启用调试模式
    

    仅为此特定请求设置 debug: true,打开浏览器窗口以进行手动登录。

开发

安装依赖

npm install

安装 Playwright 浏览器

安装 Playwright 所需的浏览器:

npm run install-browser

构建服务器

npm run build

调试

使用 MCP Inspector 进行调试:

npm run inspector

您还可以启用可见浏览器模式进行调试:

node build/index.js --debug

相关项目

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

许可证

根据 MIT 许可证 授权

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选