Rendex Screenshot

Captura capturas de pantalla de sitios web como PNG/JPEG mediante agentes de IA. Captura de página completa, modo oscuro, bloqueo de anuncios, viewports personalizados. Desplegado en el borde en Cloudflare Workers, nivel gratuito incluido.

Documentación

@copperline/rendex-mcp

npm version npm downloads License: MIT MCP Badge

Servidor MCP para Rendex — renderiza HTML crudo, Markdown o cualquier URL a una imagen o PDF mediante agentes de IA usando el Protocolo de Contexto de Modelo (MCP).

Inicio Rápido

Claude Desktop / Cursor / Windsurf (npx)

Añade a la configuración de tu cliente MCP:

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

Dónde añadirlo:

ClienteUbicación de configuración
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
Cursor.cursor/mcp.json en la raíz del proyecto, o Settings > MCP
WindsurfSettings > MCP Servers

Claude Code (CLI)

Añade un .mcp.json a la raíz de tu proyecto con la misma configuración anterior. Luego reinicia Claude Code.

Importante: Añade .mcp.json a tu .gitignore — contiene tu clave de API.

Remoto (sin instalación, OAuth o clave de API)

Conéctate al servidor alojado en https://mcp.rendex.dev/mcp — no se necesita instalación. Está protegido por OAuth 2.1 (código de autorización + PKCE S256), por lo que los clientes compatibles con OAuth (ChatGPT, Claude, Cursor, el Inspector MCP) se conectan sin clave de API — inicias sesión con un código de correo de un solo uso y cada llamada se factura contra su propio plan y fondo de créditos de Rendex.

Los clientes que prefieran una clave estática pueden pasarla directamente:

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

Herramientas

rendex_screenshot

Renderiza cualquier página web, HTML crudo o Markdown a una imagen o 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ámetroTipoPredeterminadoDescripción
urlstringrequerido*URL de la página web a capturar. Mutuamente excluyente con html y markdown.
htmlstring—HTML crudo a renderizar. Mutuamente excluyente con url y markdown.
markdownstring—Markdown a renderizar (el servidor lo convierte a HTML). Mutuamente excluyente con url y html.
dataobject—Datos clave-valor para plantillas Mustache. Cuando se establece, la cadena html o markdown se renderiza como una plantilla Mustache sin lógica antes de la captura. Inválido con url.
format"png" | "jpeg" | "webp" | "pdf""png"Formato de salida
fullPagebooleanfalseCapturar la página completa desplazable
darkModebooleanfalseEmular esquema de color oscuro
widthnumber1280Ancho de viewport (320-3840)
heightnumber800Alto de viewport (240-2160)
resizeWidthnumber—Reducir la salida a este ancho en px (se preserva la relación de aspecto si resizeHeight se omite). Ignorado para PDF
resizeHeightnumber—Reducir la salida a este alto en px (se preserva la relación de aspecto si resizeWidth se omite). Ignorado para PDF
qualitynumber80Calidad de imagen 1-100 (solo JPEG/WebP, predeterminado 80)
delaynumber0Esperar ms antes de la captura
blockAdsbooleantrueBloquear anuncios y rastreadores
blockCookieBannersboolean—Ocultar banners comunes de cookies/consentimiento (GDPR/CCPA) antes de la captura
blockResourceTypesstring[]—Bloquear tipos de recursos: font, image, media, stylesheet, other
devicestring—Preajuste de dispositivo: desktop, iphone_15, iphone_se, pixel_8, ipad, ipad_pro — establece viewport, escala y agente de usuario de una sola vez. Anula width/height/deviceScaleFactor/userAgent
deviceScaleFactornumber2Relación de píxeles del dispositivo (1-3). 2× Retina por predeterminado
timeoutnumber30Máximo de segundos para esperar la carga de la página (5-60)
waitUntilstring"networkidle2"Preparación de la página: load, domcontentloaded, networkidle0, networkidle2
waitForSelectorstring—Selector CSS para esperar antes de la captura
bestAttemptbooleantrueDevolver renderizado parcial en caso de tiempo de espera agotado en lugar de fallar
selectorstring—Selector CSS del elemento a capturar en lugar de la página completa
hideSelectorsstring[]—Selectores CSS a ocultar (display:none) antes de la captura, p. ej. ['.modal', '#newsletter-popup']. Máximo 50
cssstring—CSS personalizado a inyectar antes de la captura (máx. 50KB)
jsstring—JavaScript personalizado a ejecutar antes de la captura (máx. 50KB)
cookiesarray—Cookies a establecer para capturas autenticadas (máx. 50)
headersobject—Cabeceras HTTP personalizadas para la solicitud de la página
userAgentstring—Anular la cadena de agente de usuario del navegador
pdfFormatstring—Tamaño de página PDF: A4, Letter, Legal, Tabloid, A3
pdfLandscapeboolean—Orientación horizontal del PDF
pdfPrintBackgroundbooleantrueImprimir fondo en PDF
pdfScalenumber1Factor de escala del PDF (0.1-2)
pdfMarginobject—Márgenes del PDF: {top, right, bottom, left} como valores CSS
geostring—Código de país ISO para captura geodirigida (Pro/Enterprise)
geoCitystring—Ciudad para geodirigido (requiere geo)
geoStatestring—Estado para geodirigido (requiere geo)
asyncboolean—Procesar de forma asíncrona (devuelve ID de trabajo)
webhookUrlstring—URL para recibir callback cuando la captura asíncrona se complete (Starter+; Free/Basic consultan el estado del trabajo)
cacheTtlnumber—Segundos para almacenar en caché el resultado (3600-2592000)

rendex_extract

Extrae contenido limpio en modo lectura de cualquier página web como Markdown, JSON o HTML. Ejecuta el mismo proceso de renderizado Chromium que una captura de pantalla, por lo que captura contenido después de que JavaScript se ejecute — manejando SPAs que los lectores de solo búsqueda omiten. Elimina navegación, anuncios y contenido repetitivo, devolviendo el cuerpo del artículo más título, firma y extracto. Ideal para alimentar contenido de página a un LLM, resumir o ingesta 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ámetroTipoPredeterminadoDescripción
urlstringrequeridoURL de la página web de la que extraer contenido legible
extractFormat"markdown" | "json" | "html""markdown"Forma de salida — markdown (prosa amigable para LLM), json (estructurado: título/firma/extracto/nombreSitio/longitud), o html (HTML en modo lectura limpio)
devicestring—Preajuste de dispositivo (desktop, iphone_15, iphone_se, pixel_8, ipad, ipad_pro) — extrae la versión móvil/tablet de una página
blockAdsbooleantrueBloquear anuncios y rastreadores antes de la extracción
blockCookieBannersboolean—Ocultar muros comunes de cookies/consentimiento antes de la extracción
hideSelectorsstring[]—Selectores CSS a ocultar antes de la extracción, p. ej. ['.modal', '#newsletter-popup']. Máximo 50
waitUntilstring"networkidle2"Preparación de la página: load, domcontentloaded, networkidle0, networkidle2
timeoutnumber30Máximo de segundos para esperar la carga de la página (5-60)

rendex_render_link

Renderiza una URL, HTML crudo o Markdown y devuelve una URL de imagen firmada, alojada y con caché perimetral en lugar de los bytes — ideal para imágenes OG dinámicas. Coloca la URL en <meta property="og:image"> o una etiqueta <img> y Rendex sirve una copia en caché en cada compartido. Acepta los mismos parámetros que rendex_screenshot, más un expiresIn opcional. Devuelve { 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ámetroTipoPredeterminadoDescripción
(todos los parámetros de rendex_screenshot)——Mismas opciones de fuente (url/html/markdown), formato, tamaño y plantillas
expiresInnumberTTL del servidorSegundos hasta que la URL firmada expire (60–2592000)

render_artifact

Convierte Markdown o HTML en un artefacto descargable con marca — un PDF, un PNG y una página de compartido alojada — en una sola llamada. Ideal para salidas de agentes: informes, facturas, resúmenes, notas de versión, paneles. Aplica un logotipo, color de acento, fuente, cabecera y pie de página; elige tamaño/orientación/márgenes de página PDF. Devuelve URLs alojadas { pdfUrl, pngUrl, shareUrl, expiresAt } — no se necesita almacenamiento de tu lado. Cada formato solicitado cuesta 1 crédito de renderizado.

"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ámetroTipoPredeterminadoDescripción
contentstringrequeridoEl cuerpo de Markdown o HTML a renderizar (hasta ~4MB)
inputFormat"markdown" | "html""markdown"Cómo interpretar content — markdown se convierte a HTML con estilo; html se usa como fragmento de cuerpo
formats("pdf" | "png")[]["pdf","png"]Qué formatos producir. Cada uno cuesta 1 crédito
accentColorstring—Color de acento CSS para la barra, enlaces y encabezados (p. ej. #EA580C)
logostring—URL http(s) de una imagen de logotipo mostrada en la cabecera
headerstring—línea de cabecera en texto plano mostrada junto al logotipo
footerstring—línea de pie de página en texto plano mostrada en la parte inferior
fontstring—pila de font-family CSS para el cuerpo
pageSetupobject—{ size, orientation, margin{top,right,bottom,left}, scale, width, height, fullPage }
dataobject—Datos Mustache — cuando se establece, content se renderiza como una plantilla Mustache sin lógica (más {{logo}}/{{header}}/… de branding) antes de la conversión
expiresInnumber86400Segundos hasta que las URLs alojadas expiren (3600–2592000). Predeterminado 24h

Rendex Watch

Monitorea una URL en un horario y recibe notificaciones cuando cambie — diff visual en Chrome real (con una superposición resaltada), diff de texto extraído, o ambos. Ocho herramientas permiten a un agente configurar, inspeccionar, editar y eliminar monitoreos en la plataforma compartida de Rendex (una clave rdx_, un fondo 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?"
HerramientaPropósitoEntradas clave
watch_createCrear un monitoreo (activo → captura su línea base ahora)url, name?, intervalMinutes?, diffMode? (visual/texto/ambos), threshold?, renderParams?, webhookUrl? (Starter+), notifyEmail?, paused?
watch_testProbar una configuración primero (no crea nada)igual que watch_create
watch_listListar tus monitoreosstatus? (activo/pausado/todos), cursor?, limit?
watch_getObtener un monitoreo (+ URL de línea base)id
watch_runEjecutar una verificación ahora (1 crédito)id
watch_runsHistorial de ejecuciones con URLs firmadas antes/después/superposiciónid, cursor?, limit?
watch_updateEditar un monitoreo en el lugar — intervalo, modo de diff, canales, parámetros de renderizadoid, más cualquier campo watch_create; webhookUrl/notifyEmail aceptan null para limpiar un canal
watch_deleteEliminar un monitoreo + sus ejecucionesid

renderParams lleva los controles de captura por verificación (fullPage predeterminado a true, selector, device, geo (Pro+), más controles de ruido ignoreRegions/ignoreText/minTextChars/suppressWhilePresent y uaMode). Los mínimos de intervalo son por plan (Free 1440 / Basic 180 / Starter 60 / Pro 30 / Enterprise 5). Los metadatos del monitoreo + URLs de imagen firmadas se devuelven como texto JSON.

rendex_account

Consulta la cuenta desde el agente: en qué plan está, cuántos créditos de render se han usado este mes frente al límite (y cuándo se restablece), el límite de velocidad por minuto y un enlace de actualización con un solo toque. Permite que un agente responda "¿cuánto he usado?" o "¿cómo obtengo más renders?" sin enviar al usuario al panel de control. Solo lectura: no cuesta créditos.

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

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

Plantillas de datos

Convierte una plantilla reutilizable en muchos documentos. Pasa un objeto data junto con html o markdown, y Rendex renderiza la cadena como una plantilla Mustache sin lógica antes de la captura: interpolación {{var}}, bucles {{#items}}…{{/items}} y acceso anidado a {{a.b}}. Ideal para facturas, informes, certificados y tarjetas 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 es válido solo con html o markdown: combinarlo con url devuelve un error de validación.

Autenticación

Obtén tu clave de API en rendex.dev.

Configura la variable de entorno RENDEX_API_KEY en la configuración de tu cliente MCP.

Precios

PlanLlamadas/MesVelocidad
Gratis1003/min
Inicial10,00060/min
Pro100,000300/min
EmpresaPersonalizado1,000/min

Licencia

MIT — Copperline Labs LLC