使用说明
项目简介
Fetcher MCP 是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于为大型语言模型 (LLM) 提供网页内容抓取功能。它使用 Playwright 无头浏览器,能够处理 JavaScript 渲染的动态网页,并智能提取页面主要内容,支持多种输出格式,旨在弥合 LLM 应用与 Web 数据之间的鸿沟。
主要功能点
- 动态网页抓取: 使用 Playwright 浏览器,可以执行 JavaScript,抓取传统爬虫无法处理的动态网页内容。
- 智能内容提取: 内置 Readability 算法,自动提取网页正文,去除广告、导航等干扰元素。
- 灵活输出格式: 支持 HTML 和 Markdown 两种输出格式,方便集成到不同的 LLM 应用中。
- 批量 URL 抓取: 提供 'fetch_urls' 工具,支持并行抓取多个 URL,提高效率。
- 资源优化: 自动阻止图片、样式表、字体、媒体等非必要资源加载,节省带宽并提升性能。
- 可配置参数: 提供丰富的参数选项,如超时时间、内容提取、输出格式等,满足不同场景需求。
- Debug 模式: 支持 Debug 模式,方便开发者调试和处理需要手动登录的网站。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node 包管理器)。
- 使用 npx 运行: 无需本地安装,可以直接使用 'npx' 命令运行 Fetcher MCP 服务器:
或者,如果需要 Debug 模式,运行:npx -y fetcher-mcpnpx -y fetcher-mcp --debug
服务器配置
要将 Fetcher MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),你需要提供服务器的启动命令。以下是配置示例,你需要根据你的 MCP 客户端的要求进行配置。
MCP 客户端配置示例 (JSON 格式):
{ "mcpServers": { "fetcher": { // 服务器名称,客户端用于标识和调用 "command": "npx", // 启动命令,这里使用 npx "args": ["-y", "fetcher-mcp"] // 命令参数,-y 表示自动确认安装,fetcher-mcp 是要执行的包名 // 如果需要 Debug 模式,args 可以配置为: ["-y", "fetcher-mcp", "--debug"] } } }
配置说明:
- '"fetcher"': 是你为这个 MCP 服务器自定义的名称,在客户端中引用时会用到这个名字。
- '"command": "npx"': 指定用于启动服务器的命令是 'npx'。'npx' 允许你运行 npm 包,而无需全局安装。
- '"args": ["-y", "fetcher-mcp"]': 'npx' 命令的参数。
- '"-y"': 是 'npx' 的参数,表示自动同意安装 'fetcher-mcp' 包及其依赖。
- '"fetcher-mcp"': 是要通过 'npx' 运行的 npm 包名称,也就是 Fetcher MCP 服务器。
- '"--debug"' (可选): 如果需要在 Debug 模式下运行,可以将 '"args"' 配置为 '["-y", "fetcher-mcp", "--debug"]'。
请注意: 具体的配置文件路径和格式可能因 MCP 客户端而异,请参考你使用的 MCP 客户端的文档进行配置。 上述 'claude_desktop_config.json' 路径是针对 Claude Desktop 客户端的示例。
基本使用方法
Fetcher MCP 服务器提供以下两个主要工具 (Tools):
-
'fetch_url': 抓取单个网页内容。
- LLM 客户端可以通过调用 'fetch_url' 工具并提供 'url' 参数来抓取指定网页的内容。
- 可以通过提示词指示 LLM 调整其他参数,例如 'timeout' (超时时间), 'extractContent' (是否提取正文), 'returnHtml' (返回 HTML 格式) 等。
- 例如,在提示词中可以这样指示 LLM 使用该工具: "请使用 fetcher 工具抓取 [URL],并提取网页的主要内容,返回 Markdown 格式。"
-
'fetch_urls': 批量抓取多个网页内容。
- 允许 LLM 客户端一次性抓取多个 URL 的内容,提高批量处理效率。
- 使用方法与 'fetch_url' 类似,但需要提供 'urls' 参数 (URL 数组)。
- 例如,在提示词中可以这样指示 LLM 使用该工具: "请使用 fetcher 工具批量抓取以下 [URL 列表],并分别提取每个网页的主要内容,返回 Markdown 格式。"
提示词技巧:
- 可以通过自然语言提示词来控制工具的参数,例如 "请等待页面完全加载" (对应 'waitForNavigation: true'), "请设置页面加载超时时间为 60 秒" (对应 'timeout: 60000'), "请保留原始 HTML 内容" (对应 'extractContent: false', 'returnHtml: true'), "请以 HTML 格式返回内容" (对应 'returnHtml: true') 等。
- Debug 模式可以用于处理需要手动登录的网站,通过提示词 "请在 debug 模式下运行,以便我可以手动登录网站" 来触发 Debug 模式。
通过合理地配置和使用 Fetcher MCP 服务器,LLM 应用可以方便地获取和利用 Web 数据,扩展其应用场景。
信息
分类
网页与API