Skip to main content
Glama

take_screenshot

Capture a screenshot from a URL, HTML, or Markdown to generate PNG, JPEG, or WebP images. Apply device emulation, styling, and content blocking for clean visual output.

Instructions

Capture a screenshot of a URL, HTML, or Markdown content. Supports device emulation, ad/chat/tracker blocking, metadata extraction, geolocation, timezone, styling (macOS/Windows frames, gradient/glass backgrounds, shadows), and more. Returns an image (PNG, JPEG, or WebP).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoURL to capture (required if no html/markdown)
clipNoCrop region { x, y, width, height } in pixels
htmlNoRaw HTML to render (required if no url/markdown)
clickNoCSS selector to click before capturing the screenshot
delayNoMilliseconds to wait before capture (default: 0)
styleNoScreenshot styling options — add a macOS/Windows frame, gradient/glass background, shadow, and rounded corners. Use the "theme" shortcut for one-click presets, or customize individual properties.
widthNoViewport width in pixels (default: 1280)
formatNoImage format (default: png)
heightNoViewport height in pixels (default: 720)
cookiesNoCookies to set — array of "name=value" strings or { name, value, domain? } objects
headersNoExtra HTTP headers to send with the request
qualityNoJPEG/WebP quality 1-100 (default: 80)
blockAdsNoBlock advertisements on the page
darkModeNoEmulate dark color scheme (default: false)
fullPageNoCapture the full scrollable page (default: false)
injectJsNoCustom JavaScript to execute before capturing (max 50KB)
markdownNoRender Markdown content as a screenshot
selectorNoCSS selector to capture a specific element
timeZoneNoOverride browser timezone (e.g. "America/New_York")
bypassCSPNoBypass Content-Security-Policy on the page
injectCssNoCustom CSS to inject before capturing (max 50KB)
mediaTypeNoEmulate CSS media type
userAgentNoOverride the browser User-Agent string
waitUntilNoWhen to consider navigation finished (default: networkidle2)
blockChatsNoBlock live chat widgets on the page
session_idNoPersistent session ID (Starter+ only). Reuse a live browser page created with create_session — browser state (cookies, localStorage, auth) carries over from previous requests in this session.
geolocationNoEmulate geolocation { latitude, longitude, accuracy? }
blockBannersNoHide cookie consent banners (default: false)
authorizationNoAuthorization header value (e.g. "Bearer <token>")
blockRequestsNoURL patterns to block (array of strings)
blockTrackersNoBlock tracking scripts on the page
hideSelectorsNoArray of CSS selectors to hide before capture
reducedMotionNoEmulate prefers-reduced-motion to disable animations
blockResourcesNoResource types to block (e.g. ["image", "font"])
fullPageScrollNoAuto-scroll page before capture to trigger lazy-loaded images
omitBackgroundNoTransparent background (PNG/WebP only)
viewportDeviceNoDevice preset for viewport emulation (e.g. "iphone_14_pro", "macbook_pro_14"). Use list_devices to see all presets.
viewportMobileNoEnable mobile meta viewport emulation
extractMetadataNoExtract page metadata (title, description, OG tags) alongside the screenshot
waitForSelectorNoWait for this CSS selector to appear before capturing
fullPageScrollByNoPixels to scroll per step (default: viewport height)
viewportHasTouchNoEnable touch event emulation
deviceScaleFactorNoDevice pixel ratio, use 2 for retina (default: 1)
fullPageMaxHeightNoMaximum pixel height cap for full-page captures
navigationTimeoutNoNavigation timeout in ms (default: 25000)
viewportLandscapeNoLandscape orientation
fullPageScrollDelayNoDelay between scroll steps in ms (default: 400)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.17.0
    • changedInput schema / properties / cookies / items / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "domain": {
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "value": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "name",
      -      "value"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "domain": {
      +        "type": "string"
      +      },
      +      "expirationDate": {
      +        "type": "number"
      +      },
      +      "expires": {
      +        "type": "number"
      +      },
      +      "httpOnly": {
      +        "type": "boolean"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "path": {
      +        "type": "string"
      +      },
      +      "sameSite": {
      +        "enum": [
      +          "Strict",
      +          "Lax",
      +          "None",
      +          "strict",
      +          "lax",
      +          "no_restriction",
      +          "unspecified"
      +        ],
      +        "type": "string"
      +      },
      +      "secure": {
      +        "type": "boolean"
      +      },
      +      "url": {
      +        "type": "string"
      +      },
      +      "value": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "value"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. First observedv1.8.1

TDQS

B3.2/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 does disclose the return artifact ("Returns an image (PNG, JPEG, or WebP)"), which is genuinely useful. But it omits auth needs, rate limits, and paid-tier gating, and closes with a vague "and more" rather than concrete behavior.

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?

Three sentences, front-loaded with the core action and its inputs before the feature list. The trailing "and more" is filler that could be cut, keeping it out of 5 territory.

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 47-parameter tool with no annotations and no output schema, the description covers the return format and the major capability groups, and the schema handles parameter detail exhaustively. Missing only operational context (auth, tier limits) that an agent would want before invoking.

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 the schema already documents all 47 parameters in detail. The description's feature list (device emulation, blocking, geolocation, styling) is thematic rather than parameter-level and adds little beyond what the schema states.

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?

States a specific verb+resource ("Capture a screenshot") and the three input source types (URL, HTML, Markdown). It does not differentiate itself from capture-adjacent siblings like generate_pdf, record_video, or create_og_image, 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 Guidelines2/5

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

The description lists capabilities but gives no when-to-use guidance, no indication of when to prefer take_screenshot over record_video or generate_pdf, and no mention of session prerequisites despite session_id being Starter+ only. An agent gets no routing help.

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