Skip to main content
Glama

rendex_screenshot

Capture screenshots or generate PDFs from webpages or raw HTML with options for full-page capture, dark mode, ad blocking, custom viewports, and CSS/JS injection.

Instructions

Capture a screenshot or PDF of any webpage or raw HTML. Supports full-page capture, dark mode, ad blocking, custom viewports, CSS/JS injection, cookie/header injection, PDF output, HTML rendering, and progressive fallback for heavy sites. Returns partial renders on timeout by default (bestAttempt mode).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoThe webpage URL to capture. Mutually exclusive with 'html'.
htmlNoRaw HTML to render and capture. Mutually exclusive with 'url'. Great for invoices, social cards, email templates, OG images.
formatNoOutput format — png (lossless), jpeg (smaller), webp (smallest), or pdf (document). Use pdf for invoices, reports, archival.png
fullPageNoCapture the full scrollable page instead of just the viewport
darkModeNoEmulate dark color scheme (prefers-color-scheme: dark)
widthNoViewport width in pixels (320-3840)
heightNoViewport height in pixels (240-2160)
qualityNoImage quality 1-100 (JPEG/WebP only, ignored for PNG/PDF)
delayNoMilliseconds to wait after page load before capture (useful for JS-rendered content)
blockAdsNoBlock ads and trackers before capture
blockResourceTypesNoBlock specific resource types to speed up capture. E.g. ['font', 'image'] for text-only screenshots.
deviceScaleFactorNoDevice pixel ratio (1 = standard, 2 = retina). Defaults to 2× Retina.
timeoutNoMaximum seconds to wait for page load (5-60). Cloudflare has a 60s hard cap.
waitUntilNoPage readiness event. networkidle2 (default) is best for most sites. Use domcontentloaded for speed, networkidle0 for completeness.networkidle2
waitForSelectorNoCSS selector to wait for before capture. Essential for SPAs (e.g. '.main-content', '#app-loaded')
bestAttemptNoIf true (default), capture whatever is rendered on timeout instead of failing. Set to false to get a hard error on timeout.
selectorNoCSS selector of a specific element to capture instead of the full page. Useful for OG images, component extraction (e.g. '#hero', '.pricing-card')
cssNoCustom CSS to inject into the page before capture. Hide cookie banners, add watermarks, override styles. Max 50KB.
jsNoCustom JavaScript to execute in the page before capture. Runs in the browser sandbox. Max 50KB.
cookiesNoCookies to set before capture. Useful for authenticated pages. Max 50 cookies.
headersNoCustom HTTP headers to send with the page request. Cannot override Host, Connection, Content-Length, or Transfer-Encoding.
userAgentNoOverride the browser user agent string.
pdfFormatNoPDF page size. Only used when format='pdf'. Default: A4
pdfLandscapeNoPDF landscape orientation. Only used when format='pdf'.
pdfPrintBackgroundNoPrint background colors/images in PDF. Default: true
pdfScaleNoPDF scale factor (0.1-2). Default: 1
pdfMarginNoPDF page margins. Only used when format='pdf'. Accepts CSS values.
asyncNoProcess capture asynchronously. Returns a jobId immediately instead of waiting. Poll GET /v1/jobs/:jobId for status, or use webhookUrl for push notification.
webhookUrlNoURL to receive a POST callback when async capture completes. Payload is HMAC-SHA256 signed. Requires async=true.
cacheTtlNoSeconds to cache the result in R2 storage (3600-2592000). Returns a signed URL for retrieval. Requires async=true.
geoNoISO 3166-1 alpha-2 country code for geo-targeted capture (e.g., 'US', 'DE', 'JP'). Renders the page as seen from that country. Pro/Enterprise only. Note: CSS/JS injection, cookies, element capture, dark mode, and some other features are not available with geo-targeting.
geoCityNoCity for more precise geo-targeting (e.g., 'Berlin', 'New York'). Requires 'geo'.
geoStateNoState or region for more precise geo-targeting (e.g., 'California'). Requires 'geo'.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and provides significant behavioral context: it discloses timeout handling ('Returns partial renders on timeout by default'), performance features ('progressive fallback for heavy sites'), and output behavior ('bestAttempt mode'). However, it doesn't mention rate limits, authentication needs, or error conditions beyond timeout.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: the first states the core purpose and key features, the second adds critical behavioral detail. Every phrase adds value, though the feature list is dense and could benefit from slight reorganization for better front-loading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 33 parameters and no output schema, the description provides good context on purpose, features, and timeout behavior. However, it lacks details on return values (format, structure) and doesn't fully address all behavioral aspects like error handling or performance constraints, leaving some gaps given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 33 parameters thoroughly. The description adds minimal parameter-specific semantics beyond the schema, mainly highlighting the dual input approach (URL vs HTML) and bestAttempt behavior. It doesn't compensate for schema gaps because there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('capture', 'render') and resources ('screenshot or PDF of any webpage or raw HTML'). It distinguishes the dual input options (URL vs HTML) and comprehensive feature set, making the purpose immediately understandable without sibling tools to differentiate from.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage contexts through feature mentions (e.g., 'Great for invoices, social cards, email templates, OG images' for HTML input) but lacks explicit guidance on when to choose this tool over alternatives. With no sibling tools, this is less critical, but it doesn't provide clear when-not-to-use scenarios or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/copperline-labs/rendex-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server