使用说明
项目简介
Fetcher MCP 是一个基于 Model Context Protocol (MCP) 构建的服务器,专注于提供网页内容抓取功能。它利用 Playwright headless browser,能够高效、稳定地从网页中提取所需信息,并以结构化的方式提供给 LLM 客户端。
主要功能点
- 网页内容抓取: 通过集成的 Playwright headless browser,能够自动化访问和解析网页。
- 多种抓取选项: 支持设置超时时间、页面加载完成条件、内容提取模式(智能提取或完整HTML)、最大内容长度等,满足不同场景的需求。
- 工具化调用: 以 MCP 工具的形式提供网页抓取能力,LLM 客户端可以通过标准化的 JSON-RPC 协议调用 'fetch_url' 和 'fetch_urls' 工具获取网页内容。
- 易于配置和部署: 服务器配置简单,可以通过命令行参数或默认配置启动。
- 调试模式: 支持调试模式,方便开发者查看浏览器运行状态,排查问题。
安装步骤
- 下载: 访问 https://github.com/everford/fetcher-mcp/releases 下载最新版本的应用程序压缩包。
- 解压: 将下载的压缩包解压到您 желаемый 目录。
- 启动服务器: 打开终端,进入解压后的目录,运行命令 'node src/index.ts' 启动 Fetcher MCP 服务器。您也可以添加 '--debug' 参数以启用调试模式,例如 'node src/index.ts --debug'。
服务器配置
对于 MCP 客户端,您需要配置以下服务器信息以连接到 Fetcher MCP 服务器。以下是一个 JSON 格式的配置示例,请根据您的实际情况进行调整:
{ "servers": [ { "name": "browser-mcp", // 服务器名称,用于在客户端标识和调用 "command": "node", // 启动服务器的命令,这里使用 Node.js 运行脚本 "args": [ // 启动命令的参数 "src/index.ts" // 服务器入口脚本路径 ] } ] }
参数注释:
- 'name': 自定义服务器名称,客户端通过此名称引用该服务器。建议使用 'browser-mcp',与服务器内部配置保持一致。
- 'command': 运行服务器程序的可执行命令。由于服务器是 Node.js 应用,这里设置为 'node'。
- 'args': 传递给 'command' 的参数数组。这里指定了服务器入口文件 'src/index.ts'。如果您需要启用调试模式,可以在 'args' 数组中添加 '--debug' 参数,例如 '["src/index.ts", "--debug"]'。
注意:
- 确保您的运行环境中已安装 Node.js 和 npm。
- 首次运行服务器前,可能需要先在项目目录下执行 'npm install' 安装依赖 (本仓库未提供 'package.json',如果需要可能需要自行创建并安装 '@modelcontextprotocol/sdk' 和 'playwright' 等依赖)。
基本使用方法
Fetcher MCP 服务器提供以下工具供 LLM 客户端调用:
-
'fetch_url': 抓取单个网页内容。
- 参数:
- 'url' (string, 必选): 要抓取的网页 URL。
- 其他可选参数,如 'timeout' (超时时间), 'waitUntil' (页面加载完成条件), 'extractContent' (是否智能提取内容), 'maxLength' (最大内容长度), 'returnHtml' (是否返回 HTML), 'waitForNavigation' (是否等待页面重定向), 'navigationTimeout' (重定向超时时间), 'disableMedia' (是否禁用媒体资源), 'debug' (调试模式)。
- 示例请求 (JSON-RPC 'call_tool' 请求):
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "server_name": "browser-mcp", "tool_call": { "name": "fetch_url", "arguments": { "url": "https://www.example.com", "maxLength": 500 } } }, "id": "123" }
- 参数:
-
'fetch_urls': 批量抓取多个网页内容。
- 参数:
- 'urls' (array of string, 必选): 要抓取的网页 URL 数组。
- 其他可选参数与 'fetch_url' 工具相同,应用于所有 URL 抓取。
- 示例请求 (JSON-RPC 'call_tool' 请求):
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "server_name": "browser-mcp", "tool_call": { "name": "fetch_urls", "arguments": { "urls": ["https://www.example.com", "https://www.wikipedia.org"], "extractContent": false } } }, "id": "456" }
- 参数:
LLM 客户端需要根据 MCP 协议规范,构造 JSON-RPC 请求,调用 'list_tools' 方法获取可用工具列表,然后使用 'call_tool' 方法调用 'fetch_url' 或 'fetch_urls' 工具,并解析服务器返回的 JSON-RPC 响应获取网页内容。
信息
分类
网页与API