Skip to main content
Glama

Take a screenshot

screenshot

Render HTML or a public URL to a PNG or JPEG image at a set viewport size, returning the file directly or saving it to a local path without storing anything.

Instructions

Render HTML or a public URL to a PNG or JPEG image. Send exactly one of html or url. Returns the image (or writes it to save_to). Nothing is stored by pagenull.

Input Schema

NameRequiredDescriptionDefault
urlNo
htmlNo
testNoTest render: watermarked, free, not counted against the quota.
typeNo
widthNoViewport width in CSS px (100–4000). Default 1280.
heightNoViewport height in CSS px (100–4000). Default 800.
optionsNoAny other option from https://pagenull.dev/docs/api (e.g. waitFor, timeoutMs, scale, headerHtml). Checked by the API.
qualityNoJPEG quality, 1–100.
save_toNoWrite the file to this path on this machine instead of returning it as base64. The folder must exist. Use it for large files.
fullPageNoCapture the whole scrollable page.
overwriteNoReplace the file at save_to if it already exists. Default false.
deviceScaleFactorNo1–3. Use 2 for sharp images.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and delivers the key traits: the URL must be public, the result is returned inline unless save_to is set, and 'Nothing is stored by pagenull' discloses statelessness/privacy. It says nothing about failures, timeouts, or quota consumption, which matter for a 12-param render tool.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core action, then the exclusive-or rule, then the return behavior. No filler or restatement of the title.

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 tool with a nested passthrough `options` object and no output schema, the description covers input source, output format, return vs file, and statelessness. Remaining gaps (error/timeout behavior, quota implications of non-test renders) are minor and partly covered by schema descriptions.

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

Parameters4/5

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

Schema coverage is 75%, so the schema handles most parameters, but the description adds a real constraint the schema does not encode: html and url are mutually exclusive, exactly one required (required list is empty). It also clarifies the save_to-vs-return branch, adding meaning beyond the property docs.

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

Purpose4/5

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

The first sentence gives a specific verb+resource+output ('Render HTML or a public URL to a PNG or JPEG image'), which implicitly separates it from render_pdf by output format. Differentiation from siblings is achieved through the format keyword rather than naming the alternative, so it stops short of a 5.

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?

'Send exactly one of html or url' is an invocation constraint, not a when-to-use rule. Nothing tells the agent when to choose this over render_pdf, when to use test mode (only the schema hints at quota), or when save_to beats inline base64.

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