Skip to main content
Glama

getOgScreenshot

Read-onlyIdempotent

Capture a full-page or viewport screenshot of any URL and get a hosted image URL you can use in a browser, an tag, or pass to another tool.

Instructions

Capture a screenshot of any URL via the OpenGraph.io API (v3). Supports full-page or viewport captures, custom viewport dimensions, dark mode, image format/quality control, cookie-banner dismissal, and CSS selector-based element targeting or exclusion.

Returns a screenshotUrl — a hosted URL pointing to the screenshot image file, not inline image data. Use this URL directly in a browser, an tag, or pass it to another tool.

Pick the right tool: getOgData → Open Graph tags, social preview metadata (title, description, image, favicon) getOgMarkdown → Clean readable text / article prose — ideal for feeding into an LLM getOgScrapeData → Raw HTML — use when you need to do your own parsing or link extraction getOgExtract → Targeted elements by tag (html_elements) or named CSS selectors (selectors) getOgScreenshot → Visual capture of a page as an image getOgQuery → Natural-language question answered from page content (100–200 credits/request)

Input Schema

NameRequiredDescriptionDefault
urlYesURL of the webpage to screenshot.
retryNoAutomatically retry failed requests. Defaults to true on v3.
formatNoImage format. Defaults to 'jpg'.
qualityNoImage compression quality 1–100. Only applies to jpg/webp. Defaults to 80.
cache_okNoUse cached results. Set to false to bypass cache. Defaults to true.
selectorNoCSS selector — crop the screenshot to just this element.
dark_modeNoEnable dark mode (prefers-color-scheme: dark). Defaults to false.
full_pageNoCapture the full scrollable page height. Defaults to false (viewport only).
use_proxyNoRoute the request through a standard proxy.
auto_proxyNoAutomatically escalate to a proxy if the direct request fails. Defaults to true on v3.
dimensionsNoViewport dimensions as WxH (e.g. '1280x800'). Defaults to '1366x768'.
accept_langNoAccept-Language header for the outbound request. Defaults to 'auto'.
full_renderNoFully render the page with JavaScript before capturing. Defaults to true for screenshots.
max_retriesNoMaximum number of retry attempts (1–4). Defaults to 4.
use_premiumNoRoute the request through a premium proxy.
use_superiorNoRoute the request through a superior-tier proxy.
capture_delayNoMilliseconds to wait after page load before capturing (0–10 000). Defaults to 0.
hideSelectorsNoWhether to apply the exclude_selectors hiding. Defaults to true when exclude_selectors is set.
max_cache_ageNoMaximum cache age in milliseconds. Defaults to 432000000 (5 days).
proxy_countryNoTwo-letter ISO country code for geo-targeted proxy exit node (e.g. 'US', 'GB').
exclude_selectorsNoComma-separated CSS selectors to hide (set visibility: hidden) before capturing.
navigationTimeoutNoNavigation timeout in milliseconds (1 000–60 000). Defaults to 30 000.
wait_for_selectorNoCSS selector to wait for before capturing.
block_cookie_bannerNoAttempt to dismiss cookie consent banners before capturing. Defaults to false.

Output Schema

NameRequiredDescriptionDefault
urlYesSource URL that was screenshotted
formatNo
fullPageNo
dimensionsNo
screenshotUrlYesHosted URL of the screenshot image

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv3.2.1
    • addedInput schema / properties / url / maxLength
      Added value: +2048
    • addedInput schema / properties / url / pattern
      Added value: +"^https?:\\/\\/"
  2. Changed25 schema fields changedv1.3.6
    • addedInput schema / properties / accept_lang
      Added value: +{
      +  "description": "Accept-Language header for the outbound request. Defaults to 'auto'.",
      +  "type": "string"
      +}
    • addedInput schema / properties / auto_proxy
      Added value: +{
      +  "description": "Automatically escalate to a proxy if the direct request fails. Defaults to true on v3.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / block_cookie_banner
      Added value: +{
      +  "description": "Attempt to dismiss cookie consent banners before capturing. Defaults to false.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / cache_ok
      Added value: +{
      +  "description": "Use cached results. Set to false to bypass cache. Defaults to true.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / capture_delay
      Added value: +{
      +  "description": "Milliseconds to wait after page load before capturing (0–10 000). Defaults to 0.",
      +  "maximum": 10000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / dark_mode
      Added value: +{
      +  "description": "Enable dark mode (prefers-color-scheme: dark). Defaults to false.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / dimensions
      Added value: +{
      +  "description": "Viewport dimensions as WxH (e.g. '1280x800'). Defaults to '1366x768'.",
      +  "type": "string"
      +}
    • addedInput schema / properties / exclude_selectors
      Added value: +{
      +  "description": "Comma-separated CSS selectors to hide (set visibility: hidden) before capturing.",
      +  "type": "string"
      +}
    • addedInput schema / properties / format
      Added value: +{
      +  "description": "Image format. Defaults to 'jpg'.",
      +  "enum": [
      +    "jpg",
      +    "png",
      +    "webp"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / full_page
      Added value: +{
      +  "description": "Capture the full scrollable page height. Defaults to false (viewport only).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / full_render
      Added value: +{
      +  "description": "Fully render the page with JavaScript before capturing. Defaults to true for screenshots.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / hideSelectors
      Added value: +{
      +  "description": "Whether to apply the exclude_selectors hiding. Defaults to true when exclude_selectors is set.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / max_cache_age
      Added value: +{
      +  "description": "Maximum cache age in milliseconds. Defaults to 432000000 (5 days).",
      +  "type": "integer"
      +}
    • addedInput schema / properties / max_retries
      Added value: +{
      +  "description": "Maximum number of retry attempts (1–4). Defaults to 4.",
      +  "maximum": 4,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / navigationTimeout
      Added value: +{
      +  "description": "Navigation timeout in milliseconds (1 000–60 000). Defaults to 30 000.",
      +  "maximum": 60000,
      +  "minimum": 1000,
      +  "type": "integer"
      +}
    • addedInput schema / properties / proxy_country
      Added value: +{
      +  "description": "Two-letter ISO country code for geo-targeted proxy exit node (e.g. 'US', 'GB').",
      +  "type": "string"
      +}
    • addedInput schema / properties / quality
      Added value: +{
      +  "description": "Image compression quality 1–100. Only applies to jpg/webp. Defaults to 80.",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / retry
      Added value: +{
      +  "description": "Automatically retry failed requests. Defaults to true on v3.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / selector
      Added value: +{
      +  "description": "CSS selector — crop the screenshot to just this element.",
      +  "type": "string"
      +}
    • changedInput schema / properties / url / description
      Previous value: -"URL of the webpage to screenshot"New value: +"URL of the webpage to screenshot."
    • addedInput schema / properties / use_premium
      Added value: +{
      +  "description": "Route the request through a premium proxy.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / use_proxy
      Added value: +{
      +  "description": "Route the request through a standard proxy.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / use_superior
      Added value: +{
      +  "description": "Route the request through a superior-tier proxy.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / wait_for_selector
      Added value: +{
      +  "description": "CSS selector to wait for before capturing.",
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "dimensions": {
      +      "type": "string"
      +    },
      +    "format": {
      +      "type": "string"
      +    },
      +    "fullPage": {
      +      "type": "boolean"
      +    },
      +    "screenshotUrl": {
      +      "description": "Hosted URL of the screenshot image",
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "Source URL that was screenshotted",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "url",
      +    "screenshotUrl"
      +  ],
      +  "type": "object"
      +}
  3. First observedv1.3.5

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower, and the description adds the single most important non-obvious behavior: it returns a hosted `screenshotUrl` rather than inline image bytes. It does not mention credit cost for this tool (only for getOgQuery) or latency expectations for full-render captures, which would have completed the picture.

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?

Front-loaded with purpose, then return-shape, then a compact routing table — all three sections are load-bearing. Slightly over-long: the credit note on getOgQuery is irrelevant to invoking this tool and could be trimmed from this description.

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 24-parameter capture tool with an output schema and full schema coverage, the description supplies purpose, capability surface, return shape, and sibling routing — nothing an agent needs in order to call it correctly is missing.

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 description coverage is 100%, so the baseline is 3; the description earns the bump by grouping the 24 parameters into scannable capability buckets (capture mode, viewport dimensions, dark mode, format/quality, cookie-banner dismissal, selector include/exclude). It adds no syntax or default details beyond what the schema already supplies.

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 ('Capture a screenshot of any URL') and immediately enumerates the capability envelope: full-page/viewport, dimensions, dark mode, format/quality, cookie-banner dismissal, selector targeting/exclusion. The routing table explicitly separates it from getOgData, getOgMarkdown, getOgScrapeData, getOgExtract and getOgQuery.

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?

Contains an explicit 'Pick the right tool' decision table mapping each sibling to its output type, plus the downstream usage instruction ('use this URL directly in a browser, an <img> tag, or pass it to another tool'). An agent can select this tool with no inference required.

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