just-every/mcp-screenshot-website-fast
Captura de screenshot de alta qualidade otimizada para a API Claude Vision. Divide automaticamente páginas completas em blocos de 1072x1072 (1,15 megapixels) com viewports configuráveis e estratégias de espera para conteúdo dinâmico.
Documentação
@just-every/mcp-screenshot-website-fast
Captura de screenshots de páginas web rápida e eficiente - otimizada para ferramentas de codificação CLI. Divide automaticamente páginas inteiras em blocos de 1072x1072 para processamento ideal.
Visão Geral
Construída especificamente para fluxos de trabalho de visão de IA, esta ferramenta captura screenshots de alta qualidade com limitação automática de resolução e divisão em blocos para processamento ideal pela Claude Vision API e outros modelos de IA. Garante que os screenshots sejam perfeitamente dimensionados em 1072x1072 pixels (1,15 megapixels) para máxima compatibilidade.
Recursos
- 📸 Captura rápida de screenshots usando o navegador headless Puppeteer
- 🎯 Otimizado para Claude Vision com limitação automática de resolução (1072x1072 para 1,15 megapixels ideais)
- 🔲 Divisão automática em blocos - Páginas inteiras são automaticamente divididas em blocos de 1072x1072
- 🎬 Captura de screencast - Grave uma série de screenshots ao longo do tempo com intervalos configuráveis
- 🔄 Conteúdo sempre atualizado - Sem cache garante screenshots atualizados
- 📱 Viewports configuráveis para testes responsivos
- ⏱️ Estratégias de espera para conteúdo dinâmico (networkidle, atrasos personalizados)
- 📄 Captura de página inteira por padrão para screenshots completos
- 🎥 Exportação em WebP animado - Salve screencasts como arquivos WebP animados de alta qualidade
- 💉 Injeção de JavaScript - Execute JS personalizado antes da captura de screencast
- 📦 Dependências mínimas para instalações npm rápidas
- 🔌 Integração MCP para fluxos de trabalho de IA sem interrupções
- 🪟 Inicializador compatível com Windows para uso de MCP instalado via npm
- 🔋 Eficiente em recursos - Limpeza automática do navegador após 60 segundos de inatividade
- 🧹 Gerenciamento de memória - As páginas são fechadas após cada screenshot para evitar vazamentos
Instalação
Claude Code
claude mcp add screenshot-website-fast -s user -- npx -y @just-every/mcp-screenshot-website-fast
VS Code
code --add-mcp '{"name":"screenshot-website-fast","command":"npx","args":["-y","@just-every/mcp-screenshot-website-fast"]}'
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=screenshot-website-fast&config=eyJzY3JlZW5zaG90LXdlYnNpdGUtZmFzdCI6eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBqdXN0LWV2ZXJ5L21jcC1zY3JlZW5zaG90LXdlYnNpdGUtZmFzdCJdfX0=
IDEs JetBrains
Configurações → Ferramentas → Assistente de IA → Model Context Protocol (MCP) → Adicionar
Escolha "Como JSON" e cole:
{"command":"npx","args":["-y","@just-every/mcp-screenshot-website-fast"]}
JSON bruto (funciona em qualquer cliente MCP)
{
"mcpServers": {
"screenshot-website-fast": {
"command": "npx",
"args": ["-y", "@just-every/mcp-screenshot-website-fast"]
}
}
}
Coloque isso no mcp.json do seu cliente (por exemplo, .vscode/mcp.json, ~/.cursor/mcp.json ou .mcp.json para Claude).
Pré-requisitos
- Node.js 20.x ou superior
- npm ou npx
- Chrome/Chromium (baixado automaticamente pelo Puppeteer)
Início Rápido
Uso do Servidor MCP
Uma vez instalado no seu IDE, as seguintes ferramentas estão disponíveis:
Ferramentas Disponíveis
-
take_screenshot- Captura um screenshot de alta qualidade de uma página web- Parâmetros:
url(obrigatório): A URL HTTP/HTTPS a ser capturadawidth(opcional): Largura do viewport em pixels (máx. 1072, padrão: 1072)height(opcional): Altura do viewport em pixels (máx. 1072, padrão: 1072)fullPage(opcional): Capturar screenshot da página inteira com divisão em blocos (padrão: true)waitUntil(opcional): Aguardar até o evento: load, domcontentloaded, networkidle0, networkidle2 (padrão: domcontentloaded)waitFor(opcional): Tempo de espera adicional em milissegundosdirectory(opcional): Diretório para salvar screenshots - retorna caminhos de arquivo em vez de imagens base64
- Parâmetros:
-
capture_selector- Captura um screenshot de um elemento DOM específico correspondente a um seletor CSS- Parâmetros:
url(obrigatório): A URL HTTP/HTTPS a ser capturadaselector(obrigatório): Seletor CSS para o elemento a ser capturadowidth(opcional): Largura do viewport em pixels (máx. 1072, padrão: 1072)height(opcional): Altura do viewport em pixels (máx. 1072, padrão: 1072)waitUntil(opcional): Aguardar até o evento: load, domcontentloaded, networkidle0, networkidle2 (padrão: domcontentloaded)waitForMS(opcional): Tempo de espera adicional em milissegundosselectorTimeoutMS(opcional): Quanto tempo esperar pelo seletor antes de falhar (padrão: 5000)
- Parâmetros:
Exemplos de Uso
Uso padrão (retorna imagens base64):
take_screenshot(url="https://example.com")
Salvar em diretório (retorna caminhos de arquivo):
take_screenshot(url="https://example.com", directory="/path/to/screenshots")
Capturar um elemento específico:
capture_selector(url="https://example.com", selector="#main")
Ao usar o parâmetro directory:
- Os screenshots são salvos como arquivos PNG com carimbos de data/hora
- Os caminhos dos arquivos são retornados em vez de dados base64
- Para screenshots divididos em blocos, cada bloco é salvo como um arquivo separado
- O diretório é criado automaticamente se não existir
take_screencast
Captura uma série de screenshots ao longo do tempo para criar um screencast. Captura apenas o bloco superior (1072x1072) do viewport.
Parâmetros
url(obrigatório): A URL a ser capturadaduration(opcional): Duração total em segundos (padrão: 10)interval(opcional): Intervalo entre screenshots em segundos (padrão: 2)jsEvaluate(opcional): Código JavaScript a ser executado no iníciowaitUntil(opcional): Estratégia de espera: 'load', 'domcontentloaded', 'networkidle0', 'networkidle2'waitForMS(opcional): Tempo de espera adicional antes de iniciardirectory(opcional): Salvar como WebP animado em diretório (captura a cada 1 segundo)
Exemplos de Uso
Screencast básico (5 quadros em 10 segundos):
take_screencast(url="https://example.com")
Tempo personalizado:
take_screencast(url="https://example.com", duration=15, interval=3)
Com execução de JavaScript:
take_screencast(
url="https://example.com",
jsEvaluate="document.body.style.backgroundColor = 'red';"
)
Salvar como WebP animado:
take_screencast(url="https://example.com", directory="/path/to/output")
Ao usar o parâmetro directory:
- Um WebP animado é criado com intervalos de 1 segundo
- Os quadros individuais também são salvos como arquivos PNG
- A animação se repete para sempre por padrão
- O WebP oferece excelente qualidade:
- Suporte total a cores (sem limitação de 256 cores)
- Compressão eficiente para animações web
- Perfeito para fundos com gradiente e animações suaves
- Tamanhos de arquivo menores em comparação com GIF, com melhor qualidade
Uso em Desenvolvimento
Instalação
npm install
npm run build
Capturar screenshot
# Full page with automatic tiling (default)
npm run dev capture https://example.com -o screenshot.png
# Viewport-only screenshot
npm run dev capture https://example.com --no-full-page -o screenshot.png
# Wait for specific conditions
npm run dev capture https://example.com --wait-until networkidle0 --wait-for 2000 -o screenshot.png
Opções de CLI
-w, --width <pixels>- Largura do viewport (máx. 1072, padrão: 1072)-h, --height <pixels>- Altura do viewport (máx. 1072, padrão: 1072)--no-full-page- Desativar captura de página inteira e divisão em blocos--wait-until <event>- Aguardar até o evento: load, domcontentloaded, networkidle0, networkidle2--wait-for <ms>- Tempo de espera adicional em milissegundos-o, --output <path>- Caminho do arquivo de saída (obrigatório para saída dividida em blocos)
Recurso de Reinício Automático
O servidor MCP inclui capacidade de reinício automático por padrão para maior confiabilidade:
- Reinicia automaticamente o servidor se ele travar
- Lida com exceções não tratadas e rejeições de promessas
- Implementa backoff exponencial (máx. 10 tentativas em 1 minuto)
- Registra todas as tentativas de reinício para monitoramento
- Lida graciosamente com sinais de desligamento (SIGINT, SIGTERM)
Para desenvolvimento/depuração sem reinício automático:
# Run directly without restart wrapper
npm run serve:dev
Arquitetura
mcp-screenshot-website-fast/
├── src/
│ ├── internal/ # Core screenshot capture logic
│ ├── utils/ # Logger and utilities
│ ├── index.ts # CLI entry point
│ ├── serve.ts # MCP server entry point
│ └── serve-restart.ts # Auto-restart wrapper
Desenvolvimento
# Run in development mode
npm run dev capture https://example.com -o screenshot.png
# Build for production
npm run build
# Run tests
npm test
# Type checking
npm run typecheck
# Linting
npm run lint
Por Que Esta Ferramenta?
Construída especificamente para fluxos de trabalho de visão de IA:
- Otimizada para Claude Vision API - Limitação automática de resolução para 1072x1072 pixels (1,15 megapixels)
- Divisão automática em blocos - Páginas inteiras divididas em blocos perfeitos para processamento de IA
- Sempre atualizada - Sem cache garante que você obtenha o conteúdo mais recente
- MCP nativo - Integração de primeira classe com ferramentas de desenvolvimento de IA
- API simples - Interface limpa e direta para capturar screenshots
Contribuindo
Contribuições são bem-vindas! Por favor:
- Faça um fork do repositório
- Crie um branch de funcionalidade
- Adicione testes para novas funcionalidades
- Envie um pull request
Solução de Problemas
Problemas com Puppeteer
- Certifique-se de que o Chrome/Chromium possa ser baixado
- Verifique as configurações do firewall
- Tente definir
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=truee fornecer um executável personalizado
Qualidade do Screenshot
- Ajuste as dimensões do viewport
- Use estratégias de espera apropriadas
- Verifique se o site requer autenticação
Erros de Tempo Limite
- Aumente o tempo de espera com a flag
--wait-for - Use diferentes estratégias de
--wait-until - Verifique se o site está acessível
Licença
MIT