Skip to main content
Glama

take_screenshot

Read-only

See a public web page the way a person does. Renders the URL in a real browser with ads and cookie banners removed and returns the image inline (PNG unless format is set; pdf comes back as base64 text), followed by a line with the captures left this month. Use device for a phone or tablet view and full_page for the whole page. To read the words, use extract_content. Most pages take a few seconds; a page still loading after about 30 seconds is captured as it stands. Uses one capture. Pass fresh: false to accept a free copy of the same URL and options captured in the last 24 hours. Public URLs only: localhost and private network addresses are refused.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesPublic page to capture: a full URL starting with https:// or http://
delayNoExtra milliseconds to wait after the page loads, 0-10000 (default: 0)
freshNoDefault true: render the page now (uses one capture). false: a copy of the same URL and options captured in the last 24 hours may be returned for free; the result then says when it was captured.
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. A capture with a custom user agent is always rendered new.
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). false always renders a new capture.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changed
    • changedInput schema / properties / block_ads / description
      Previous value: -"Block advertisements and trackers (default: true)"New value: +"Block ads and trackers (default: true)"
    • changedInput schema / properties / block_cookie_banners / description
      Previous value: -"Remove cookie consent banners (default: true)"New value: +"Remove cookie consent banners (default: true). false always renders a new capture."
    • changedInput schema / properties / click_selector / description
      Previous value: -"CSS selector to click before capture"New value: +"CSS selector to click before the capture"
    • changedInput schema / properties / dark_mode / description
      Previous value: -"Enable dark mode CSS emulation (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 page 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 mobile/tablet 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"
    • addedInput schema / properties / fresh
      Added value: +{
      +  "description": "Default true: render the page now (uses one capture). false: a copy of the same URL and options captured in the last 24 hours may be returned for free; the result then says when it was captured.",
      +  "type": "boolean"
      +}
    • 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: -"Comma-separated CSS selectors to hide before capture"New value: +"Comma-separated CSS selectors to hide before the capture"
    • changedInput schema / properties / quality / description
      Previous value: -"Image quality for JPEG/WebP, 1-100 (default: 90)"New value: +"JPEG and WebP quality, 1-100 (default: 90). Ignored for png."
    • changedInput schema / properties / url / description
      Previous value: -"URL to capture (must start with http:// or https://)"New value: +"Public page to capture: a full URL starting with https:// or http://"
    • addedInput schema / properties / user_agent
      Added value: +{
      +  "description": "Custom User-Agent string. A capture with a custom user agent is always rendered new.",
      +  "type": "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. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover safety (readOnlyHint, openWorldHint, destructiveHint), and the description adds substantial context beyond them: credit consumption ('Uses one capture', 'captures left this month'), caching semantics for fresh:false within 24 hours, a ~30 second loading timeout, and inline base64 output for pdf.

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?

Dense but front-loaded: the core action and return format come first, then option hints, then the cost/constraint details. Every sentence carries information, though it is longer than strictly necessary.

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?

For a 15-parameter tool with no output schema, the description covers return format (inline image, pdf as base64, trailing capture-count line), timeout behavior, cost, caching, and access restrictions. An agent has what it needs to invoke successfully.

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 100%, so the baseline is 3, but the description adds real meaning: device for phone/tablet views, full_page for the whole page, and format-specific output behavior (PNG inline vs pdf as base64). It does not restate ranges, but it clarifies intent for the higher-level options.

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 resource ('Renders the URL in a real browser') and describes the output ('returns the image inline'). It explicitly distinguishes itself from the sibling extract_content ('To read the words, use extract_content'), so an agent can route correctly without opening a schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use (see a page visually), when-not (reading words -> extract_content), an alternative-cost path (fresh: false for a free cached copy), and a hard constraint ('Public URLs only: localhost and private network addresses are refused'). Nothing is left to inference.

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.