关于 Snapshot Site
Snapshot Site MCP 将 AI 客户端连接到 Snapshot Site API,提供截图、分析和对比能力。开发者可使用托管 OAuth 端点,也可通过 API 密钥在本地运行服务,以检查页面截图和视觉差异。
主要功能
- 01捕获页面截图
- 02分析捕获的页面
- 03比较不同版本的页面
- 04通过托管 OAuth 或本地 stdio 连接
适用场景
- 01捕获页面以供视觉检查
- 02分析页面截图
- 03检查不同版本间的视觉差异
MCP 相关
该服务向 MCP 客户端提供 `screenshot`、`analyze` 和 `compare` 工具。支持托管 OAuth 端点,也支持使用 Snapshot Site API 密钥的本地 stdio 模式。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.snapshot-site.com/mcpclaude mcp add --transport http com-snapshot-site-screenshots https://mcp.snapshot-site.com/mcp{"mcpServers":{"com-snapshot-site-screenshots":{"type":"http","url":"https://mcp.snapshot-site.com/mcp"}}}在 Cursor 中打开{"servers":{"com-snapshot-site-screenshots":{"type":"http","url":"https://mcp.snapshot-site.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-snapshot-site-screenshots":{"type":"http","url":"https://mcp.snapshot-site.com/mcp"}}}{"mcpServers":{"com-snapshot-site-screenshots":{"serverUrl":"https://mcp.snapshot-site.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Snapshot Site MCP
Snapshot Site API 的官方 MCP 服务
工具
screenshotanalyzecompare
这些工具为 MCP 客户端标注了以下属性:
- 只读
- 幂等
- 开放世界
它们还包含更丰富的标题、类别元数据和意图示例,以便在 Claude Desktop 和 Cursor 中更好地选择工具。
两种连接方式
托管方式,使用 OAuth — 将客户端指向 https://mcp.snapshot-site.com/mcp
并登录。无需运行本地进程,客户端配置中也不需要 API 密钥;服务会通过 OAuth 会话识别你的账户。
本地方式,使用 API 密钥 — 自行运行此软件包,通过 stdio 提供
SNAPSHOT_SITE_API_KEY。服务会直接调用 Snapshot Site API。
无论采用哪种方式,调用都会计入与直接 API 调用相同的套餐配额。通过 MCP 发起的调用不会采用不同的计量方式。
凭据
托管服务无需凭据——登录 OAuth 后,服务会通过会话识别你的账户。除非你自行通过 stdio 运行服务,否则可跳过本节。
本地 stdio 模式需要 Snapshot Site API 密钥。
-
注册 Snapshot Site Console 账户。
-
在 API Keys 页面创建 API 密钥。

-
将密钥作为
SNAPSHOT_SITE_API_KEY环境变量传递给服务。 -
除非你连接的是可自托管或预发布实例,否则请将
SNAPSHOT_SITE_BASE_URL保持为默认值(https://api.prod.ss.snapshot-site.com)。
兼容性
需要 Node.js 20.9 或更高版本。基于 @modelcontextprotocol/sdk v1.28 构建,并已通过 Claude Desktop 和 Cursor 的 stdio 测试,也兼容任何通过托管端点使用流式 HTTP 传输协议的客户端。
用法
不确定该使用哪些选项?在将参数接入工具调用前,可先在 Screenshot 控制台操练场中预览截图及其参数。

OAuth 发现流程
客户端连接托管服务时的操作:
1. Discovery
Claude
-> GET https://mcp.snapshot-site.com/.well-known/oauth-protected-resource
MCP
-> responds:
authorization_servers = https://mcp.snapshot-site.com
2. Authorization
Claude
-> must know client_id
-> opens:
https://mcp.snapshot-site.com/oauth/v2/authorize
?client_id=...
&redirect_uri=https://claude.ai/api/mcp/auth_callback
&response_type=code
&code_challenge=...
3. Token
Claude
-> receives an access token
-> calls the MCP server:
POST https://mcp.snapshot-site.com/
Authorization: Bearer <access_token>
随后,服务会根据颁发者验证令牌,并识别令牌所属的账户,然后才运行工具。
验证部署
curl -s https://mcp.snapshot-site.com/.well-known/oauth-protected-resource | jq
curl -s https://mcp.snapshot-site.com/.well-known/openid-configuration | jq
curl -i https://mcp.snapshot-site.com/
curl -i -X POST https://mcp.snapshot-site.com/mcp -H 'content-type: application/json' --data '{}'
手动指定与隐式获取 client_id
- 只有在授权步骤中才需要
client_id。 - 如果客户端无法提前发现该
client_id,请在连接器界面中手动输入。 - OAuth 流程启动后,无法再注入该值。
- 服务可通过在
/.well-known/oauth-protected-resource中公开preferred_client_id,提供实验性的隐式模式。 - 读取此元数据的客户端随后可以跳过手动输入。忽略该字段的客户端仍需手动输入
client_id。
环境
export SNAPSHOT_SITE_API_KEY=ss_live_xxx
export SNAPSHOT_SITE_BASE_URL=https://api.prod.ss.snapshot-site.com
构建
pnpm install
pnpm run build
本地 stdio 模式
export SNAPSHOT_SITE_API_KEY=ss_live_xxx
snapshot-site-mcp
Claude Desktop 配置
{
"mcpServers": {
"snapshot-site": {
"command": "node",
"args": ["/absolute/path/to/snapshot-site-mcp/build/server.js"],
"env": {
"SNAPSHOT_SITE_API_KEY": "ss_live_xxx",
"SNAPSHOT_SITE_BASE_URL": "https://api.prod.ss.snapshot-site.com"
}
}
}
}
Cursor 配置
{
"mcpServers": {
"snapshot-site": {
"command": "node",
"args": ["/absolute/path/to/snapshot-site-mcp/build/server.js"],
"env": {
"SNAPSHOT_SITE_API_KEY": "ss_live_xxx"
}
}
}
}
远程 HTTP 模式
此软件包还支持托管式 MCP 端点,供使用 mcp-remote 的客户端连接。
启动 HTTP 服务:
pnpm start:http
或者:
npx snapshot-site-mcp-http
环境变量:
export PORT=3000
export HOST=0.0.0.0
export MCP_PATH=/mcp
export HEALTH_PATH=/healthz
export MCP_ALLOWED_HOSTS=mcp.snapshot-site.com
export SNAPSHOT_SITE_BASE_URL=https://api.prod.ss.snapshot-site.com
使用直接 API 密钥标头的远程客户端配置:
{
"mcpServers": {
"Snapshot Site MCP": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.snapshot-site.com/mcp",
"--header",
"x-snapshotsiteapi-key: ss_live_xxx"
]
}
}
}
托管服务采用无状态设计。每个请求都通过 x-snapshotsiteapi-key 进行身份验证,因此无需会话亲和性即可安全地在多个副本上运行该服务。
Zitadel / OAuth
远程 HTTP 服务还支持 OAuth Bearer 令牌,并可针对 Zitadel 等 OIDC 发行方进行验证。
环境变量:
export OIDC_ISSUER_URL=https://auth.snapshot-site.com
export OIDC_AUDIENCE=snapshot-site-mcp
export OIDC_REQUIRED_SCOPE=claudeai
export OIDC_DISCOVERY_CLIENT_ID=366546620977775166
export RESOURCE_SERVER_URL=https://mcp.snapshot-site.com
export ALLOW_API_KEY_AUTH=false
export SNAPSHOT_SITE_API_KEY=ss_server_side_xxx
在 Bearer 令牌模式下,MCP 服务会根据发行方的 JWKS 验证传入的访问令牌,然后使用服务端 Snapshot Site API 密钥调用后端 API。
它还会公开并代理:
GET /.well-known/oauth-protected-resource
GET /.well-known/openid-configuration
GET/POST /oauth/v2/*
GET /ui/*
GET/POST /oauth/register
以便 MCP 客户端自动发现授权服务器元数据。
设置 OIDC_DISCOVERY_CLIENT_ID 后,受保护资源元数据还会包含:
{
"resource_name": "Snapshot Site MCP",
"preferred_client_id": "366546620977775166",
"oauth_client_metadata": {
"client_id": "366546620977775166",
"token_endpoint_auth_method": "none"
}
}
这是面向能够自动推断 OAuth 公共客户端的客户端提供的实验性兼容性提示。手动输入 client_id 仍是可靠的备用方案。
MCP 服务还会在以下地址公开一个轻量级的 registration_endpoint 兼容垫片:
POST https://mcp.snapshot-site.com/oauth/register
此垫片目前会返回预配置的公共 PKCE 客户端,而不会为每次安装创建全新的 Zitadel 客户端。它会验证客户端请求的 redirect_uris 并原样返回,但这些 URI 必须是有效的 HTTPS URL。此垫片旨在提升对 DCR 式发现机制的客户端兼容性,同时保留现有手动流程作为备用方案。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。