mcpField
S
snapdiff

snapdiff

本地服务
github.com/corralimited开发工具57 周前更新

关于 snapdiff

snapdiff 是面向编码 Agent 的 MCP 服务,可捕获网页并验证视觉变化。它通过本地 stdio 进程提供基于 SnapDiff REST API 的比较工具。

主要功能

  1. 01比较网页截图
  2. 02按意图验证 UI 变化
  3. 03捕获 URL 截图
  4. 04将 HTML/CSS 渲染为图像

适用场景

  1. 01检查 UI 修改是否引入回归
  2. 02将页面与已存基线比较
  3. 03从 HTML/CSS 创建图像资源

MCP 相关

向 MCP 客户端提供四种视觉测试工具,包括页面比较、截图捕获、UI 变化验证和 HTML/CSS 渲染。独立服务通过 stdio 运行,需要 SnapDiff API 密钥。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ai-snapdiff": {
"command": "npx",
"args": [
"-y",
"@corralimited/snapdiff-mcp"
],
"env": {
"SNAPDIFF_API_KEY": "<SNAPDIFF_API_KEY>",
"SNAPDIFF_API_URL": "<SNAPDIFF_API_URL>"
}
}
}
}
启动命令npx -y @corralimited/snapdiff-mcp
需要配置的环境变量
SNAPDIFF_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@corralimited/snapdiff-mcp0.5.0

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
afterstring是要检查的「after」页面的 URL(例:预发布环境 URL 或 localhost)
beforestring否用于比较的「before」页面 URL。使用基线模式时省略。
branchstring否用于查找基线的分支名称。默认为项目的默认分支。
projectstring否基线模式下的项目 slug 或 ID。与 page_name 一起设置时,将与存储的基线进行差分比较。
full_pageboolean否比较完整的可滚动页面。默认值为 false
page_namestring否项目中的页面名称(例如 "homepage"、"pricing")。基线模式必填。
thresholdnumber否像素灵敏度 0.0-1.0。数值越低,灵敏度越高。默认值为 0.1
ignore_selectorsarray否要从比较中排除的 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。

评论

支持 Markdown

第一次接触 MCP?

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

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