返回市场
站点克隆器

站点克隆器

作者:SarthakMishra2 星标更新:2025-04-19

项目介绍

Site Cloner MCP Server

这是一个设计用于帮助大型语言模型(如Claude)通过提供抓取、分析和下载网站资源工具来克隆网站的MCP(模型上下文协议)服务器。

功能

  • 从任何URL抓取HTML内容
  • 从HTML内容中提取资源(CSS、JavaScript、图片、字体等)
  • 将单个资源下载到本地目录
  • 解析CSS文件以提取链接资源(字体、图片)
  • 创建网站的站点地图
  • 分析页面结构和布局

要求

  • 系统上安装了Docker

使用方法

使用Docker运行

  1. 构建Docker镜像:

    docker build -t site-cloner-mcp .
    
  2. 运行容器:

    docker run -i --rm site-cloner-mcp
    

为了持久存储下载的文件,你可以挂载一个卷:

docker run -i --rm -v $(pwd)/downloaded_sites:/app/downloaded_site site-cloner-mcp

连接到Cursor

要在Cursor中设置此MCP服务器,有两个选项:

1. 项目特定配置

在你的项目根目录下创建一个.cursor/mcp.json文件,内容如下:

{
  "mcpServers": {
    "site-cloner": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "site-cloner-mcp"
      ]
    }
  }
}

2. 全局配置

要使MCP服务器在Cursor中全局可用,可以通过进入Cursor 设置MCP添加新的全局MCP服务器来添加以下配置:

{
  "mcpServers": {
    "site-cloner": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "site-cloner-mcp"
      ]
    }
  }
}

可用工具

1. fetch_page

抓取网页的HTML内容。

参数:
    url: 要抓取的网页的URL

2. extract_assets

从HTML内容中提取资源链接。

参数:
    url: 网页的URL(用于解析相对URL)
    html_content: 要解析的HTML内容

3. download_asset

从URL下载资源并保存到指定目录。

参数:
    url: 要下载的资源的URL
    output_dir: 保存资源的目录(默认:downloaded_site)

4. parse_css_for_assets

解析CSS内容以提取引用资源(如字体和图片)的URL。

参数:
    css_url: CSS文件的URL(用于解析相对URL)
    css_content: 要解析的CSS内容(如果为None,则会从css_url获取)

5. create_site_map

从给定的URL开始创建网站的站点地图。

参数:
    url: 开始爬取的URL
    max_depth: 最大爬取深度(默认:1)

6. analyze_page_structure

分析HTML页面的结构并提取关键组件。

参数:
    html_content: 要分析的HTML内容

示例使用与Claude

  1. 请求Claude克隆一个网站:"请克隆example.com网站"
  2. Claude将使用可用工具进行:
    • 抓取HTML内容
    • 提取资源
    • 下载必要的文件
    • 分析结构
    • 创建网站的本地副本

故障排除

服务器未显示在Cursor中

  1. 重新启动Cursor
  2. 检查配置文件语法
  3. 确保正确安装并运行Docker:docker --version
  4. 查看Cursor的MCP日志中的错误:
    • 输出 → 从下拉菜单选择Cursor MCP
  5. 尝试手动运行服务器查看任何错误:
    docker run -i --rm site-cloner-mcp
    

模块未找到错误

如果你遇到“ModuleNotFoundError: 没有名为'site_cloner'的模块”错误:

  1. 检查pyproject.toml中的包名是否正确
  2. 确保Python文件中的导入语句不包含"src."前缀
  3. 在更改后重建Docker镜像:
    docker build --no-cache -t site-cloner-mcp .
    

检查Docker日志

要检查Docker日志中的任何错误:

docker logs $(docker ps -q --filter ancestor=site-cloner-mcp)

注意事项

  • 服务器会根据内容类型(html、css、js、图片、字体、视频、其他)自动组织下载的资源到子目录
  • 克隆网站时,请注意版权和服务条款限制
  • 一些网站可能会阻止自动化请求,在这种情况下,你可能需要调整代码中的用户代理字符串