Screenshot Scout
官方使用 Screenshot Scout 将网页截图保存为图片或 PDF。
你可以用 Screenshot Scout MCP 做什么?
- 整页或视口截图 — 通过
capture_screenshot获取任意 URL 的 PNG、JPEG、WebP、GIF、TIFF 或 PDF 格式截图,并支持可选的fullPage模式。 - 元素与交互控制 — 定位特定的
selector,使用hideSelectors隐藏元素,通过clickSelectors点击元素,并屏蔽 Cookie 横幅、广告或聊天组件。 - 设备与位置模拟 — 指定
device、视口尺寸、country和colorScheme(深色/浅色)以模拟不同的浏览环境。 - 带布局选项的 PDF 生成 — 使用
pdfPaperFormat、pdfLandscape、pdfPrintBackground、自定义边距及pdfScale创建适合打印的 PDF 文档。 - 输出尺寸调整与质量优化 — 调整
imageWidth、imageHeight和imageQuality(适用于 JPEG/WebP)以控制文件大小和分辨率。 - 缓存与结果交付 — 启用带
cacheTtl的cache,并选择resultMode以仅获取内联图片或临时 URL。
文档
Screenshot Scout MCP 服务器
在 MCP 客户端中使用 Screenshot Scout 将 HTTP 或 HTTPS 网页捕获为图片或 PDF。
此服务器公开一个工具:capture_screenshot。它支持整页和元素捕获、设备和视口控制、位置选择、页面交互和拦截选项、图片尺寸和质量、PDF 布局、缓存、临时结果 URL 以及符合条件的 MCP 图片内容。
你需要准备
- 一个 Screenshot Scout 账户 以及来自 API 密钥页面 的访问密钥。
- 用于 npm/stdio 安装的 Node.js 22 或更高版本。Claude Desktop 的 MCPB 运行时由 Claude 捆绑提供。
- 仅当所选 API 密钥要求签名 Screenshot Scout 请求时才需要可选的秘密密钥。
每次捕获都使用你的 Screenshot Scout 账户,并受其套餐、配额和速率限制的约束。
通过 npm 使用本地 stdio
从以下本地 stdio 配置开始:
{
"mcpServers": {
"screenshotscout": {
"command": "npx",
"args": ["-y", "@screenshotscout/mcp"],
"env": {
"SCREENSHOTSCOUT_ACCESS_KEY": "YOUR_ACCESS_KEY"
}
}
}
}
如果访问密钥需要请求签名,请在本地添加秘密密钥:
"SCREENSHOTSCOUT_SECRET_KEY": "YOUR_SECRET_KEY"
请勿将个人配置文件纳入版本控制。凭据是进程环境值,而非工具参数。有关 Claude Desktop、Claude Code、Cursor、VS Code/GitHub Copilot、Devin 和 Cline 的配置,请参阅特定客户端的复制粘贴配置。
从源代码检出运行
npm ci
npm run build
将客户端指向 dist/stdio.js 的绝对路径(使用 node),并提供上面所示的相同环境变量。
Claude Desktop MCPB
要安装 Claude Desktop 扩展:
- 从该版本的 GitHub 发布中下载
screenshotscout-mcp-<version>.mcpb。 - 在 Claude Desktop 中,打开设置 → 扩展 → 高级设置,然后选择安装扩展…。
- 选择已下载的文件。
- 输入所需的访问密钥。仅对需要签名请求的 API 密钥输入秘密密钥。
Claude Desktop 将两个字段均视为敏感设置。v0.1.0 MCPB 支持 Windows。
托管 Streamable HTTP
托管 API 密钥端点位于:
https://mcp.screenshotscout.com/mcp/api-key
它仅适用于能够附加静态 HTTP 标头的客户端:
Authorization: Bearer YOUR_ACCESS_KEY
该端点仅接受访问密钥。切勿向其发送 Screenshot Scout 秘密密钥,也切勿将任一密钥放在 URL 或工具参数中。无法附加静态 Bearer 标头的客户端无法使用此端点。
需要请求签名的 API 密钥必须改用本地 stdio 或 MCPB,或使用专用的未签名访问密钥访问托管端点。
通过 Docker 使用本地 stdio
从源代码检出构建生产镜像:
docker build --tag screenshotscout-mcp:local .
从本地环境传入凭据,并保持 stdin 附加以处理 MCP stdio 流量:
docker run --rm -i --init --cap-drop=ALL --security-opt=no-new-privileges --read-only \
-e SCREENSHOTSCOUT_ACCESS_KEY \
-e SCREENSHOTSCOUT_SECRET_KEY \
screenshotscout-mcp:local
SCREENSHOTSCOUT_SECRET_KEY 仍为可选。该镜像以非特权用户身份运行,仅包含编译后的 stdio 服务器及其生产依赖。它不声明端口或容器健康检查:MCP 客户端拥有 stdio 进程,并通过完成 MCP 初始化来验证就绪状态。该镜像及其在 docker-mcp-catalog.yaml 中的 Docker MCP Catalog 元数据仅用于本地准备;这些命令不暗示任何公共镜像。
工具:capture_screenshot
capture_screenshot 为提供的 URL 和选项发送一次捕获请求。目标网页是外部的,其返回内容必须视为不受信任。
输入
仅 url 为必填。捕获默认使用 1280×720 视口。未指定格式时,工具返回质量 60 的 JPEG。resultMode 默认为 "auto"。
| 分组 | 输入 |
|---|---|
| 目标和输出 | url;format(png、jpg、jpeg、webp、gif、tiff、pdf);resultMode(auto、url_only) |
| 位置和视口 | country(两位国家代码)、device、deviceViewportWidth、deviceViewportHeight、colorScheme(auto、dark、light)、fullPage |
| 页面准备 | blockCookieBanners、blockAds、blockChatWidgets、selector、hideSelectors、clickSelectors |
| 时序 | waitUntil(load、domcontentloaded、networkidle0、networkidle2)、delay(0–30 秒)、navigationTimeout(5–90 秒)、timeout(1–240 秒) |
| 缓存 | cache、cacheTtl(14,400–2,592,000 秒) |
| 输出尺寸调整 | imageWidth、imageHeight(1–8,192;适用于图片和 PDF) |
| 仅图片 | imageQuality(0–100,仅 JPEG/WebP) |
| 仅 PDF | pdfPaperFormat(letter、legal、tabloid、a4、a3、content)、pdfLandscape、pdfPrintBackground、pdfMargin、每侧边距字段、pdfScale(大于 0 且最多为 3) |
同时提供两个输出尺寸时,其乘积不能超过 64,000,000 像素。PDF 边距接受 px、in、mm 或 cm 中的非负值。imageQuality 要求 JPEG 或 WebP 输出,仅 PDF 选项要求 format: "pdf"。
结果
- 当
resultMode为auto、MIME 类型符合条件、尺寸已知且每边不超过 8,000 像素、原始数据不超过 5 MiB,并且完整的序列化结果符合当前 128,000 字节服务器限制时,PNG、JPEG、WebP 和 GIF 可作为 MCP 图片内容包含。 - 不符合嵌入条件的捕获仍会成功,并返回其临时 URL 以及可操作的省略原因。
- TIFF 仅返回 URL。
- PDF 字节永远不会嵌入。PDF 结果包含安全文本和结构化元数据,以及 Screenshot Scout 提供结果 URL 时的资源链接。
resultMode: "url_only"会省略所有格式的图片字节。
MCP 客户端控制返回的图片内容或资源链接是否显示或提供给模型。
结构化元数据可包含 screenshotUrl、screenshotUrlExpiresAt、cacheStatus、format、mimeType、imageWidth、imageHeight、inlineImageIncluded 和 inlineImageOmissionReason。
将结果 URL 视为敏感、临时的链接,并遵守其报告的过期时间。
示例提示
- “将
https://example.com捕获为深色模式下的整页 PNG。仅返回 URL。” - “对
https://example.com/pricing拍摄 1280×720 JPEG 截图,拦截 Cookie 横幅和广告,并使用质量 80。” - “创建
https://example.com/report的 A4 PDF,启用背景并使用 10 mm 边距。”
隐私与安全
服务器将目标 URL 和所选捕获选项发送给 Screenshot Scout,由其加载目标网站。在捕获私人或受监管材料之前,请查看 Screenshot Scout 隐私政策。
- 不要捕获你无权访问的页面。
- 不要将凭据粘贴到提示、工具输入、URL、问题报告或日志中。
- 将本地访问密钥和秘密密钥保存在客户端管理的密钥存储或私有环境配置中。
- 本地 stdio 服务器不添加遥测。托管服务的应用程序日志仅限于请求方法、响应状态、持续时间和经过净化的意外错误。其设计不包含凭据、目标 URL、截图 URL、请求或响应内容或图片字节。
- 在允许使用工具之前,审查每个目标和捕获请求。该工具是开放式的,会消耗配额,并与外部网站交互。
- 按照 SECURITY.md 中的描述私下报告漏洞。
开发
npm ci
npm run format:check
npm run lint
npm run typecheck
npm test
npm run metadata:check
npm run registry:validate
npm run mcpb:validate
npm run mcpb:pack
许可证
MIT © Oleksii Velykyi