{
  "id": "web.screenshot",
  "object": "tool",
  "name": "Screenshot a page",
  "summary": "Pixel-perfect at any viewport.",
  "description": "Opens a page in headless Chrome and captures the viewport, the full page or one element, on desktop, laptop, phone or tablet, in light or dark mode. Can hide cookie banners and other elements first. PNG, JPEG or WebP.",
  "category": "web",
  "hosted_by": "Opentools",
  "runtime": "browser",
  "side_effects": false,
  "status": "live",
  "credits": 2,
  "price": "$0.0020",
  "providers": [
    {
      "id": "opentools",
      "name": "Opentools",
      "price": "$0.0020"
    }
  ],
  "mcp_name": "web_screenshot",
  "input_schema": {
    "type": "object",
    "properties": {
      "url": {
        "type": "string",
        "format": "uri",
        "description": "Public http(s) URL of the page"
      },
      "full_page": {
        "default": false,
        "description": "Capture the whole scrollable page, not just the viewport",
        "type": "boolean"
      },
      "selector": {
        "description": "CSS selector of one element to capture",
        "type": "string",
        "maxLength": 500
      },
      "hide_selectors": {
        "description": "Elements to hide first, e.g. [\"#cookie-banner\", \".chat-widget\"]",
        "maxItems": 50,
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 300
        }
      },
      "format": {
        "default": "png",
        "description": "Image format",
        "type": "string",
        "enum": [
          "png",
          "jpeg",
          "webp"
        ]
      },
      "quality": {
        "default": 85,
        "description": "Quality for JPEG and WebP",
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      },
      "device": {
        "default": "desktop",
        "description": "Device to emulate: viewport, pixel ratio, touch and user agent",
        "type": "string",
        "enum": [
          "desktop",
          "laptop",
          "iphone-15",
          "pixel-8",
          "ipad"
        ]
      },
      "width": {
        "description": "Viewport width in CSS pixels. Overrides the device.",
        "type": "integer",
        "minimum": 240,
        "maximum": 3840
      },
      "height": {
        "description": "Viewport height in CSS pixels. Overrides the device.",
        "type": "integer",
        "minimum": 240,
        "maximum": 4320
      },
      "dark_mode": {
        "description": "Emulate prefers-color-scheme: dark (true) or light (false)",
        "type": "boolean"
      },
      "user_agent": {
        "description": "Custom User-Agent header",
        "type": "string",
        "maxLength": 500
      },
      "headers": {
        "description": "Extra HTTP headers sent with every request",
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {
          "type": "string"
        }
      },
      "cookies": {
        "description": "Cookies to set before loading, e.g. a consent or session cookie",
        "maxItems": 50,
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Cookie name"
            },
            "value": {
              "type": "string",
              "description": "Cookie value"
            },
            "domain": {
              "description": "Cookie domain. The page's domain if omitted.",
              "type": "string"
            },
            "path": {
              "description": "Cookie path. / if omitted.",
              "type": "string"
            }
          },
          "required": [
            "name",
            "value"
          ]
        }
      },
      "block": {
        "description": "Resource types to skip loading, for speed",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "fonts",
            "media",
            "images",
            "stylesheets"
          ]
        }
      },
      "wait_until": {
        "default": "networkidle",
        "description": "When the page counts as loaded. networkidle waits until the network is quiet.",
        "type": "string",
        "enum": [
          "load",
          "domcontentloaded",
          "networkidle"
        ]
      },
      "wait_for_selector": {
        "description": "Also wait until this CSS selector appears",
        "type": "string",
        "maxLength": 500
      },
      "delay_ms": {
        "default": 0,
        "description": "Extra wait after loading, in milliseconds",
        "type": "integer",
        "minimum": 0,
        "maximum": 15000
      },
      "timeout_ms": {
        "default": 30000,
        "description": "Give up loading after this long",
        "type": "integer",
        "minimum": 1000,
        "maximum": 60000
      }
    },
    "required": [
      "url"
    ]
  },
  "kind": "tool"
}