Skip to main content
Glama

ghost_screenshot

Capture a window, element, or screen region as a compressed JPEG (or lossless PNG) for agent visual checks. Works even on covered or hidden windows; crop by name, role, or coordinates.

Instructions

Capture a screenshot of the window the agent is working in. Target = window= or the session anchor: that window is captured BY HANDLE (works while covered, on a hidden desktop, or via CDP for a routed browser) at max 768px JPEG q=75 (~20-100KB). Only with no anchor does it fall back to the foreground window. Pass name/role to crop to ONE element inside the target, or rect=[l,t,r,b] (great for VLM-in-the-loop checks). full=true: the whole screen at max 1280px JPEG (max_dim=0 = native-res lossless PNG). Always includes size_bytes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fullNoFull-screen capture (default false)
nameNoCrop to the element with this accessible name
rectNoCrop to [left,top,right,bottom] region
roleNoCrop to the element with this role
windowNoTitle substring of the window to capture (anchors it). Omit to use the anchor.
max_dimNoLongest-edge resize (default 768; 1280 with full=true; 0 = no resize, lossless PNG)
foregroundNoOnly without a window/anchor: crop to the foreground window (default true)
jpeg_qualityNo

Schema Changelog

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

  1. First observedv0.23.4

TDQS

A4.1/5.0
Behavior5/5

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

No annotations exist, so the description carries the full burden — and it delivers richly: captures BY HANDLE (works while covered, on a hidden desktop, or via CDP for a routed browser), default output is max 768px JPEG q=75 (~20-100KB), foreground fallback only when no anchor exists, and 'Always includes size_bytes.' This discloses capture mechanics, output format, size, and return guarantees far beyond the bare schema.

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?

Dense but purposeful — every clause contributes (targeting, capture mechanism, output format, fallback, crop modes, full-screen mode, PNG mode, size_bytes), and the logical flow from purpose to target to mechanism to options is sound. It is a long single paragraph, but with 8 parameters and zero annotations, the information density is warranted rather than padded.

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?

Remarkably complete for an 8-param tool with no annotations and no output schema: targeting rules, handle-based capture behavior, output formats, crop modes, and fallbacks are all specified. The one notable gap is the return payload shape — with no output schema, the agent knows only that it 'Always includes size_bytes' but not whether the result is a file path, base64 data, or an object.

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 coverage is 88% (7 of 8 params described), so the baseline is 3. The description adds only marginal value beyond the schema: the VLM-in-the-loop use case for rect, the 'ONE element inside the target' clarifier for name/role, and indirect jpeg_quality context via 'q=75.' No parameter gains substantial new meaning from the description.

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 pair ('Capture a screenshot of the window the agent is working in') with concrete scope. The handle-based capture mechanism, element-cropping modes, and full-screen option clearly carve out a distinct niche versus siblings like ghost_tab_screenshot (tab-level capture) and ghost_see/ghost_snapshot (likely vision/analysis), even without naming them.

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

Usage Guidelines3/5

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

Provides clear within-tool routing: when to pass name/role vs rect, when to use full=true, and the exact fallback condition ('Only with no anchor does it fall back to the foreground window'). However, it never names sibling alternatives or states when to choose this over ghost_tab_screenshot, ghost_see, or ghost_snapshot, so cross-tool selection is left largely to inference despite a crowded sibling family.

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/NORTHTEKDevs/ghost'

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