Skip to main content
Glama

batch_screenshots

Capture up to 50 URLs with the same options in one background job. Returns a job ID at once; call get_batch_status every 2-5 seconds until the job is completed. Each URL uses one capture, reserved when the job starts; URLs that fail are refunded. Results are download links valid for 24 hours (images are not returned inline).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlsYesURLs to capture (1-50)
delayNoExtra milliseconds to wait after the page loads, 0-10000 (default: 0)
widthNoViewport width in CSS pixels, 320-3840 (default: 1280). Ignored when device is set.
deviceNoPhone, tablet or laptop preset (overrides width and height): iphone_14 (390x844), iphone_15_pro (393x852), pixel_7 (412x915), ipad_pro (1024x1366), macbook_pro (1440x900)
formatNoOutput format: png (default), jpeg, webp, or pdf
heightNoViewport height in CSS pixels, 200-10000 (default: 800). Ignored when device is set.
qualityNoJPEG and WebP quality, 1-100 (default: 90). Ignored for png.
block_adsNoBlock ads and trackers (default: true)
dark_modeNoAsk the page for its dark color scheme (default: false)
full_pageNoCapture the whole scrollable page instead of one screen (default: false). Very tall pages are cut at about 32,000 px (about 8,000 px for webp, less with phone presets).
user_agentNoCustom User-Agent string
click_selectorNoCSS selector to click before the capture
hide_selectorsNoComma-separated CSS selectors to hide before the capture
block_cookie_bannersNoRemove cookie consent banners (default: true)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changed
    • changedInput schema / properties / block_ads / description
      Previous value: -"Block ads (default: true)"New value: +"Block ads and trackers (default: true)"
    • changedInput schema / properties / block_cookie_banners / description
      Previous value: -"Remove cookie banners (default: true)"New value: +"Remove cookie consent banners (default: true)"
    • changedInput schema / properties / click_selector / description
      Previous value: -"CSS selector to click"New value: +"CSS selector to click before the capture"
    • changedInput schema / properties / dark_mode / description
      Previous value: -"Enable dark mode (default: false)"New value: +"Ask the page for its dark color scheme (default: false)"
    • changedInput schema / properties / delay / description
      Previous value: -"Milliseconds to wait after load (default: 0)"New value: +"Extra milliseconds to wait after the page loads, 0-10000 (default: 0)"
    • changedInput schema / properties / device / description
      Previous value: -"Device preset for emulation"New value: +"Phone, tablet or laptop preset (overrides width and height): iphone_14 (390x844), iphone_15_pro (393x852), pixel_7 (412x915), ipad_pro (1024x1366), macbook_pro (1440x900)"
    • changedInput schema / properties / format / description
      Previous value: -"Output format (default: png)"New value: +"Output format: png (default), jpeg, webp, or pdf"
    • changedInput schema / properties / full_page / description
      Previous value: -"Capture entire scrollable page (default: false)"New value: +"Capture the whole scrollable page instead of one screen (default: false). Very tall pages are cut at about 32,000 px (about 8,000 px for webp, less with phone presets)."
    • changedInput schema / properties / height / description
      Previous value: -"Viewport height in pixels (default: 800)"New value: +"Viewport height in CSS pixels, 200-10000 (default: 800). Ignored when device is set."
    • changedInput schema / properties / hide_selectors / description
      Previous value: -"CSS selectors to hide"New value: +"Comma-separated CSS selectors to hide before the capture"
    • changedInput schema / properties / quality / description
      Previous value: -"Image quality (default: 90)"New value: +"JPEG and WebP quality, 1-100 (default: 90). Ignored for png."
    • changedInput schema / properties / urls / description
      Previous value: -"Array of URLs to capture (1-50)"New value: +"URLs to capture (1-50)"
    • changedInput schema / properties / user_agent / description
      Previous value: -"Custom user agent"New value: +"Custom User-Agent string"
    • changedInput schema / properties / width / description
      Previous value: -"Viewport width in pixels (default: 1280)"New value: +"Viewport width in CSS pixels, 320-3840 (default: 1280). Ignored when device is set."
  2. Added

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) by disclosing the async job model, immediate job-ID return, polling cadence, per-URL capture reservation at job start, refunds for failed URLs, and 24-hour link expiry — all operationally critical and not derivable from structured fields.

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?

Four tight sentences, front-loaded with purpose and capped size, then the polling protocol, then the billing/refund rule, then the return format. Nothing is redundant and each sentence carries distinct operational information.

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?

With no output schema, the description compensates by explaining what is returned (a job ID at once, no inline images) and how to retrieve results (get_batch_status plus 24-hour download links). Nothing needed to invoke and follow through 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 ranges, defaults, enum values, and interactions (device overrides width/height; quality ignored for png) are already documented in the schema. The description only adds the 'same options applied to every URL' batching semantic, so the baseline 3 is correct.

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 (Capture) and resource (URLs), plus the batching scope ('up to 50 URLs with the same options in one background job'), which cleanly separates it from the single-URL sibling take_screenshot.

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?

Prescribes the follow-up workflow explicitly: call get_batch_status every 2-5 seconds until the job is completed, and notes results come back as download links rather than inline images. It never explicitly states when to prefer take_screenshot instead of batching, so it stops short of full when/when-not routing.

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.