使用说明

项目简介

Fetcher MCP 是一个基于 Model Context Protocol (MCP) 构建的服务器,专注于提供网页内容抓取功能。它利用 Playwright headless browser,能够高效、稳定地从网页中提取所需信息,并以结构化的方式提供给 LLM 客户端。

主要功能点

  • 网页内容抓取: 通过集成的 Playwright headless browser,能够自动化访问和解析网页。
  • 多种抓取选项: 支持设置超时时间、页面加载完成条件、内容提取模式(智能提取或完整HTML)、最大内容长度等,满足不同场景的需求。
  • 工具化调用: 以 MCP 工具的形式提供网页抓取能力,LLM 客户端可以通过标准化的 JSON-RPC 协议调用 'fetch_url' 和 'fetch_urls' 工具获取网页内容。
  • 易于配置和部署: 服务器配置简单,可以通过命令行参数或默认配置启动。
  • 调试模式: 支持调试模式,方便开发者查看浏览器运行状态,排查问题。

安装步骤

  1. 下载: 访问 https://github.com/everford/fetcher-mcp/releases 下载最新版本的应用程序压缩包。
  2. 解压: 将下载的压缩包解压到您 желаемый 目录。
  3. 启动服务器: 打开终端,进入解压后的目录,运行命令 '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 客户端调用:

  1. '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"
      }
  2. '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