Screenshots By Snapshot Site
Dê olhos ao seu agente: capture screenshots, detecte mudanças visuais entre duas versões de página e analise páginas com IA. Hospedado, OAuth, plano gratuito.
Documentação
Snapshot Site MCP
Servidor MCP oficial para a API do Snapshot Site
Ferramentas
screenshotanalyzecompare
Estas ferramentas são anotadas para clientes MCP como:
- somente leitura
- idempotentes
- mundo aberto
Elas também incluem títulos mais ricos, metadados de categoria e exemplos de intenções para melhorar a seleção de ferramentas no Claude Desktop e no Cursor.
Duas formas de conectar
Hospedado, com OAuth — aponte seu cliente para https://mcp.snapshot-site.com/mcp
e faça login. Não há processo local para executar nem chave de API na configuração
do seu cliente; o servidor resolve sua conta a partir da sessão OAuth.
Local, com chave de API — execute o pacote você mesmo via stdio e forneça
SNAPSHOT_SITE_API_KEY. O servidor chama a API do Snapshot Site diretamente.
De qualquer forma, as chamadas contam contra a mesma cota do plano que as chamadas diretas à API. Nada é medido de forma diferente por ter vindo através do MCP.
Credenciais
O servidor hospedado não precisa de credencial — você faz login via OAuth e o servidor resolve sua conta a partir da sessão. Pule esta seção, a menos que você execute o servidor você mesmo via stdio.
Para o modo stdio local, você precisa de uma chave de API do Snapshot Site.
-
Crie uma conta no Console do Snapshot Site.
-
Crie uma chave de API na página Chaves de API.

-
Passe a chave para o servidor como a variável de ambiente
SNAPSHOT_SITE_API_KEY. -
Deixe
SNAPSHOT_SITE_BASE_URLno valor padrão (https://api.prod.ss.snapshot-site.com) a menos que você esteja apontando para uma instância auto-hospedada ou de staging.
Compatibilidade
Requer Node.js 20.9 ou posterior. Compilado com @modelcontextprotocol/sdk v1.28
e testado com Claude Desktop e Cursor via stdio, e com qualquer cliente que
fale o transporte HTTP streamable contra o endpoint hospedado.
Uso
Não sabe quais opções usar? Visualize uma captura e seus parâmetros no playground do console Screenshot antes de conectá-los a uma chamada de ferramenta.

Fluxo de descoberta OAuth
O que um cliente faz ao conectar-se ao servidor hospedado:
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>
O servidor então valida o token contra o emissor e resolve a conta à qual ele pertence antes de executar a ferramenta.
Verificando a implantação
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 manual vs. implícito
- O
client_idsó é necessário para a etapa de autorização. - Se o seu cliente não conseguir descobrir o
client_idantecipadamente, insira-o manualmente na interface do conector. - Ele não pode ser injetado posteriormente depois que o fluxo OAuth for iniciado.
- O servidor pode publicar um modo implícito experimental expondo um
preferred_client_idem/.well-known/oauth-protected-resource. - Clientes que leem esses metadados podem então pular a entrada manual. Clientes que ignoram o campo ainda exigem um
client_idmanual.
Ambiente
export SNAPSHOT_SITE_API_KEY=ss_live_xxx
export SNAPSHOT_SITE_BASE_URL=https://api.prod.ss.snapshot-site.com
Build
pnpm install
pnpm run build
Modo stdio local
export SNAPSHOT_SITE_API_KEY=ss_live_xxx
snapshot-site-mcp
Configuração do 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"
}
}
}
}
Configuração do Cursor
{
"mcpServers": {
"snapshot-site": {
"command": "node",
"args": ["/absolute/path/to/snapshot-site-mcp/build/server.js"],
"env": {
"SNAPSHOT_SITE_API_KEY": "ss_live_xxx"
}
}
}
}
Modo HTTP remoto
Este pacote também suporta um endpoint MCP hospedado para clientes que usam mcp-remote.
Inicie o servidor HTTP:
pnpm start:http
ou:
npx snapshot-site-mcp-http
Variáveis de ambiente:
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
Configuração de cliente remoto com cabeçalho de chave de API direto:
{
"mcpServers": {
"Snapshot Site MCP": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.snapshot-site.com/mcp",
"--header",
"x-snapshotsiteapi-key: ss_live_xxx"
]
}
}
}
O servidor hospedado é stateless. Cada requisição autentica com x-snapshotsiteapi-key, o que torna o serviço seguro para execução em múltiplas réplicas sem afinidade de sessão.
Zitadel / OAuth
O servidor HTTP remoto também suporta tokens de portador OAuth validados contra um emissor OIDC, como o Zitadel.
Variáveis de ambiente:
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
No modo token de portador, o servidor MCP valida o token de acesso recebido contra o JWKS do emissor e então usa a chave de API do Snapshot Site no lado do servidor para chamar a API de backend.
Ele também expõe e faz proxy de:
GET /.well-known/oauth-protected-resource
GET /.well-known/openid-configuration
GET/POST /oauth/v2/*
GET /ui/*
GET/POST /oauth/register
para que clientes MCP possam descobrir automaticamente os metadados do servidor de autorização.
Quando OIDC_DISCOVERY_CLIENT_ID está definido, os metadados do recurso protegido também incluem:
{
"resource_name": "Snapshot Site MCP",
"preferred_client_id": "366546620977775166",
"oauth_client_metadata": {
"client_id": "366546620977775166",
"token_endpoint_auth_method": "none"
}
}
Esta é uma dica de compatibilidade experimental para clientes que podem inferir o cliente público OAuth automaticamente. A entrada manual de client_id continua sendo o fallback confiável.
O servidor MCP também expõe um shim leve de compatibilidade registration_endpoint em:
POST https://mcp.snapshot-site.com/oauth/register
Este shim atualmente retorna o cliente PKCE público pré-configurado em vez de provisionar um novo cliente Zitadel por instalação. Ele valida e reflete o redirect_uris solicitado pelo cliente, desde que sejam URLs HTTPS válidas. Ele visa melhorar a compatibilidade com clientes que esperam descoberta no estilo DCR, mantendo o fluxo manual existente como fallback.