Skip to main content
Glama

Capture Screenshot

screenshot

Capture the current viewport, full page, or a specific element, then return an image with an evidence path for QA verification.

Instructions

Capture viewport, full page or a described element. Returns image and evidence path. Screenshots may contain application data.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "screenshot"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoscreenshot
elementNo
full_pageNo

Output Schema

NameRequiredDescriptionDefault
dataNo
run_idYes
stagesNo
statusYes
recoveryNo
operationYes
error_codeYes
session_stateYes
schema_versionNo
progress_omittedNo
progress_delivery_failedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.10.0
    • removedInput schema / properties / element / title
      Removed value: -"Element"
    • removedInput schema / properties / full_page / title
      Removed value: -"Full Page"
    • removedInput schema / properties / name / title
      Removed value: -"Name"
    • removedInput schema / title
      Removed value: -"screenshotArguments"
  2. Changed12 schema fields changed
    • removedOutput schema / properties / data / title
      Removed value: -"Data"
    • removedOutput schema / properties / error_code / title
      Removed value: -"Error Code"
    • removedOutput schema / properties / operation / title
      Removed value: -"Operation"
    • removedOutput schema / properties / progress_delivery_failed / title
      Removed value: -"Progress Delivery Failed"
    • removedOutput schema / properties / progress_omitted / title
      Removed value: -"Progress Omitted"
    • removedOutput schema / properties / recovery / title
      Removed value: -"Recovery"
    • removedOutput schema / properties / run_id / title
      Removed value: -"Run Id"
    • removedOutput schema / properties / schema_version / title
      Removed value: -"Schema Version"
    • removedOutput schema / properties / session_state / title
      Removed value: -"Session State"
    • removedOutput schema / properties / stages / title
      Removed value: -"Stages"
    • removedOutput schema / properties / status / title
      Removed value: -"Status"
    • removedOutput schema / title
      Removed value: -"AgentResult"
  3. Changed1 schema field changedv0.5.2
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "data": {
      +      "additionalProperties": true,
      +      "title": "Data",
      +      "type": "object"
      +    },
      +    "error_code": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "title": "Error Code"
      +    },
      +    "operation": {
      +      "title": "Operation",
      +      "type": "string"
      +    },
      +    "progress_delivery_failed": {
      +      "default": false,
      +      "title": "Progress Delivery Failed",
      +      "type": "boolean"
      +    },
      +    "progress_omitted": {
      +      "default": 0,
      +      "title": "Progress Omitted",
      +      "type": "integer"
      +    },
      +    "recovery": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Recovery",
      +      "type": "array"
      +    },
      +    "run_id": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "title": "Run Id"
      +    },
      +    "schema_version": {
      +      "const": 1,
      +      "default": 1,
      +      "title": "Schema Version",
      +      "type": "integer"
      +    },
      +    "session_state": {
      +      "title": "Session State",
      +      "type": "string"
      +    },
      +    "stages": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Stages",
      +      "type": "array"
      +    },
      +    "status": {
      +      "enum": [
      +        "completed",
      +        "error"
      +      ],
      +      "title": "Status",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "operation",
      +    "status",
      +    "session_state",
      +    "run_id",
      +    "error_code"
      +  ],
      +  "title": "AgentResult",
      +  "type": "object"
      +}
  4. Changed3 schema fields changedv0.5.1
    • addedInput schema / properties / element
      Added value: +{
      +  "default": "",
      +  "title": "Element",
      +  "type": "string"
      +}
    • addedInput schema / properties / full_page
      Added value: +{
      +  "default": false,
      +  "title": "Full Page",
      +  "type": "boolean"
      +}
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "screenshotOutput",
      -  "type": "object"
      -}New value: +null
  5. First observedv0.4.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations give the safety profile (openWorldHint=true, readOnlyHint=false, non-idempotent), and the description reinforces it by disclosing that the call produces a persisted evidence artifact ('Returns image and evidence path') and that output may contain sensitive application data. This is real added context beyond the structured fields, though it omits what happens when an element is not found or where the evidence path lives.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the modes, then the return, then the data-sensitivity caveat. Nothing is redundant with the schema or annotations, and every sentence carries information.

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?

An output schema exists so return details need not be spelled out, and annotations cover the safety/open-world profile. Remaining gap is the element-targeting syntax and the absence of any routing versus screenshot_diff, which matters in a 25-sibling browser-automation toolset.

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 0%, so the description must carry parameter meaning, and it only partly does: 'full page' maps to full_page and 'a described element' gestures at element (without saying whether it takes a selector, description, or ref). The 'name' parameter is never addressed in the description.

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?

Specific verb 'Capture' plus the three selectable scopes (viewport, full page, described element) makes the operation unambiguous. It does not, however, differentiate itself from the sibling screenshot_diff, so an agent must infer which of the two screenshot tools to reach for.

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?

There is no when-to-use guidance at all: no mention of when to prefer this over screenshot_diff, record_bug, record_observation, or observe, and no prerequisites such as needing an active session. Usage is only implied by the tool name.

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