Skip to main content
Glama

Read the app on screen

screen_read
Read-only

Reads the text, controls, and tools visible in the user's open app, returning refs for elements. Use it to answer questions about what's currently on screen.

Instructions

What the user is looking at in the app they have open: its text, every control they could press or fill (each with a ref like r3), and the app's own tools if it has any. Use it when the user talks about what is on screen ("what's on Thursday?", "that one").

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
appNowhich open app (default: the one the user is on)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.10.1

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the no-side-effect profile is covered. The description usefully adds what the read returns, including actionable control refs, but says nothing about staleness, whether the screen must be foregrounded, or how refs relate to screen_act — modest added value against an already-covered safety profile.

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?

A single dense sentence front-loads the return payload and closes with the usage trigger; the quoted examples earn their space. Slightly run-on, but there is no filler sentence to cut.

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?

With no output schema, the description carries return-value explanation and does so reasonably well by listing text, controls with refs, and app tools. For a 1-parameter read tool this is close to complete, though it omits how refs are consumed downstream and whether the read is scoped to a single foreground app.

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?

Only one optional parameter and schema description coverage is 100%, so the schema already explains the app selector and its default. The description's mention of "the app they have open" merely echoes the schema default rather than adding format or resolution semantics, so the baseline 3 applies.

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?

States a specific verb and resource — reading what is currently on the user's screen — and enumerates the payload (text, every control with a ref like r3, the app's own tools). That content profile implicitly separates it from get_app_html and screen_act, but no sibling is named outright, so it falls just short of the top band.

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?

Gives a clear trigger with concrete user utterances ("what's on Thursday?", "that one"), which is exactly the deictic case an agent needs to recognize. It offers no when-not guidance and does not route to screen_act for acting or get_app_html for markup, so no exclusions are present.

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