Skip to main content
Glama

url_to_screenshot

Read-only

Capture a page as an image. Requires an API key purchased at https://url-pdf.hammbox.com/buy. If this MCP request carries a valid "x-api-key" or "Authorization: Bearer" header, it renders directly and returns a 1-hour download URL; otherwise it returns purchase guidance.

Input Schema

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL of the page to capture. Required.
clipNoClip region as "x,y,width,height" — or an object {x,y,width,height}. Optional.
widthNoViewport width in px, 320-3840. Default 1280.
formatNoImage format. Default png.
heightNoViewport height in px, 240-2160. Default 900.
waitMsNoExtra settle time after load, 0-10000ms. Few dynamics pages need this.
qualityNoJPEG quality 0-1. Ignored for png. Default 0.8.
blockAdsNoBlock requests to major ad/analytics domains before rendering. Default false.
darkModeNoRender with prefers-color-scheme: dark. Default false.
fullPageNoCapture the full scrollable page, not just the viewport. Default true.
selectorNoCapture only the element matching this CSS selector, instead of the page.
timeoutMsNoNavigation timeout in ms, 5000-100000. Default 45000.
waitUntilNoPuppeteer navigation wait condition. Default networkidle2.
clickSelectorNoCSS selector to click before rendering (expand, dismiss modal, switch tab).
waitForSelectorNoOptional CSS selector to wait for before rendering.
deviceScaleFactorNoDevice pixel ratio, 0.5-3. Default 1. Set 2 for retina.
hideCookieBannersNoRemove elements that look like cookie consent banners. Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • addedInput schema / properties / blockAds
      Added value: +{
      +  "description": "Block requests to major ad/analytics domains before rendering. Default false.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / clickSelector
      Added value: +{
      +  "description": "CSS selector to click before rendering (expand, dismiss modal, switch tab).",
      +  "type": "string"
      +}
    • addedInput schema / properties / clip
      Added value: +{
      +  "description": "Clip region as \"x,y,width,height\" — or an object {x,y,width,height}. Optional.",
      +  "type": "string"
      +}
    • addedInput schema / properties / darkMode
      Added value: +{
      +  "description": "Render with prefers-color-scheme: dark. Default false.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / deviceScaleFactor
      Added value: +{
      +  "description": "Device pixel ratio, 0.5-3. Default 1. Set 2 for retina.",
      +  "type": "number"
      +}
    • addedInput schema / properties / height
      Added value: +{
      +  "description": "Viewport height in px, 240-2160. Default 900.",
      +  "type": "number"
      +}
    • addedInput schema / properties / hideCookieBanners
      Added value: +{
      +  "description": "Remove elements that look like cookie consent banners. Default false.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / selector
      Added value: +{
      +  "description": "Capture only the element matching this CSS selector, instead of the page.",
      +  "type": "string"
      +}
    • addedInput schema / properties / timeoutMs
      Added value: +{
      +  "description": "Navigation timeout in ms, 5000-100000. Default 45000.",
      +  "type": "number"
      +}
    • addedInput schema / properties / width
      Added value: +{
      +  "description": "Viewport width in px, 320-3840. Default 1280.",
      +  "type": "number"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare the safe read-only/open-world profile; the description adds the load-bearing behavior the agent cannot get elsewhere: an API key is required, how the key is supplied (header), and the two distinct outcomes (1-hour download URL vs purchase guidance). For a tool whose output is a URL string, this is exactly the missing behavioral context.

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?

Two sentences with the core action front-loaded, followed by the prerequisite and the branch outcomes. No filler, and the purchase URL is functional rather than decorative.

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

Completeness5/5

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

Despite 17 parameters and no output schema, the description covers the two things structured data does not: auth prerequisite and what the call returns in each case. Parameter semantics are fully handled by the schema, so nothing an agent needs to invoke correctly is missing.

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 all 17 parameters (clip, waitUntil, deviceScaleFactor, etc.) are already fully documented in the schema. The description adds no parameter-level meaning, so the baseline 3 applies.

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?

States a specific verb and output ('Capture a page as an image'), which cleanly separates it from the sibling destination tools (url_to_pdf, url_to_markdown, url_to_extract). An agent can identify the tool's job without opening the schema.

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

Usage Guidelines4/5

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

The description gives a concrete operating condition: with a valid x-api-key or Bearer header it renders and returns a URL, otherwise it returns purchase guidance. That tells the agent when the tool will actually work and what to expect. It stops short of explicitly routing between this and the sibling conversion tools, so it is clear context without alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.