PageBolt
Capture screenshots, generate PDFs, and create OG images from your AI assistant
Documentação
Servidor MCP PageBolt
Capture screenshots, gere PDFs, crie imagens OG, inspecione páginas e grave vídeos de demonstração diretamente do seu assistente de codificação com IA.
Funciona com Claude Desktop, Cursor, Windsurf, Cline e qualquer cliente compatível com MCP.
O Que Ele Faz
O Servidor MCP PageBolt conecta seu assistente de IA à API de captura web do PageBolt, dando a ele a capacidade de:
- Tirar screenshots de qualquer URL, HTML ou Markdown (mais de 30 parâmetros)
- Gerar PDFs a partir de URLs ou HTML (faturas, relatórios, documentos)
- Criar imagens OG para cards sociais usando templates ou HTML personalizado
- Executar sequências de navegador — automação em múltiplas etapas (navegar, clicar, preencher, capturar tela)
- Gravar vídeos de demonstração — automação de navegador como MP4/WebM/GIF com efeitos de cursor, animações de clique e zoom automático
- Inspecionar páginas — obtenha um mapa estruturado de elementos interativos com seletores CSS (use antes das sequências)
- Observar páginas para agentes — observação compacta e econômica em tokens, com um modo opcional
flatdomtreepara interoperabilidade com browser-use / page-agent - Importar rastros de agentes — transforme um rastro de ações do browser-use / page-agent em uma sequência PageBolt reexecutável
- Listar predefinições de dispositivos — mais de 25 dispositivos (iPhone, iPad, MacBook, Galaxy, etc.)
- Verificar uso e acompanhar tarefas assíncronas — monitore sua cota de API e renderizações de vídeo assíncronas longas em tempo real
Todos os resultados são retornados inline — os screenshots aparecem diretamente no seu chat.
Início Rápido
1. Obtenha uma chave de API gratuita
Cadastre-se em pagebolt.dev — o plano gratuito inclui 100 requisições/mês, sem necessidade de cartão de crédito.
2. Instale e configure
Claude Desktop
Adicione ao ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"pagebolt": {
"command": "npx",
"args": ["-y", "pagebolt-mcp"],
"env": {
"PAGEBOLT_API_KEY": "pf_live_your_key_here"
}
}
}
}
Cursor
Adicione ao .cursor/mcp.json no seu projeto (ou configuração global):
{
"mcpServers": {
"pagebolt": {
"command": "npx",
"args": ["-y", "pagebolt-mcp"],
"env": {
"PAGEBOLT_API_KEY": "pf_live_your_key_here"
}
}
}
}
Windsurf
Adicione às configurações MCP do Windsurf:
{
"mcpServers": {
"pagebolt": {
"command": "npx",
"args": ["-y", "pagebolt-mcp"],
"env": {
"PAGEBOLT_API_KEY": "pf_live_your_key_here"
}
}
}
}
Cline / Outros Clientes MCP
Mesmo padrão de configuração — defina command como npx, args como ["-y", "pagebolt-mcp"] e forneça sua chave de API em env.
3. Experimente
Pergunte ao seu assistente de IA:
"Tire um screenshot de https://github.com no modo escuro em 1920x1080"
O screenshot aparecerá inline no seu chat.
Ferramentas
take_screenshot
Capture um screenshot perfeito em pixels de qualquer URL, HTML ou Markdown.
Parâmetros principais:
url/html/markdown— fonte de conteúdowidth,height— tamanho da viewport (padrão: 1280x720)viewportDevice— predefinição de dispositivo (ex.:"iphone_14_pro","macbook_pro_14")fullPage— capture a página inteira roláveldarkMode— emular esquema de cores escuroformat—png,jpegouwebpblockBanners— ocultar banners de consentimento de cookiesblockAds— bloquear anúnciosblockChats— remover widgets de chat ao vivoblockTrackers— bloquear scripts de rastreamentoextractMetadata— obter título da página, descrição e tags OG junto com o screenshotselector— capturar um elemento DOM específicodelay— aguardar antes da captura (para animações)cookies,headers,authorization— capturas autenticadasgeolocation,timeZone— emulação de localização- ...e mais de 15 outros
Exemplos de prompts:
- "Screenshot de https://example.com em um iPhone 14 Pro"
- "Tire um screenshot de página inteira de https://news.ycombinator.com com bloqueio de anúncios"
- "Capture este HTML no modo escuro:
<h1>Hello World</h1>"
generate_pdf
Gere um PDF a partir de qualquer URL ou conteúdo HTML.
Parâmetros: url/html, format (A4/Carta/Legal), landscape, margin, scale, pageRanges, delay, saveTo
Exemplos de prompts:
- "Gere um PDF de https://example.com e salve em ./report.pdf"
- "Crie um PDF a partir deste HTML de fatura no formato Carta, paisagem"
create_og_image
Crie imagens de preview Open Graph / sociais.
Parâmetros: template (padrão/mínimo/gradiente), html (personalizado), title, subtitle, logo, bgColor, textColor, accentColor, width, height, format
Exemplos de prompts:
- "Crie uma imagem OG com o título 'How to Build a SaaS' usando o template de gradiente"
- "Gere um card social com fundo azul escuro e texto branco"
run_sequence
Execute automação de navegador em múltiplas etapas.
Ações: navigate, click, dblclick, fill, select, hover, scroll, wait, wait_for, evaluate, press_key, screenshot, pdf, diff
observeAfterEachStep (opcional, gratuito): anexa um snapshot compacto do estado (tipo de página + principais elementos interativos + ações sugeridas, sem screenshot) a cada resultado de etapa, para que um agente possa confirmar o que está na tela — por exemplo, que um menu suspenso abriu — e escolher o seletor correto para a próxima chamada sem agrupar às cegas.
Exemplos de prompts:
- "Vá para https://example.com,, clique no link de preços e tire screenshots de ambas as páginas"
- "Navegue até a página de login, preencha as credenciais de teste, envie e capture o painel"
inspect_page
Inspecione uma página web e obtenha um mapa estruturado de todos os elementos interativos, cabeçalhos, formulários, links e imagens — cada um com um seletor CSS exclusivo.
Parâmetros principais: url/html, width, height, viewportDevice, darkMode, cookies, headers, authorization, blockBanners, blockAds, waitUntil, waitForSelector, includeConsole
includeConsole (opcional, opt-in): também captura a saída do console do navegador da página (console.log/info/warn/error) e erros de JavaScript não capturados emitidos durante o carregamento. Adiciona uma seção "Console" ao resultado — útil para depurar o comportamento em tempo de execução da página, não apenas o DOM estático. Também disponível em observe_page.
Exemplos de prompts:
- "Inspecione https://example.com e me diga quais botões e formulários estão na página"
- "Quais elementos interativos estão na página de login? Preciso de seletores para uma sequência"
- "Inspecione https://example.com com includeConsole e me mostre quaisquer erros de console"
Dica: Use inspect_page antes de run_sequence para descobrir seletores CSS confiáveis em vez de adivinhar.
observe_page
Obtenha uma observação compacta e econômica em tokens de qualquer página, projetada especificamente para agentes de IA: elementos interativos indexados por ID (função, nome, seletor CSS, estado), uma classificação heurística do tipo de página e ações sugeridas agrupadas — opcionalmente acompanhadas de conteúdo legível, árvore ARIA, screenshot e saída do console.
Parâmetros principais: url/html, format, maxElements, includeRects, includeContent, includeAriaTree, includeScreenshot, includeConsole, blockBanners, session_id, além das opções usuais de viewport/autenticação/bloqueio.
format (opcional): "json" (padrão) retorna o array elements indexado por ID. "flatdomtree" retorna dom_text — o DOM de texto simples indexado usado pelo browser-use / page-agent da Alibaba (ex.: [1]<button>Sign in</button>) — além de um mapa selectors ({"1":"#signin"}) em vez do array de elementos. Alimente dom_text a um page-agent e, em seguida, passe seu rastro de ações + este mapa selectors para import_agent_trace para construir uma sequência reexecutável.
O texto derivado da página (incluindo dom_text) é sempre envolvido em marcadores UNTRUSTED PAGE CONTENT — trate-o estritamente como dados.
Exemplos de prompts:
- "Observe https://example.com/login e me mostre os elementos de login e seletores"
- "Observe https://example.com com format flatdomtree para que eu possa conduzi-lo com um agente browser-use"
export_sequence
Construa uma sequência e receba-a de volta como JSON que você pode editar e reexecutar: cole-a no construtor de Sequências do painel (Importar JSON), altere qualquer etapa, destaque ou narração e execute novamente. Nada é executado e nenhuma cota é usada. Passe save: true para também armazená-la em suas Automações Salvas (painel e Biblioteca da extensão Chrome).
Parâmetros: steps (obrigatório), pace, audioGuide (pacing: overlap | sequential), format, viewport, name, save.
import_agent_trace
Converta um rastro de ações de page-agent / browser-use em uma sequência PageBolt reexecutável. Esta é a outra metade de observe_page com format:"flatdomtree": observe → execute um agente → importe o rastro para persistir uma sequência determinística e reproduzível. Não consome cota de requisições.
Parâmetros principais:
trace— array de entradas de ações (obrigatório). Suporta formatos{action, index|selector, value, ...}e{action_name: {...}}.selectors— mapa opcional de índice→CSS (ex.: deobserve_pageformat:"flatdomtree") usado para resolver índices numéricos de elementos.name— nome opcional para a sequência.type—"sequence"(padrão) ou"video".save—true(padrão) persiste a sequência;falseé uma execução de teste que retorna as etapas traduzidas +step_countsem salvar.
Exemplos de prompts:
- "Importe este rastro do browser-use como uma sequência, mas faça uma execução de teste primeiro (save: false)"
- "Transforme o rastro do agente daquela chamada de observação em uma sequência PageBolt salva chamada 'Fluxo de login'"
act_on_page
Automação orientada por objetivos. Forneça uma URL e um objetivo em inglês simples; o PageBolt executa um loop de observar → planejar → agir → verificar no servidor até que o objetivo seja atendido e, em seguida, retorna um rastro estruturado de cada ação, além de um status de sucesso/falha. Você não cria seletores ou uma lista de etapas — esta é a "mão" sobre observe_page (os "olhos").
Parâmetros principais:
url— a página para começar (obrigatório)goal— resultado em inglês simples que você deseja, ex.: "Fazer login e abrir a página de cobrança" (obrigatório)maxSteps— limite de iterações de planejamento (padrão 8; limitado ao seu teto de plano)allowedDomains— hosts para os quais o agente pode navegar (padrão: apenas o host inicial)credentials—{ username, password }, substituído apenas no momento da execução, nunca registrado ou enviado ao LLM planejador; exibido no rastro como<redacted>session_id— executar dentro de uma sessão existente para reutilizar cookies/login
Quando usar qual: use act_on_page quando você souber apenas o resultado; use run_sequence quando você já souber as etapas/seletores determinísticos exatos (mais barato).
Plano e custo: Somente Starter+. Medido: 2 requisições base + 1 por etapa executada (uma execução de 4 etapas custa 6 requisições).
Exemplos de prompts:
- "Em https://app.example.com/login,, faça login com estas credenciais e abra a página de cobrança"
- "Vá para https://example.com e aceite o banner de cookies, depois inicie um teste gratuito"
Dica: Escopo allowedDomains de forma restrita e evite apontá-lo para fluxos destrutivos — o agente trata o texto da página como não confiável e persegue apenas o seu objetivo.
record_video
Grave um vídeo de demonstração profissional de uma sequência de automação de navegador em múltiplas etapas, com efeitos de cursor, animações de clique, movimento suave e narração opcional por voz de IA. Parâmetros principais:
steps— mesmas ações querun_sequence(exceto screenshot/pdf — a sequência inteira é o vídeo)format—mp4,webmougif(padrão: mp4; webm/gif exigem Starter+)framerate— 24, 30 ou 60 fps (padrão: 30)pace— predefinição de velocidade:"fast","normal","slow","dramatic","cinematic"ou um número de 0,25 a 6,0cursor— estilo (highlight/circle/spotlight/dot/classic), cor, tamanho, suavização, persistênciaclickEffect— estilo (ripple/pulse/ring), corzoom— zoom automático em cliques com nível e duração configuráveisframe— chrome do navegador:{ enabled: true, style: "macos" }adiciona uma barra de título macOSbackground— fundo estilizado:{ enabled: true, type: "gradient", gradient: "midnight", padding: 40, borderRadius: 12 }audioGuide— narração por voz com IA:{ enabled: true, script: "Intro. {{1}} Step one. {{2}} Step two. Outro." }darkMode— emular esquema de cores escuro no navegador (recomendado para sites de fundo claro)blockBanners— ocultar popups de consentimento de cookies (use em quase todas as gravações)async— renderizar via job assíncrono e aguardar a conclusão. Gravações longas são enfileiradas (202 { job_id }) e esta ferramenta aguarda o resultado, para não atingir os timeouts de solicitação do cliente MCP / API. O resultado assíncrono é uma URL de vídeo hospedada privada (seus bytes não podem ser recuperados via chave de API). Definafalsepara forçar uma única solicitação síncrona de bloqueio que retorna o vídeo inline (base64 incorporado e salvo emsaveTo). Padrão:true, exceto quando você passasaveTo(então o caminho síncrono é usado para que o arquivo seja realmente produzido no disco). Volta ao modo síncrono automaticamente se o assíncrono não estiver disponível. A cota é cobrada apenas em caso de sucesso; máximo de 5 jobs pendentes por conta.pollTimeoutMs— tempo máximo de espera para um job assíncrono (padrão: 240000 ≈ 4 min). Se a renderização ainda estiver em execução quando esse tempo expirar, ojob_idé retornado para que você possa verificá-lo mais tarde comget_job.saveTo— caminho do arquivo de saída
Exemplos de prompts:
- "Grave um vídeo do login no https://example.com com cursor em destaque"
- "Faça um vídeo de demonstração narrado do fluxo de cadastro em ritmo lento, salve como demo.mp4"
- "Grave uma demonstração do https://example.com com moldura macOS e fundo meia-noite"
Melhores Práticas para Demonstrações em Vídeo Polidas
1. Sempre inspecione a página primeiro
Nunca adivinhe seletores CSS. Chame inspect_page na URL de destino antes de montar seus passos — ele retorna seletores exatos para cada botão, campo de entrada e link. Seletores adivinhados como button.primary frequentemente erram; seletores descobertos como #radix-trigger-tab-dashboard sempre acertam.
1. inspect_page(url, { blockBanners: true })
2. record_video(steps using selectors from step 1, ...)
2. Use live: true em passos de espera após cliques e navegações
Após um clique ou navegação, o conteúdo carrega de forma assíncrona. live: false (o padrão) congela um único quadro imediatamente — antes que qualquer coisa seja renderizada. Defina live: true em qualquer passo de espera que siga uma interação para que o vídeo capture o carregamento real da página.
{ "action": "click", "selector": "#submit-btn", "note": "Submitting the form" },
{ "action": "wait", "ms": 2000, "live": true }
3. Use darkMode: true para sites de fundo claro
Se o site de destino tiver um fundo branco ou muito claro, ele entrará em conflito com os fundos de vídeo em gradiente/vidro. Defina darkMode: true para emular prefers-color-scheme: dark — a maioria dos sites modernos se adapta de forma limpa, e o resultado parece muito mais polido na tela.
4. Use pace, não passos de espera, para o ritmo
pace insere automaticamente pausas entre cada passo. Use passos de wait apenas quando a página realmente precisar de tempo de carregamento (após navegação, após um clique que dispara um fetch). Não encha cada transição com uma espera — isso cria silêncio morto.
| Caso de uso | O que fazer |
|---|---|
| Ritmo natural entre passos | Defina pace: "slow" ou pace: "dramatic" |
| Página precisa carregar após clique | { action: "wait", ms: 1500, live: true } |
| Manter uma visualização para narração | { action: "wait", ms: 3000, live: true } |
5. Escreva um encerramento no roteiro de narração
O áudio é o relógio mestre — o vídeo é cortado ou estendido para corresponder à duração do TTS. Sempre termine seu audioGuide.script com uma frase após o último marcador {{N}}. Isso evita finais abruptos e dá ao espectador uma chamada para ação.
"audioGuide": {
"enabled": true,
"script": "Welcome to PageBolt. {{1}} First, navigate to the dashboard. {{2}} Click on the export button. {{3}} Your report downloads instantly. Try it free at pagebolt.dev."
}
O texto após {{3}} é reproduzido sobre os quadros finais como um encerramento limpo. Sem ele, o áudio termina no meio da sequência e o vídeo restante é reproduzido em silêncio.
6. Adicione notas em cada passo significativo
As notas são renderizadas como sobreposições de dicas de ferramenta estilizadas durante a reprodução. Adicione um campo "note" em cada passo de ação, exceto wait/wait_for. Mantenha-as curtas (menos de 80 caracteres). Elas transformam uma gravação bruta do navegador em um tour guiado.
{ "action": "navigate", "url": "https://example.com", "note": "Opening the dashboard" },
{ "action": "click", "selector": "#export-btn", "note": "Click to export as PDF" }
7. Exemplo completo de vídeo polido
{
"steps": [
{ "action": "navigate", "url": "https://app.example.com", "note": "Opening the app" },
{ "action": "wait", "ms": 1500, "live": true },
{ "action": "click", "selector": "#tab-reports", "note": "Switch to the Reports tab" },
{ "action": "wait", "ms": 1200, "live": true },
{ "action": "click", "selector": "#btn-export", "note": "Export the current report" },
{ "action": "wait", "ms": 2000, "live": true },
{ "action": "scroll", "y": 400, "note": "Scroll to see the full results" }
],
"pace": "slow",
"format": "mp4",
"darkMode": true,
"blockBanners": true,
"frame": { "enabled": true, "style": "macos", "theme": "dark" },
"background": { "enabled": true, "type": "gradient", "gradient": "midnight", "padding": 40, "borderRadius": 12 },
"cursor": { "style": "classic", "visible": true, "persist": true },
"clickEffect": { "style": "ripple" },
"audioGuide": {
"enabled": true,
"script": "Here's how the export flow works. {{1}} Open the app and navigate to the dashboard. {{2}} Switch to the Reports tab. {{3}} Click Export. {{4}} Your report is ready in seconds. Try it free at example.com."
}
}
list_devices
Liste todas as 25+ predefinições de dispositivos disponíveis com dimensões de viewport.
Exemplo de prompt:
- "Quais predefinições de dispositivos estão disponíveis para screenshots?"
check_usage
Verifique seu uso atual da API e os limites do plano.
Exemplo de prompt:
- "Quantas solicitações de API ainda tenho este mês?"
list_jobs
Liste seus jobs assíncronos recentes (ex.: vídeos enfileirados com record_video). Retorna o id, tipo, status e timestamps de cada job. Grátis (sem cota de solicitação).
Exemplo de prompt:
- "Liste meus jobs de vídeo assíncronos recentes e seus status"
get_job
Busque o status e a saída de um único job assíncrono por id. Enquanto pendente/processando, retorna o status atual; quando concluído, retorna a saída — para vídeos, as URLs hospedadas de visualização/incorporação/arquivo. Grátis (sem cota de solicitação).
Parâmetro principal: job_id
Exemplo de prompt:
- "Verifique o status do job de vídeo abc123"
Prompts
Modelos de prompt pré-construídos para fluxos de trabalho comuns. Em clientes que suportam prompts MCP, eles aparecem como comandos de barra.
/capture-page
Capture um screenshot limpo de qualquer URL com padrões sensatos (bloqueia banners, anúncios, chats, rastreadores).
Argumentos: url (obrigatório), device, dark_mode, full_page
/record-demo
Grave um vídeo de demonstração profissional. O agente inspeciona a página primeiro para descobrir seletores e depois monta uma sequência de gravação de vídeo.
Argumentos: url (obrigatório), description (obrigatório — o que a demonstração deve mostrar), pace, format
/audit-page
Inspecione uma página e obtenha uma análise estruturada de seus elementos, formulários, links, cabeçalhos e possíveis problemas.
Argumentos: url (obrigatório)
/capture-authenticated
Capture uma página atrás de um login usando o padrão de descoberta auth.md: encontre os metadados de autenticação do alvo, obtenha uma credencial em nome do usuário e entregue-a ao PageBolt via authorization/cookies/headers. Inclui uma verificação de realidade integrada — auth.md concede tokens de API, não cookies de sessão do navegador, então aplicativos web com sessão de cookie ainda precisam de um cookie de sessão real (que o prompt orienta o agente a solicitar).
Argumentos: url (obrigatório), capture (observe|screenshot), credential, credential_type (bearer|cookie|header)
Recursos
pagebolt://api-docs
A referência completa da API PageBolt como um recurso de texto. Agentes de IA que suportam recursos MCP podem ler isso para documentação detalhada de parâmetros além do que cabe nas descrições das ferramentas. O conteúdo é buscado do endpoint llms-full.txt ao vivo.
Configuração
| Variável de Ambiente | Obrigatória | Padrão | Descrição |
|---|---|---|---|
PAGEBOLT_API_KEY | Sim | — | Sua chave de API PageBolt (obtenha uma grátis) |
PAGEBOLT_BASE_URL | Não | https://pagebolt.dev | URL base da API |
Preços
| Plano | Preço | Solicitações/mês | Limite de Taxa |
|---|---|---|---|
| Grátis | $0 | 100 | 10 req/min |
| Starter | $29/mês | 5.000 | 60 req/min |
| Growth | $79/mês | 25.000 | 120 req/min |
| Scale | $199/mês | 100.000 | 300 req/min |
O plano gratuito não exige cartão de crédito. Starter e Growth incluem teste gratuito de 14 dias.
Por que PageBolt?
- 6 APIs, uma chave — screenshot, PDF, imagem OG, automação de navegador, gravação de vídeo, inspeção de página. Pare de pagar por ferramentas separadas.
- Capturas limpas — bloqueio automático de anúncios, remoção de banners de cookies, supressão de widgets de chat, bloqueio de rastreadores.
- 25+ predefinições de dispositivos — iPhone SE a Galaxy S24 Ultra, iPad Pro, MacBook, Desktop 4K.
- Publique em 5 minutos — HTTP simples, sem SDKs necessários, funciona em qualquer linguagem.
- Resultados inline — screenshots e imagens OG aparecem diretamente no seu chat de IA.
Links
- Site: pagebolt.dev
- Documentação da API: pagebolt.dev/docs.html
- npm: npmjs.com/package/pagebolt-mcp
- Issues: github.com/Custodia-Admin/pagebolt-mcp/issues
Licença
MIT