Rendex Screenshot

Capture screenshots de sites como PNG/JPEG via agentes de IA. Captura de página inteira, modo escuro, bloqueio de anúncios, viewports personalizados. Implantado na borda com Cloudflare Workers, plano gratuito incluído.

Documentação

@copperline/rendex-mcp

npm version npm downloads License: MIT MCP Badge

Servidor MCP para Rendex — renderize HTML bruto, Markdown ou qualquer URL em uma imagem ou PDF por meio de agentes de IA usando o Model Context Protocol.

Início Rápido

Claude Desktop / Cursor / Windsurf (npx)

Adicione à configuração do seu cliente MCP:

{
  "mcpServers": {
    "rendex": {
      "command": "npx",
      "args": ["-y", "@copperline/rendex-mcp"],
      "env": {
        "RENDEX_API_KEY": "your-api-key"
      }
    }
  }
}

Onde adicionar:

ClienteLocal da configuração
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
Cursor.cursor/mcp.json na raiz do projeto, ou Settings > MCP
WindsurfSettings > MCP Servers

Claude Code (CLI)

Adicione um .mcp.json à raiz do seu projeto com a mesma configuração acima. Em seguida, reinicie o Claude Code.

Importante: Adicione .mcp.json ao seu .gitignore — ele contém sua chave de API.

Remoto (zero-instalação, OAuth ou chave de API)

Conecte-se ao servidor hospedado em https://mcp.rendex.dev/mcp — sem necessidade de instalação. Ele é protegido por OAuth 2.1 (código de autorização + PKCE S256), então clientes com suporte a OAuth (ChatGPT, Claude, Cursor, o MCP Inspector) conectam-se sem chave de API — você faz login com um código de e-mail de uso único e cada chamada é cobrada no próprio plano e pool de créditos da Rendex.

Clientes que preferem uma chave estática ainda podem passar uma diretamente:

{
  "mcpServers": {
    "rendex": {
      "url": "https://mcp.rendex.dev/mcp",
      "headers": {
        "Authorization": "Bearer your-api-key"
      }
    }
  }
}

Ferramentas

rendex_screenshot

Renderize qualquer página web, HTML bruto ou Markdown em uma imagem ou PDF.

"Take a screenshot of https://example.com"
"Capture the full page of https://news.ycombinator.com in dark mode"
"Generate a PDF of https://github.com with A4 page size"
"Capture https://amazon.de as seen from Germany"
"Render this HTML invoice as a PDF"
"Render this Markdown release note as a PDF"

Parâmetros:

ParâmetroTipoPadrãoDescrição
urlstringobrigatório*URL da página web a capturar. Mutuamente exclusivo com html e markdown.
htmlstringHTML bruto a renderizar. Mutuamente exclusivo com url e markdown.
markdownstringMarkdown a renderizar (o servidor converte para HTML). Mutuamente exclusivo com url e html.
dataobjectDados chave-valor para templates Mustache. Quando definido, a string html ou markdown é renderizada como um template Mustache sem lógica antes da captura. Inválido com url.
format"png" | "jpeg" | "webp" | "pdf""png"Formato de saída
fullPagebooleanfalseCapturar a página inteira com rolagem
darkModebooleanfalseEmular esquema de cores escuro
widthnumber1280Largura do viewport (320-3840)
heightnumber800Altura do viewport (240-2160)
resizeWidthnumberReduzir a saída para esta largura em px (proporção preservada se resizeHeight for omitido). Ignorado para PDF
resizeHeightnumberReduzir a saída para esta altura em px (proporção preservada se resizeWidth for omitido). Ignorado para PDF
qualitynumber80Qualidade da imagem 1-100 (somente JPEG/WebP, padrão 80)
delaynumber0Aguardar ms antes da captura
blockAdsbooleantrueBloquear anúncios e rastreadores
blockCookieBannersbooleanOcultar banners comuns de cookies/consentimento (GDPR/CCPA) antes da captura
blockResourceTypesstring[]Bloquear tipos de recurso: font, image, media, stylesheet, other
devicestringPredefinição de dispositivo: desktop, iphone_15, iphone_se, pixel_8, ipad, ipad_pro — define viewport, escala e user agent de uma só vez. Substitui width/height/deviceScaleFactor/userAgent
deviceScaleFactornumber2Proporção de pixels do dispositivo (1-3). 2× Retina por padrão
timeoutnumber30Máximo de segundos para aguardar o carregamento da página (5-60)
waitUntilstring"networkidle2"Prontidão da página: load, domcontentloaded, networkidle0, networkidle2
waitForSelectorstringSeletor CSS para aguardar antes da captura
bestAttemptbooleantrueRetornar renderização parcial em caso de timeout em vez de falhar
selectorstringSeletor CSS do elemento a capturar em vez da página inteira
hideSelectorsstring[]Seletores CSS para ocultar (display:none) antes da captura, ex.: ['.modal', '#newsletter-popup']. Máx. 50
cssstringCSS personalizado para injetar antes da captura (máx. 50KB)
jsstringJavaScript personalizado para executar antes da captura (máx. 50KB)
cookiesarrayCookies para definir em capturas autenticadas (máx. 50)
headersobjectCabeçalhos HTTP personalizados para a solicitação da página
userAgentstringSubstituir a string de user agent do navegador
pdfFormatstringTamanho da página PDF: A4, Letter, Legal, Tabloid, A3
pdfLandscapebooleanOrientação paisagem do PDF
pdfPrintBackgroundbooleantrueImprimir fundo no PDF
pdfScalenumber1Fator de escala do PDF (0.1-2)
pdfMarginobjectMargens do PDF: {top, right, bottom, left} como valores CSS
geostringCódigo de país ISO para captura com segmentação geográfica (Pro/Enterprise)
geoCitystringCidade para segmentação geográfica (requer geo)
geoStatestringEstado para segmentação geográfica (requer geo)
asyncbooleanProcessar de forma assíncrona (retorna ID do job)
webhookUrlstringURL para receber callback quando a captura assíncrona for concluída (Starter+; Free/Basic consultam o status do job)
cacheTtlnumberSegundos para armazenar o resultado em cache (3600-2592000)

rendex_extract

Extraia conteúdo limpo em modo leitor de qualquer página web como Markdown, JSON ou HTML. Executa o mesmo processo de renderização Chromium de uma captura de tela, portanto captura o conteúdo após a execução do JavaScript — lidando com SPAs que leitores baseados apenas em fetch não conseguem. Remove navegação, anúncios e conteúdo repetitivo, retornando o corpo do artigo além de título, assinatura e resumo. Ótimo para alimentar conteúdo de página a um LLM, sumarização ou ingestão RAG.

"Extract the article text from https://example.com/post as Markdown"
"Pull the readable content from this SPA as JSON so I can summarize it"

Parâmetros:

ParâmetroTipoPadrãoDescrição
urlstringobrigatórioURL da página web para extrair conteúdo legível
extractFormat"markdown" | "json" | "html""markdown"Formato de saída — markdown (prosa amigável para LLM), json (estruturado: título/assinatura/resumo/nomeDoSite/comprimento), ou html (HTML limpo em modo leitor)
devicestringPredefinição de dispositivo (desktop, iphone_15, iphone_se, pixel_8, ipad, ipad_pro) — extrai a versão mobile/tablet de uma página
blockAdsbooleantrueBloquear anúncios e rastreadores antes da extração
blockCookieBannersbooleanOcultar muros comuns de cookies/consentimento antes da extração
hideSelectorsstring[]Seletores CSS para ocultar antes da extração, ex.: ['.modal', '#newsletter-popup']. Máx. 50
waitUntilstring"networkidle2"Prontidão da página: load, domcontentloaded, networkidle0, networkidle2
timeoutnumber30Máximo de segundos para aguardar o carregamento da página (5-60)

rendex_render_link

Renderize uma URL, HTML bruto ou Markdown e receba uma URL de imagem assinada, hospedada e com cache de borda em vez dos bytes — ideal para imagens OG dinâmicas. Coloque a URL em <meta property="og:image"> ou em uma tag <img> e a Rendex serve uma cópia em cache a cada compartilhamento. Aceita os mesmos parâmetros de rendex_screenshot, além de um expiresIn opcional. Retorna { url, expiresAt, format, cacheTtl }.

"Make me a hosted OG-image URL for this Markdown release note"
"Give me a render link for this HTML card that I can drop into og:image"
ParâmetroTipoPadrãoDescrição
(todos os parâmetros de rendex_screenshot)Mesmas opções de fonte (url/html/markdown), formato, dimensionamento e templates
expiresInnumberTTL do servidorSegundos até a URL assinada expirar (60–2592000)

render_artifact

Transforme Markdown ou HTML em um artefato baixável com marca — um PDF, um PNG e uma página de compartilhamento hospedada — em uma única chamada. Ideal para saídas de agentes: relatórios, faturas, resumos, notas de versão, dashboards. Aplique um logotipo, cor de destaque, fonte, cabeçalho e rodapé; escolha tamanho/orientação/margens da página PDF. Retorna URLs hospedadas { pdfUrl, pngUrl, shareUrl, expiresAt } — sem necessidade de armazenamento do seu lado. Cada formato solicitado custa 1 crédito de renderização.

"Turn this Markdown report into a branded PDF and PNG with our logo and an orange accent"
"Render this invoice HTML to a PDF and give me a share link that expires in a week"
ParâmetroTipoPadrãoDescrição
contentstringobrigatórioO corpo em Markdown ou HTML a renderizar (até ~4MB)
inputFormat"markdown" | "html""markdown"Como interpretar contentmarkdown é convertido em HTML estilizado; html é usado como fragmento de corpo
formats("pdf" | "png")[]["pdf","png"]Quais formatos produzir. Cada um custa 1 crédito
accentColorstringCor de destaque CSS para a barra, links e títulos (ex.: #EA580C)
logostringURL http(s) de uma imagem de logotipo exibida no cabeçalho
headerstringlinha de texto simples do cabeçalho exibida ao lado do logotipo
footerstringlinha de texto simples do rodapé exibida na parte inferior
fontstringpilha CSS font-family para o corpo
pageSetupobject{ size, orientation, margin{top,right,bottom,left}, scale, width, height, fullPage }
dataobjectDados Mustache — quando definido, content é renderizado como um template Mustache sem lógica (mais {{logo}}/{{header}}/… de branding) antes da conversão
expiresInnumber86400Segundos até as URLs hospedadas expirarem (3600–2592000). Padrão 24h

Rendex Watch

Monitore uma URL em um agendamento e seja notificado quando ela mudar — diff visual com Chrome real (com sobreposição destacada), diff de texto extraído, ou ambos. Oito ferramentas permitem que um agente configure, inspecione, edite e remova watches na plataforma compartilhada da Rendex (uma chave rdx_, um pool de créditos).

"Watch https://example.com/pricing for visual changes and alert my webhook"
"Before I save it, test whether you can capture #pricing on that page"
"Show me the last few runs of watch <id> — did anything change?"
FerramentaFinalidadeEntradas principais
watch_createCriar um watch (ativo → captura sua linha de base agora)url, name?, intervalMinutes?, diffMode? (visual/texto/ambos), threshold?, renderParams?, webhookUrl? (Starter+), notifyEmail?, paused?
watch_testTestar uma configuração primeiro (não cria nada)mesmos de watch_create
watch_listListar seus watchesstatus? (ativo/pausado/todos), cursor?, limit?
watch_getBuscar um watch (+ URL da linha de base)id
watch_runExecutar uma verificação agora (1 crédito)id
watch_runsHistórico de execuções com URLs assinadas de antes/depois/sobreposiçãoid, cursor?, limit?
watch_updateEditar um watch no local — intervalo, modo de diff, canais, parâmetros de renderizaçãoid, mais qualquer campo watch_create; webhookUrl/notifyEmail aceitam null para limpar um canal
watch_deleteExcluir um watch + suas execuçõesid

renderParams carrega os controles de captura por verificação (fullPage padrão true, selector, device, geo (Pro+), além de controles de ruído ignoreRegions/ignoreText/minTextChars/suppressWhilePresent e uaMode). Pisos de intervalo são por plano (Free 1440 / Basic 180 / Starter 60 / Pro 30 / Enterprise 5). Metadados do watch + URLs de imagem assinadas são retornados como texto JSON.

rendex_account

Verifique a conta de dentro do agente: em qual plano ela está, quantos créditos de renderização foram usados neste mês versus o limite (e quando ele é redefinido), o limite de taxa por minuto e um link de upgrade com um toque. Permite que um agente responda "quanto eu usei?" ou "como consigo mais renders?" sem enviar o usuário ao painel. Somente leitura — não custa créditos.

"How many Rendex renders do I have left this month?"
"What plan am I on, and how do I upgrade for more?"

Retorna { plan, usage: { used, limit, remaining, unlimited, resetsAt }, rateLimitPerMinute, upgrade: { recommendedPlan, recommendedPlanCredits, upgradeUrl, manageBillingUrl } }.

Modelagem de dados

Transforme um modelo reutilizável em muitos documentos. Passe um objeto data junto com html ou markdown, e a Rendex renderiza a string como um template Mustache sem lógica antes da captura — interpolação {{var}}, loops {{#items}}…{{/items}} e acesso aninhado a {{a.b}}. Ótimo para faturas, relatórios, certificados e cartões OG.

"Render this HTML invoice template to a PDF, filling it with this data:
 <h1>Invoice {{number}}</h1><p>Total: {{total}}</p>
 data = { number: 'INV-014', total: '$2,400' }"

data é válido apenas com html ou markdown — combiná-lo com url retorna um erro de validação.

Autenticação

Obtenha sua chave de API em rendex.dev.

Defina a variável de ambiente RENDEX_API_KEY na configuração do seu cliente MCP.

Preços

PlanoChamadas/MêsTaxa
Gratuito1003/min
Iniciante10.00060/min
Pro100.000300/min
EmpresarialPersonalizado1.000/min

Licença

MIT — Copperline Labs LLC