Skip to main content
Glama

screenshot

Capture the controlled tab as a scaled JPEG, including background tabs. Use full:true for 1:1 PNG to read small text or measure pixels; prefer snapshot or read_text.

Instructions

Screenshot the controlled tab, background tabs included. Prefer snapshot / read_text — they cost far less. Returned at 60% scale as JPEG by default; full:true for 1:1 PNG (e.g. to read small text or measure pixels).

Input Schema

NameRequiredDescriptionDefault
refNoElement ref from the latest snapshot, e.g. "e3"
fullNoFull-resolution PNG instead of the scaled JPEG.
focusNoBring the tab forward first. Interrupts the user — ask before using.
tabIdNoTarget tab id. Omit to use the active controlled tab.
spaceIdNoPin this command to an owned BeatBrowser TaskSpace. Also pass its tabId.
savePathNoAbsolute path to write the image instead of returning it inline.
snapshotIdNosnapshotId the ref came from

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.4.1

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the load well: it discloses the default output format (60% scale JPEG), the override (full:true gives 1:1 PNG), that background tabs are included, and that focus interrupts the user. Only the inline-vs-savePath return behavior is left to the schema.

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?

Two tightly packed sentences, front-loaded with what the tool does, then the cheaper alternative, then the output-format tradeoff. Every clause is actionable and none is redundant.

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 7-parameter tool with no output schema, the description covers the critical decisions (cost vs. fidelity, whether to interrupt the user). Parameter-level detail is fully covered by the schema, so the only marginal gap is return-value behavior, which the schema's savePath field partly implies.

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, but the description adds rationale the schema lacks: why full is useful (read small text, measure pixels) and the cost implication of the default scaled JPEG, which helps the agent pick a value rather than just know its type.

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+resource ('Screenshot the controlled tab') and immediately scopes it ('background tabs included'), which distinguishes it from sibling tools like snapshot and read_text that also produce page representations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It explicitly steers the agent away from this tool toward snapshot/read_text on cost grounds, and gives a positive trigger for full:true (reading small text, measuring pixels). It stops short of stating the general condition under which a screenshot is the right choice, but the alternatives and one use case are named.

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