关于 snapdiff
snapdiff 是面向编码 Agent 的 MCP 服务,可捕获网页并验证视觉变化。它通过本地 stdio 进程提供基于 SnapDiff REST API 的比较工具。
主要功能
- 01比较网页截图
- 02按意图验证 UI 变化
- 03捕获 URL 截图
- 04将 HTML/CSS 渲染为图像
适用场景
- 01检查 UI 修改是否引入回归
- 02将页面与已存基线比较
- 03从 HTML/CSS 创建图像资源
MCP 相关
向 MCP 客户端提供四种视觉测试工具,包括页面比较、截图捕获、UI 变化验证和 HTML/CSS 渲染。独立服务通过 stdio 运行,需要 SnapDiff API 密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @corralimited/snapdiff-mcpSNAPDIFF_API_KEY密钥SnapDiff API key. Get one at https://snapdiff.ai/dashboard.SNAPDIFF_API_URLOverride the API base URL. Defaults to https://api.snapdiff.ai/v1.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
6收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| after | string | 是 | 要检查的「after」页面的 URL(例:预发布环境 URL 或 localhost) |
| before | string | 否 | 用于比较的「before」页面 URL。使用基线模式时省略。 |
| branch | string | 否 | 用于查找基线的分支名称。默认为项目的默认分支。 |
| project | string | 否 | 基线模式下的项目 slug 或 ID。与 page_name 一起设置时,将与存储的基线进行差分比较。 |
| full_page | boolean | 否 | 比较完整的可滚动页面。默认值为 false |
| page_name | string | 否 | 项目中的页面名称(例如 "homepage"、"pricing")。基线模式必填。 |
| threshold | number | 否 | 像素灵敏度 0.0-1.0。数值越低,灵敏度越高。默认值为 0.1 |
| ignore_selectors | array | 否 | 要从比较中排除的 CSS 选择器(例如时间戳、广告) |
详细介绍
@corralimited/snapdiff-mcp
适用于 SnapDiff 的独立 MCP 服务。向本地 Agent 提供四种工具:
- 以可视化方式比较两个网页 — 返回差异百分比和突出显示差异的图片
- 截取网页截图,适用于任意 URL
- 检查页面是否相较于之前的截图发生变化
- 将 HTML/CSS 渲染为图片(OG 卡片、社交媒体图片、电子邮件页眉)
调用 SnapDiff 公共 REST API。请自备 API 密钥。
快速开始
在 https://snapdiff.ai/dashboard 获取 API 密钥,然后将下方对应的代码片段添加到你的 Agent 配置中。
Claude Code
claude mcp add snapdiff -e SNAPDIFF_API_KEY=sk_live_... -- npx -y @corralimited/snapdiff-mcp
或者编辑 ~/.claude/settings.json:
{
"mcpServers": {
"snapdiff": {
"command": "npx",
"args": ["-y", "@corralimited/snapdiff-mcp"],
"env": { "SNAPDIFF_API_KEY": "sk_live_..." }
}
}
}
Cursor
~/.cursor/mcp.json(或项目级 .cursor/mcp.json):
{
"mcpServers": {
"snapdiff": {
"command": "npx",
"args": ["-y", "@corralimited/snapdiff-mcp"],
"env": { "SNAPDIFF_API_KEY": "sk_live_..." }
}
}
}
Cline(VS Code)
Cline > MCP Servers > Edit Config:
{
"mcpServers": {
"snapdiff": {
"command": "npx",
"args": ["-y", "@corralimited/snapdiff-mcp"],
"env": { "SNAPDIFF_API_KEY": "sk_live_..." }
}
}
}
Zed
~/.config/zed/settings.json:
{
"context_servers": {
"snapdiff": {
"command": {
"path": "npx",
"args": ["-y", "@corralimited/snapdiff-mcp"],
"env": { "SNAPDIFF_API_KEY": "sk_live_..." }
}
}
}
}
Continue
~/.continue/config.yaml:
mcpServers:
- name: snapdiff
command: npx
args: ["-y", "@corralimited/snapdiff-mcp"]
env:
SNAPDIFF_API_KEY: sk_live_...
其他支持通用 stdio MCP 接入的客户端
command: npx
args: -y @corralimited/snapdiff-mcp
env: SNAPDIFF_API_KEY=sk_live_...
工具
| 名称 | 用途 |
|---|---|
snapdiff_verify_ui_change | 检查视觉变化是否符合 Agent 声明的意图。返回 verdict(pass / expected_change_detected / unexpected_regression / no_change_detected / needs_human_review)和 next_action。需要项目和基线。请在验证循环中使用此工具。 |
snapdiff_compare_pages | 对两个 URL 进行原始视觉差异比较,或将某个 URL 与存储的项目基线进行比较。适用于不符合 verify-ui-change 判定格式的临时差异比较。 |
snapdiff_capture_screenshot | 截取单个 URL 的截图。 |
snapdiff_html_to_image | 将 HTML/CSS 渲染为图片(OG 卡片、社交媒体图片、电子邮件页眉)。 |
Schema 位于 src/tools/,并从 @corralimited/snapdiff-mcp/tools 导出。
托管的 SnapDiff 后端会导入相同的 Schema,因此其进程内的 /mcp 端点与此独立 stdio 服务提供完全一致的接口——无论 Agent 连接 https://api.snapdiff.ai/mcp 还是在本地运行此服务,看到的工具名称、描述和参数都相同。
远程 HTTP 访问
此软件包仅支持 stdio——编辑器会将其作为子进程启动,而基于 Playwright 的本地主机工具会在你的机器上运行,也就是开发服务器所在的位置。它不会开放端口。
如果需要 HTTP 端点,请使用托管端点 https://mcp.snapdiff.ai/mcp,它会使用你的 API 密钥验证每个请求,并提供相同的工具接口。
配置
| 环境变量 | 必需 | 说明 |
|---|---|---|
SNAPDIFF_API_KEY | 是 | 在 https://snapdiff.ai/dashboard 获取 |
SNAPDIFF_API_URL | 否 | 覆盖 API 基础 URL。默认为 https://api.snapdiff.ai/v1。 |
除 --help 外,没有其他 CLI 标志。
许可证
MIT — 请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。