Skip to main content
Glama

See a Mac's screen

screenshot_mac
Read-only

Returns the Mac's screen as an image: target screen (default) is the 1440x900 desktop, whose pixels are mac_input's coordinates; target simulator is the booted iOS Simulator. Also returns front_app, screen_locked, an open dialog with its buttons and next_step, and the JPEG's path on the Mac. Works on a ready Mac. Read-only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
targetNoscreen (default): the whole macOS desktop. simulator: the booted iOS Simulator's display.
session_idNoMac session ID (ses_…). Optional: without it, the account's running Mac.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / session_id / description
      Previous value: -"Mac session ID (ses_…) returned by start_mac or list_mac_sessions."New value: +"Mac session ID (ses_…). Optional: without it, the account's running Mac."
    • removedInput schema / required
      Removed value: -[
      -  "session_id"
      -]
  2. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": {},
      -  "description": "The JSON response of the NoMac API for this operation",
      -  "properties": {
      -    "error": {
      -      "additionalProperties": {},
      -      "description": "Present only when the call failed",
      -      "properties": {
      -        "code": {
      -          "description": "Stable machine-readable error code, for example insufficient_credit",
      -          "type": "string"
      -        },
      -        "message": {
      -          "description": "What went wrong and what to do next",
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "code",
      -        "message"
      -      ],
      -      "type": "object"
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  3. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the bar is lower; the description adds genuine context beyond them by listing what is returned (front_app, screen_locked, open dialog with buttons/next_step, JPEG path) and the 1440x900 resolution and coordinate mapping. It stops short of explaining latency, caching, or freshness behavior.

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 front-loaded sentences that lead with the core action, then the return payload and prerequisite. Every clause earns its place, with no redundant restatement of the title.

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?

There is no output schema, so the description correctly compensates by enumerating the return fields and the JPEG path. Combined with the target modes and the 'ready Mac' prerequisite, an agent has enough to invoke it correctly, though return semantics (e.g., when a dialog is present vs null) remain implicit.

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 the baseline is 3, but the description adds real meaning beyond the schema: it specifies that target=screen is the 1440x900 desktop whose pixels map to mac_input's coordinates, and that simulator is the booted iOS Simulator. This coordinate-mapping detail is not present in the schema.

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 and resource ('Returns the Mac's screen as an image') and enumerates both target modes with their scope. It also positions itself against the sibling mac_input by noting the screen pixels are mac_input's coordinates, so an agent can tell what it does and how it relates to neighbors.

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?

Gives a prerequisite ('Works on a ready Mac') and explains the two target choices, which implies when each is appropriate. However, it never names an alternative tool or an explicit when-not condition (e.g., screenshot vs mac_recording), leaving routing to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources