Skip to main content
Glama

glass_a11y_marks

Marks each interactable element in the active window with a numbered box, returning an annotated screenshot and legend so you can select and click elements by their exact ID.

Instructions

Screenshot of the active window with a numbered box drawn on each interactable element (Set-of-Mark) — returns the annotated image plus a text legend (#<id> <Role> "<name>", or #<id> <Role> desc="<description>" for an element that has only a description). Pick an element visually, then click it with glass_click_element using its #id (same ids as glass_a11y_snapshot). Chips sit just outside each element so small icon buttons stay visible. The box is only as precise as the toolkit's accessibility geometry (it can drift ~10-20px), but the #id and the click are exact (click_element actuates via the native accessibility action when available, else clicks the element's center). Errors if no accessibility tree is available — use glass_screenshot then.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

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

With no annotations, the description fully carries behavioral disclosure. It details return format, precision limits (drift ~10-20px), exact click mechanics via native accessibility action, chip placement rationale, and an error condition. This is a model of transparency.

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?

The description is concise and front-loaded: purpose, output format, usage, caveat, and error condition each earn their place. No filler or repetition, and the structure flows logically.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (image + legend output) and the absence of an output schema, the description sufficiently explains what is returned, the legend format, and how to use the ids. It also covers failure scenarios and workarounds, making it complete for a 0-param tool.

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?

The tool has zero parameters and the schema is empty, so the description need not explain parameter semantics. Per the rubric, the baseline for 0 parameters is 4, and there is no additional parameter info to add.

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 clearly states the tool produces a screenshot of the active window with numbered boxes on each interactable element, differentiating it from plain screenshots and accessibility tree snapshots. It mentions the output format (annotated image + legend) and connects to sibling tools like glass_click_element and glass_a11y_snapshot.

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

Usage Guidelines5/5

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

Explicitly instructs when to use: pick an element visually then click via glass_click_element, and provides an alternative when the accessibility tree is unavailable ('use glass_screenshot then'). It also notes the #id consistency with glass_a11y_snapshot, giving clear context on integration.

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

Install Server

Other Tools

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/fixed-width/glass'

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