Skip to main content
Glama

check_screenshot_cache

Read-only

Check whether take_screenshot would return a cached copy (free) for this URL and these options, without capturing anything. Pass the same options you would give take_screenshot. Free to call. When cached, the result says when the copy was captured and when it expires.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesURL to check (must start with http:// or https://)
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
    • addedInput schema / properties / block_ads
      Added value: +{
      +  "description": "Block ads and trackers (default: true)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / block_cookie_banners
      Added value: +{
      +  "description": "Remove cookie consent banners (default: true)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / click_selector
      Added value: +{
      +  "description": "CSS selector to click before the capture",
      +  "type": "string"
      +}
    • addedInput schema / properties / dark_mode
      Added value: +{
      +  "description": "Ask the page for its dark color scheme (default: false)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / delay
      Added value: +{
      +  "description": "Extra milliseconds to wait after the page loads, 0-10000 (default: 0)",
      +  "maximum": 10000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / device
      Added value: +{
      +  "description": "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)",
      +  "enum": [
      +    "iphone_14",
      +    "iphone_15_pro",
      +    "pixel_7",
      +    "ipad_pro",
      +    "macbook_pro"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / format / description
      Previous value: -"Output format to check cache for (default: png)"New value: +"Output format: png (default), jpeg, webp, or pdf"
    • addedInput schema / properties / full_page
      Added value: +{
      +  "description": "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).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / height
      Added value: +{
      +  "description": "Viewport height in CSS pixels, 200-10000 (default: 800). Ignored when device is set.",
      +  "maximum": 10000,
      +  "minimum": 200,
      +  "type": "integer"
      +}
    • addedInput schema / properties / hide_selectors
      Added value: +{
      +  "description": "Comma-separated CSS selectors to hide before the capture",
      +  "type": "string"
      +}
    • addedInput schema / properties / quality
      Added value: +{
      +  "description": "JPEG and WebP quality, 1-100 (default: 90). Ignored for png.",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / url / description
      Previous value: -"URL to check cache status for (must start with http:// or https://)"New value: +"URL to check (must start with http:// or https://)"
    • addedInput schema / properties / user_agent
      Added value: +{
      +  "description": "Custom User-Agent string",
      +  "type": "string"
      +}
    • addedInput schema / properties / width
      Added value: +{
      +  "description": "Viewport width in CSS pixels, 320-3840 (default: 1280). Ignored when device is set.",
      +  "maximum": 3840,
      +  "minimum": 320,
      +  "type": "integer"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds value beyond that: it confirms nothing is captured, that the call is free, and that a cached hit reports capture time and expiry, which tells the agent what a positive result means.

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?

Four short sentences, front-loaded with the core purpose and no filler; the standalone 'Free to call.' fragment still earns its place by stating a cost fact the agent needs. Slightly clipped phrasing keeps it just short of ideal.

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 14-parameter read-only probe with no output schema, the description covers what the tool does, what to pass, and what a cached result contains. It leaves the non-cached result shape and any TTL/prefetch guidance unstated, a minor gap given the rich schema.

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% across 14 parameters, so the schema carries the full parameter burden and the baseline is 3. The instruction to mirror take_screenshot's options adds useful framing but no new per-parameter semantics.

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 ('Check whether take_screenshot would return a cached copy') and explicitly names the sibling it mirrors, so an agent can distinguish it from take_screenshot without opening either schema. The 'without capturing anything' clause pins down the side-effect-free nature of the operation.

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?

Clearly implies the use case: call this before take_screenshot to find out if a capture would be free, and it instructs the caller to pass the same options. It does not explicitly state an exclusion such as 'do not use this to actually retrieve the image', but the context is unambiguous for any reasonable agent.

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.