Skip to main content
Glama

accessible_tree

Read-only

Inspect the GUI accessibility tree as a screen reader sees it—roles, names, states—to find clickable elements by name and spot unlabeled controls.

Instructions

What a screen reader would find: every visible node, a line each, indented, with its role, name, description and the states a screen reader says (focusable, focused, checked...). The cheapest way to see what's on screen and what can be clicked by name. A node with an empty name ("") is one a screen reader can say nothing for. Use screenshot for how it looks.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
boundsNoAdd @x,y WIDTHxHEIGHT to each line
windowNoA window's title, exactly or a regex matched in full, or app=RE for its app id
sessionYesIts name, from start_session

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.7.1

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, lowering the bar. The description adds real value beyond them: the line-by-line indented format, the enumerated state set, and the meaning of an empty name ('a screen reader can say nothing for'). It does not mention output size/truncation limits, but the added disclosure is substantive.

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?

Front-loaded with the core concept and no filler sentences; each sentence (format, cheapest path, empty-name semantics, screenshot alternative) earns its place. Slightly run-on, but nothing is wasted.

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 the return-value burden and does so by describing the indented line format and included fields. Safety is covered by annotations, so the remaining gaps are only minor operational details like output size. Adequate for correct invocation.

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 100%, so all three parameters are documented in the schema itself, making 3 the baseline. The description alludes to line content and name-based clickability but adds no format or regex guidance for bounds or window beyond what the schema already supplies.

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?

The description states precisely what the tool returns: an indented line-per-node rendering of role, name, description and screen-reader states. It explicitly distinguishes itself from the sibling screenshot tool ('Use screenshot for how it looks'), so an agent can route correctly without opening a schema.

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 gives clear context ('the cheapest way to see what's on screen and what can be clicked by name') and names one alternative with its selecting condition (screenshot for appearance). It stops short of addressing other plausible siblings like tab_walk or click, so it is clear context rather than exhaustive when/when-not routing.

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