Skip to main content
Glama

getOgScreenshot

Read-onlyIdempotent

Capture screenshots of any URL as a hosted image. Supports full-page, viewport, dark mode, custom dimensions, and element targeting via CSS selectors.

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

TableJSON 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

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

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 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"
      +}
  2. First observedv1.3.5

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already convey readOnlyHint, idempotentHint, destructiveHint. The description adds context about the return format (hosted screenshotUrl), usage in browser/img tag, and proxy/retry behaviors, which are beyond what annotations provide.

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?

The description is well-organized: opening sentence, return format explanation, sibling comparison. It is efficient but the sibling list is somewhat lengthy; still no wasted content.

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?

Given the tool's complexity (24 parameters, many options), the description covers key capabilities, return value, and usage notes. It lacks only detailed output schema but mentions the hosted URL, so completeness is high.

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 baseline is 3. The description adds meaningful summary of key parameter groups (full-page, viewport, dark mode, etc.) and their effects, providing extra context beyond individual schema descriptions.

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?

The description clearly states the tool captures a screenshot via OpenGraph.io API v3, lists key features, and distinguishes from siblings by presenting a 'Pick the right tool' list with each sibling's purpose.

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?

Explicitly provides a 'Pick the right tool' section that details when to use this screenshot tool versus alternatives like getOgData, getOgMarkdown, etc., offering clear selection criteria.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/securecoders/opengraph-io-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server