mcpField
C
CurlShot

CurlShot

远程服务
curlshot.com浏览器自动化04 天前更新

关于 CurlShot

CurlShot 是托管式 MCP 服务,可将公开网页捕获为图像、PDF 或滚动视频。它适用于需要网页视觉截取、但不希望安装服务端的 AI Agent 和 MCP 客户端。

主要功能

  1. 01将页面捕获为 PNG、JPEG、WebP 或 PDF
  2. 02录制页面滚动视频
  3. 03捕获整页或 CSS 选定元素
  4. 04设置设备预设和视口尺寸
  5. 05支持深色模式和请求缓存

适用场景

  1. 01为 Agent 捕获公开网页以供查看
  2. 02保存整页截图或指定页面元素
  3. 03录制页面从上到下滚动过程

MCP 相关

CurlShot 通过流式 HTTP 托管 MCP 端点提供 `take_screenshot` 和 `list_devices` 工具。截图请求需要 Bearer API 密钥,设备预设列表无需密钥。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://curlshot.com/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://curlshot.com/api/mcp需要授权

工具

2
参数类型必填说明
urlstring是页面的完整地址,以 http:// 或 https:// 开头。
cacheboolean否如果之前执行过相同请求,则重用已存储的副本。
delaynumber否页面加载后额外等待的秒数。
formatenum否结果的文件格式。mp4、webm 和 gif 会录制页面从顶部到底部滚动的视频。png | jpeg | webp | pdf | mp4 | webm | gif
selectorstring否仅捕获与此 CSS 选择器匹配的第一个元素。
block_adsboolean否阻止向广告网络发送请求。
dark_modeboolean否请求页面使用深色主题。
full_pageboolean否捕获整个页面,而不仅是首屏。
wait_untilenum否用于标记页面已加载的页面事件。load | domcontentloaded | networkidle | commit
viewport_widthinteger否浏览器窗口的宽度,单位为像素。
viewport_deviceenum否模拟设备预设(参见 list_devices)。iphone_se | iphone_12 | iphone_13 | iphone_13_mini | iphone_14 | iphone_14_plus | iphone_14_pro | iphone_14_pro_max | iphone_15 | iphone_15_plus | iphone_15_pro | iphone_15_pro_max | iphone_16 | iphone_16_plus | iphone_16_pro | iphone_16_pro_max | pixel_5 | pixel_7 | pixel_8 | pixel_8_pro | pixel_9 | pixel_9_pro | galaxy_s23 | galaxy_s24 | galaxy_s24_ultra | galaxy_a54 | ipad | ipad_mini | ipad_air | ipad_pro_11 | ipad_pro_13 | galaxy_tab_s9 | pixel_tablet | macbook_air_13 | macbook_pro_14 | macbook_pro_16 | laptop_hd | laptop_hidpi | desktop_hd | desktop_full_hd | desktop_qhd | desktop_4k | imac_24
viewport_heightinteger否浏览器窗口的高度,单位为像素。
block_cookie_bannersboolean否隐藏 Cookie 同意横幅。

详细介绍

CurlShot MCP 服务

让你的 AI Agent 为网页截图。CurlShot 运行着一个托管的 Model Context Protocol 服务,因此无需安装任何内容:将 MCP 客户端指向该端点并添加 API 密钥即可。

https://curlshot.com/api/mcp
  • **传输方式:**可流式传输的 HTTP(通过 POST 传输 JSON-RPC 2.0)。该服务是无状态的,因此 GET 请求会返回 405。
  • 身份验证:Authorization: Bearer YOUR_API_KEY
  • 协议版本:2025-06-18、2025-03-26、2024-11-05

此仓库包含文档、server.json 清单(MCP Registry 格式)和许可证。服务本身运行在 curlshot.com。

工具

工具功能是否需要密钥
take_screenshot渲染公开网页,并以图片、PDF 或页面滚动视频的形式返回。每次成功调用都会消耗配额中的一次截图额度。命中缓存和渲染失败不收费。是
list_devices列出 take_screenshot 在 viewport_device 中接受的设备预设(手机、平板、桌面设备)。否

take_screenshot 参数:

参数含义
url(必填)网页的完整地址,以 http:// 或 https:// 开头。
formatpng、jpeg(默认)、webp、pdf、mp4、webm 或 gif。在包含视频功能的套餐中,视频格式会录制页面从顶部滚动到底部的过程。
full_page捕获整个页面,而不仅是首屏。
viewport_device设备预设,例如 iphone_15_pro(参见 list_devices)。
viewport_width、viewport_height浏览器窗口的像素尺寸(默认值为 1280 x 1024)。
dark_mode请求网页使用深色主题。
block_ads、block_cookie_banners默认启用。
selector仅捕获与此 CSS 选择器匹配的第一个元素。
wait_until、delay页面何时视为已加载,以及额外等待的秒数。
cache重用相同请求的缓存副本。

较小的结果会以内嵌图片的形式返回,模型可以直接查看。超过 6 MB 的结果会以下载链接形式返回,链接约一天后失效。

获取 API 密钥

  1. 在 curlshot.com/register 注册。免费套餐每月包含 100 次截图,无需信用卡。
  2. 在控制面板中为你的 Agent 创建单独的 API 密钥,以便单独撤销。
  3. 为该密钥关闭 Require signature。MCP 调用不会签名。

将密钥保存在客户端配置中,而不是提示词里。以下示例使用 YOUR_API_KEY 作为占位符。

客户端配置

Claude Code
claude mcp add --transport http curlshot https://curlshot.com/api/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

也可以将其作为 Claude Code 插件安装(包含 MCP 服务和 Agent 技能)。请先在环境中设置 CURLSHOT_API_KEY;插件会将其作为 bearer token 发送:

/plugin install curlshot --marketplace SergiuPogor/curlshot-mcp
Claude Desktop

Claude Desktop 会从配置文件启动本地(stdio)服务,因此请通过 mcp-remote 代理进行连接。编辑 claude_desktop_config.json(Settings → Developer → Edit Config):

{
  "mcpServers": {
    "curlshot": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://curlshot.com/api/mcp",
        "--transport",
        "http-only",
        "--header",
        "Authorization: Bearer YOUR_API_KEY"
      ]
    }
  }
}

保存后重启 Claude Desktop。此操作需要 Node.js。

Cursor

添加到 ~/.cursor/mcp.json(所有项目)或 .cursor/mcp.json(单个项目):

{
  "mcpServers": {
    "curlshot": {
      "url": "https://curlshot.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
VS Code(GitHub Copilot)

添加到 .vscode/mcp.json。VS Code 会询问一次密钥并安全保存:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "curlshot-api-key",
      "description": "CurlShot API key",
      "password": true
    }
  ],
  "servers": {
    "curlshot": {
      "type": "http",
      "url": "https://curlshot.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:curlshot-api-key}"
      }
    }
  }
}
Gemini CLI

此仓库也是一个 Gemini CLI 扩展。安装后按提示输入 API 密钥:

gemini extensions install https://github.com/SergiuPogor/curlshot-mcp

密钥会保存为 CURLSHOT_API_KEY 设置,并以 Authorization: Bearer ... 的形式发送。

Agent 技能(无需 MCP)

对于使用 Agent Skills 而非 MCP 的 Agent,skills/curlshot/SKILL.md 会指导 Agent 使用 curl 直接调用 HTTP API,并从 CURLSHOT_API_KEY 读取密钥:

npx skills add SergiuPogor/curlshot-mcp
其他客户端

任何支持通过可流式 HTTP 使用远程服务的客户端都可以使用。大多数客户端支持类似这样的配置:

{
  "mcpServers": {
    "curlshot": {
      "type": "http",
      "url": "https://curlshot.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

只能启动本地服务的客户端可以使用为 Claude Desktop 展示的 mcp-remote 命令。

使用 curl 试用

curl -X POST "https://curlshot.com/api/mcp" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "take_screenshot",
      "arguments": { "url": "https://example.com", "format": "webp" }
    }
  }'

限制与定价

  • 免费套餐:每月 100 张截图,无需银行卡。付费套餐起价为每月 $19。请参阅定价。
  • 仅成功渲染的结果计入用量。缓存命中和渲染失败均免费。
  • MCP 端点每个 IP 地址每分钟最多接受 120 个请求,此限制与套餐本身的限制分开计算。
  • 达到月度限额后,工具会返回带有升级链接的错误,而不是图片。

链接

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。