Skip to main content
Glama

glass_a11y_marks

Read-only

Capture an annotated screenshot that numbers each interactable element, so you can visually pick one and click it using its 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

Behavior4/5

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

Annotations provide readOnlyHint=true, and the description aligns with that by describing a read-only operation. It adds context about the precision of bounding boxes (~10-20px drift), how clicks are actuated (native accessibility action vs center), and error behavior. The only minor gap is not detailing what the legend format is for elements with both a name and description, but the overall transparency is strong.

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 dense but perfectly scannable: it opens with what the tool does, explains the legend format, then covers precision, click mechanism, and error handling. Every sentence adds unique information with no fluff.

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?

Despite being a zero-parameter tool, it fully explains the output format, error conditions, precision limitations, and how to use the output. The error fallback to glass_screenshot is a nice operational detail.

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 0 parameters, and schema coverage is 100%. The description doesn't need to add parameter info since there are none. It adds value by explaining the return format (image + legend) which goes beyond parameters.

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 takes a screenshot of the active window with numbered boxes on interactable elements (Set-of-Mark) and returns the image plus a text legend. It distinguishes itself from siblings by using the phrase 'Pick an element visually, then click it with glass_click_element using its #id', and mentions it returns errors differently than glass_screenshot.

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?

It explicitly says when to use it: 'Pick an element visually, then click it with glass_click_element using its #id', and when it's not appropriate: 'Errors if no accessibility tree is available — use glass_screenshot then.' It also clarifies the relationship with glass_click_element and glass_a11y_snapshot.

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