项目简介

Fetcher MCP 是一个基于 Model Context Protocol (MCP) 构建的应用后端,它利用 Playwright 无头浏览器技术,专门用于获取指定网页的内容。通过实现 MCP 标准,它可以作为大型语言模型(LLM)或其他兼容客户端的上下文服务器,提供强大的网页访问和信息提取能力。

主要功能点

  • 网页内容抓取: 能够根据提供的URL访问网页,获取页面的完整HTML或处理后的内容。
  • Playwright集成: 利用 Playwright 的能力,可以处理复杂的现代网页,包括执行JavaScript、等待元素加载等。
  • 智能内容提取: 支持使用 Readability 等算法智能提取网页的主要文本内容,忽略导航、广告等无关信息。
  • 格式转换: 可以将获取到的HTML内容转换为Markdown格式,方便LLM处理。
  • 多URL支持: 提供工具一次性抓取多个URL的内容,并将结果整合返回。
  • 灵活配置: 支持配置超时时间、等待条件(如页面加载完成、网络空闲)、是否禁用媒体资源等。
  • 可选的导航等待: 支持在页面加载后等待额外的导航(例如处理某些网站的反机器人验证跳转)。

安装步骤

最简单的安装方式是下载项目的发布版本:

  1. 访问 GitHub 仓库的 Releases 页面。
  2. 下载最新版本的 Fetcher MCP 服务器可执行文件(具体文件名可能因操作系统和发布版本而异)。
  3. 将下载的文件解压到你选择的目录。

服务器配置

MCP客户端需要通过 JSON 格式的配置来启动并连接 Fetcher MCP 服务器。以下是一个标准的配置结构说明,你需要根据你的实际安装路径和启动方式来填写:

{
  "name": "browser-mcp",
  "command": "在此填写Fetcher MCP服务器可执行文件的路径",
  "args": ["可选参数,例如 --debug 开启调试模式"],
  "transport": "stdio" // 表示使用标准的输入输出流进行通信
}
  • 'name': MCP服务器的内部名称,通常是 'browser-mcp'。
  • 'command': 指向你下载并解压的 Fetcher MCP 服务器可执行文件的完整路径。
  • 'args': 一个字符串数组,包含启动服务器时需要传递的命令行参数。例如,可以包含 '--debug' 来启用调试模式(会显示Playwright浏览器窗口)。
  • 'transport': 指定通信协议,Fetcher MCP 服务器默认使用 'stdio'。

请将此配置提供给你的MCP客户端(如 LLM 应用程序)以便其能够启动并连接到 Fetcher MCP。

基本使用方法

一旦MCP客户端成功连接到 Fetcher MCP 服务器,它就可以调用服务器提供的工具(Tools)。Fetcher MCP 主要提供了两个工具:

  1. 'fetch_url': 用于获取单个URL的内容。

    • 输入参数:
      • 'url' (字符串, 必需): 要抓取的网页地址。
      • 其他可选参数(如 timeout, waitUntil, extractContent, maxLength, returnHtml, waitForNavigation, navigationTimeout, disableMedia, debug)可以控制抓取行为。
    • 输出: 包含抓取到的网页标题、URL以及处理后的内容(通常是Markdown格式文本)。
  2. 'fetch_urls': 用于获取多个URL的内容。

    • 输入参数:
      • 'urls' (字符串数组, 必需): 要抓取的网页地址列表。
      • 其他可选参数与 'fetch_url' 相同,应用于列表中的每个URL。
    • 输出: 包含抓取到的多个网页内容,每个网页内容会用标识符(如 '[webpage 1 begin]...[webpage 1 end]')分隔和标注。

MCP客户端会构建 JSON-RPC 请求来调用这些工具,Fetcher MCP 服务器执行相应的操作并返回结果。最终,这些抓取到的内容会被客户端(如LLM)用于生成回复或执行其他任务。

信息

分类

网页与API