mcpField
S
Snapshot Site

Snapshot Site

远程服务
snapshot-site.com开发工具113 周前更新

关于 Snapshot Site

Snapshot Site MCP 将 AI 客户端连接到 Snapshot Site API,提供截图、分析和对比能力。开发者可使用托管 OAuth 端点,也可通过 API 密钥在本地运行服务,以检查页面截图和视觉差异。

主要功能

  1. 01捕获页面截图
  2. 02分析捕获的页面
  3. 03比较不同版本的页面
  4. 04通过托管 OAuth 或本地 stdio 连接

适用场景

  1. 01捕获页面以供视觉检查
  2. 02分析页面截图
  3. 03检查不同版本间的视觉差异

MCP 相关

该服务向 MCP 客户端提供 `screenshot`、`analyze` 和 `compare` 工具。支持托管 OAuth 端点,也支持使用 Snapshot Site API 密钥的本地 stdio 模式。

配置

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

服务地址https://mcp.snapshot-site.com/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 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npm@snapshot-site/mcp0.1.5

工具

详细介绍

Snapshot Site MCP

npm Node License CI

Snapshot Site API 的官方 MCP 服务

工具

  • screenshot
  • analyze
  • compare

这些工具为 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 密钥。

  1. 注册 Snapshot Site Console 账户。

  2. 在 API Keys 页面创建 API 密钥。

    Snapshot Site Console — API 密钥

  3. 将密钥作为 SNAPSHOT_SITE_API_KEY 环境变量传递给服务。

  4. 除非你连接的是可自托管或预发布实例,否则请将 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 控制台操练场中预览截图及其参数。

Snapshot Site Console — 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 式发现机制的客户端兼容性,同时保留现有手动流程作为备用方案。

评论

支持 Markdown

第一次接触 MCP?

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

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