项目简介

Website Downloader MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,它提供了一个名为 'download_website' 的工具,允许大型语言模型(LLM)客户端通过调用该工具,使用 'wget' 命令下载整个网站到本地。下载的网站会保留原始结构,并将链接转换为本地可用,方便用户离线浏览网站内容。

主要功能点

  • 网站下载工具: 提供 'download_website' 工具,LLM客户端可以调用此工具下载指定URL的网站。
  • 可配置下载参数: 支持配置下载的URL、输出路径和递归深度,满足不同的下载需求。
  • 本地链接转换: 下载的网站页面中的链接会自动转换为本地链接,确保离线浏览体验。
  • 资源完整下载: 下载包括页面所需的 CSS、图片等所有资源,保证网站显示完整性。
  • 同域限制: 下载限制在同一域名下,避免爬取超出范围的网站内容。

安装步骤

  1. 安装 wget: 确保你的系统上已经安装了 'wget' 工具。根据你的操作系统,参考仓库 'README.md' 中的安装指南进行安装。
  2. 安装 Node.js 依赖: 克隆或下载该仓库代码到本地后,在项目根目录下打开终端,运行以下命令安装项目依赖:
    npm install
  3. 构建项目: 运行以下命令构建项目,生成可执行的 JavaScript 文件:
    npm run build

服务器配置

为了让 MCP 客户端能够连接到 Website Downloader MCP Server,需要在 MCP 客户端的配置中添加以下服务器信息。以下是一个 JSON 格式的配置示例,你需要根据你的实际情况修改路径:

{
  "mcpServers": {
    "website-downloader": {  // 服务器名称,客户端使用此名称引用
      "command": "node",  // 启动服务器的命令,这里使用 Node.js 运行 JavaScript
      "args": ["/path/to/website-downloader/build/index.js"] // 启动命令的参数,指向构建后的服务器入口文件。请将 "/path/to/website-downloader" 替换为你的 Website Downloader 项目的实际路径
    }
  }
}

注意:

  • '"server name"': 'website-downloader' 是你在 MCP 客户端中引用此服务器的名称,可以自定义。
  • '"command"': 通常为 '"node"',表示使用 Node.js 运行时环境。
  • '"args"': 是一个字符串数组,包含了运行服务器入口文件所需的参数。你需要将 '/path/to/website-downloader/build/index.js' 替换为 你本地 Website Downloader 项目 'build/index.js' 文件的绝对路径。例如,如果你的项目放在 '/Users/yourname/website-downloader' 目录下,那么 'args' 应该配置为 '["/Users/yourname/website-downloader/build/index.js"]'。

将上述配置添加到你的 MCP 客户端的服务器配置中,客户端就可以发现并连接到 Website Downloader MCP Server 了。

基本使用方法

  1. 启动服务器: 在 Website Downloader 项目根目录下,无需手动启动服务器。当 MCP 客户端尝试连接并调用 'website-downloader' 服务器时,客户端会根据配置自动启动服务器。

  2. 调用 'download_website' 工具: 在你的 LLM 应用或 MCP 客户端中,可以使用以下 JSON-RPC 请求来调用 'download_website' 工具以下载网站。你需要替换 'url' 参数为你想要下载的网站地址,'outputPath' 和 'depth' 参数是可选的。

    {
      "jsonrpc": "2.0",
      "method": "call_tool",
      "params": {
        "server": "website-downloader", //  在 MCP 客户端配置中定义的服务器名称
        "name": "download_website",    //  工具名称
        "arguments": {
          "url": "https://example.com",  //  要下载的网站 URL,必填
          "outputPath": "/path/to/save/website", //  网站保存的本地路径,可选,默认为当前目录
          "depth": 1                      //  下载深度,可选,默认为无限深度。 0 表示只下载指定的页面,1 表示下载直接链接的页面,以此类推
        }
      },
      "id": "123" // 请求ID,由客户端生成
    }

    服务器执行成功后,会返回包含下载结果的 JSON-RPC 响应。如果下载过程中出现错误,响应会包含错误信息。下载的网站内容将保存在你指定的 'outputPath' 目录下。

信息

分类

网页与API