项目简介
Fetcher MCP 是一个基于 Model Context Protocol (MCP) 构建的应用后端,它利用 Playwright 无头浏览器技术,专门用于获取指定网页的内容。通过实现 MCP 标准,它可以作为大型语言模型(LLM)或其他兼容客户端的上下文服务器,提供强大的网页访问和信息提取能力。
主要功能点
- 网页内容抓取: 能够根据提供的URL访问网页,获取页面的完整HTML或处理后的内容。
- Playwright集成: 利用 Playwright 的能力,可以处理复杂的现代网页,包括执行JavaScript、等待元素加载等。
- 智能内容提取: 支持使用 Readability 等算法智能提取网页的主要文本内容,忽略导航、广告等无关信息。
- 格式转换: 可以将获取到的HTML内容转换为Markdown格式,方便LLM处理。
- 多URL支持: 提供工具一次性抓取多个URL的内容,并将结果整合返回。
- 灵活配置: 支持配置超时时间、等待条件(如页面加载完成、网络空闲)、是否禁用媒体资源等。
- 可选的导航等待: 支持在页面加载后等待额外的导航(例如处理某些网站的反机器人验证跳转)。
安装步骤
最简单的安装方式是下载项目的发布版本:
- 访问 GitHub 仓库的 Releases 页面。
- 下载最新版本的 Fetcher MCP 服务器可执行文件(具体文件名可能因操作系统和发布版本而异)。
- 将下载的文件解压到你选择的目录。
服务器配置
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 主要提供了两个工具:
-
'fetch_url': 用于获取单个URL的内容。
- 输入参数:
- 'url' (字符串, 必需): 要抓取的网页地址。
- 其他可选参数(如 timeout, waitUntil, extractContent, maxLength, returnHtml, waitForNavigation, navigationTimeout, disableMedia, debug)可以控制抓取行为。
- 输出: 包含抓取到的网页标题、URL以及处理后的内容(通常是Markdown格式文本)。
- 输入参数:
-
'fetch_urls': 用于获取多个URL的内容。
- 输入参数:
- 'urls' (字符串数组, 必需): 要抓取的网页地址列表。
- 其他可选参数与 'fetch_url' 相同,应用于列表中的每个URL。
- 输出: 包含抓取到的多个网页内容,每个网页内容会用标识符(如 '[webpage 1 begin]...[webpage 1 end]')分隔和标注。
- 输入参数:
MCP客户端会构建 JSON-RPC 请求来调用这些工具,Fetcher MCP 服务器执行相应的操作并返回结果。最终,这些抓取到的内容会被客户端(如LLM)用于生成回复或执行其他任务。
信息
分类
网页与API