使用说明

ScreenshotOne.com MCP服务器是一个基于Model Context Protocol(MCP)的后端应用,它允许AI助手或其他MCP客户端通过标准化的协议调用ScreenshotOne.com服务,实现网页截图、HTML渲染截图、自定义截图参数等功能。

主要功能点

  • 灵活截图: 支持对指定网页URL或直接提供的HTML内容进行截图。
  • 丰富定制: 可自定义截图的视口大小、设备模拟、是否全页截图、通过CSS选择器选择特定元素进行截图。
  • 多种格式: 支持PNG, JPEG, WebP, PDF等多种输出格式。
  • 内容控制: 能够屏蔽广告、追踪器、Cookie横幅,并可注入自定义CSS和JavaScript。
  • 时机控制: 支持控制截图前的等待行为和延迟时间。
  • 云存储集成: 可选择将生成的截图自动上传到Cloudflare存储服务。

安装步骤

  1. 前提条件: 确保您的系统已安装 Node.js (版本 >= 18.x) 和 Git。
  2. 克隆仓库:
    git clone https://github.com/mrgoonie/screenshotone-mcp-server.git
  3. 进入项目目录:
    cd screenshotone-mcp-server
  4. 安装依赖:
    npm install

服务器配置

MCP服务器通常由MCP客户端(如AI助手)进行配置和启动。您需要在MCP客户端的配置文件中添加对此服务器的定义。配置信息通常是一个JSON对象,指定服务器的名称、启动命令及参数、以及使用的传输协议。

请将以下配置片段添加到您的MCP客户端配置文件(例如 '~/.mcp/configs.json' 或客户端指定的其他位置)的 'mcpServers' 部分:

使用 Stdios 传输协议 (适用于CLI或本地客户端)

这种模式下,MCP客户端会启动一个进程来运行服务器。

{
  "mcpServers": {
    "screenshotone": {
      "command": "node",
      "args": [
        "/path/to/screenshotone-mcp-server/dist/index.js",
        "--transport",
        "stdio"
      ],
      "transportType": "stdio",
      "description": "ScreenshotOne.com 网页截图服务",
      "environments": {
         // 在这里配置ScreenshotOne的访问密钥
         "SCREENSHOTONE_ACCESS_KEY": "您的ScreenshotOne API密钥"
         // 如果需要上传到Cloudflare,也在这里配置相关环境变量
         // "CLOUDFLARE_CDN_PROJECT_NAME": "您的Cloudflare R2项目名称",
         // "CLOUDFLARE_CDN_ACCESS_KEY": "您的Cloudflare R2 Access Key ID",
         // "CLOUDFLARE_CDN_SECRET_KEY": "您的Cloudflare R2 Secret Access Key",
         // "CLOUDFLARE_CDN_BUCKET_NAME": "您的Cloudflare R2 Bucket名称",
         // "CLOUDFLARE_CDN_ENDPOINT_URL": "您的Cloudflare R2 Endpoint URL",
         // "CLOUDFLARE_CDN_BASE_URL": "您的Cloudflare R2 Custom Domain URL (可选,用于公共访问)"
      }
    }
  }
}
  • 请替换 '/path/to/screenshotone-mcp-server/dist/index.js' 为您实际安装项目后 'dist/index.js' 文件的绝对路径。
  • 'SCREENSHOTONE_ACCESS_KEY' 是必需的配置,请务必填写您的ScreenshotOne API密钥。
  • 'CLOUDFLARE_CDN_*' 变量仅在您需要将截图上传到Cloudflare R2时需要配置。

使用 Streamable HTTP 传输协议 (适用于网络客户端)

这种模式下,您需要单独启动服务器,然后MCP客户端通过HTTP连接。

  1. 启动HTTP服务器: 在项目目录下运行:

    # 使用默认地址 127.0.0.1:8080/mcp
    npm run dev:server:http
    # 或设置环境变量来自定义地址和端口
    # MCP_HTTP_HOST=0.0.0.0 MCP_HTTP_PORT=3000 npm run dev:server:http
    • 您可以通过设置 'MCP_HTTP_HOST', 'MCP_HTTP_PORT', 'MCP_HTTP_PATH' 环境变量来配置服务器监听的地址、端口和路径。
    • ScreenshotOne访问密钥和Cloudflare上传配置仍需通过环境变量(如 'SCREENSHOTONE_ACCESS_KEY' 等)提供给启动的服务器进程。
  2. 配置MCP客户端:

{
  "mcpServers": {
    "screenshotone": {
      "type": "http",
      "url": "http://localhost:8080/mcp",
      "description": "ScreenshotOne.com 网页截图服务"
      // 注意:HTTP模式下,ScreenshotOne Access Key等配置需要通过环境变量
      // 提供给运行 HTTP 服务器的进程,而不是写在这里。
      // 将敏感信息直接写在客户端配置文件中是不安全的。
    }
  }
}
  • 'url' 必须是您启动的HTTP服务器的实际地址(包括路径)。

基本使用方法

配置并启动服务器后,AI助手等MCP客户端即可通过JSON-RPC调用提供的工具。此服务器目前主要提供一个名为 'take_screenshot' 的工具。

AI助手在需要执行截图操作时,会调用这个 'take_screenshot' 工具,并传入相应的参数。例如,指定需要截图的网页URL:

  • 调用工具名称:'take_screenshot'
  • 传递参数:例如 '{ "url": "https://example.com", "format": "png", "full_page": true, "access_key": "您的API密钥" }'

AI助手将根据您提供的参数调用ScreenshotOne API执行截图,并将结果(如base64编码的图片数据、上传后的公共URL或JSON元数据)返回给客户端。

具体支持的工具参数和详细描述,客户端可以在连接服务器后,通过MCP协议的服务能力声明('capabilities')获取。

信息

分类

网页与API