Skip to main content
Glama

left_click

Destructive

Performs a left-button click on a specified app window using coordinates or an element index. Automates UI interactions in Hyprland.

Instructions

Compatibility alias for click with the left button.

Input Schema

NameRequiredDescriptionDefault
xNoX coordinate in coordinate_space.
yNoY coordinate in coordinate_space.
appYesApp name, Hyprland class/title, pid, or address:0x... selector.
nameNoAccessible name/text to match before falling back to coordinates.
coordinateNo(x, y) coordinate in coordinate_space. Defaults to screenshot pixels from get_app_state.
element_indexNoElement index from the last get_app_state result.
coordinate_spaceNoCoordinate space. screenshot uses get_app_state pixels; window uses logical coordinates from the target window's top-left.screenshot
confirmation_tokenNoExternally approved, one-time challenge ID from request_confirmation for a high-risk action.
element_click_modeNoFor element_index clicks: pointer uses the element frame center and native pointer input; auto tries AT-SPI then pointer; atspi requires an AT-SPI action.pointer

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, readOnlyHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that — it does not mention that clicks mutate UI state irreversibly, nor that high-risk actions may require the confirmation_token parameter, nor any rate/permission constraints.

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 short sentence with the key qualifier ('left button') front-loaded and zero filler. It is efficiently sized, though so terse that the alias/compatibility semantics are left unexplained.

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

Completeness2/5

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

For a 9-parameter, non-idempotent, destructive, open-world interaction tool with no output schema, the description does not say whether it behaves identically to `click`, how element_index vs coordinate targeting resolves, or when confirmation tokens are needed. The schema covers parameters, but the alias/routing semantics an agent needs are absent.

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 description coverage is 100%, so all nine parameters (coordinate spaces, element_index, element_click_mode, confirmation_token) are already documented in the schema. The description contributes no additional parameter meaning, so the baseline of 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?

The description names a concrete action (left-button click) and explicitly frames the tool as a compatibility alias for the sibling `click`, which lets an agent tell it apart from right_click/middle_click/double_click without opening a schema. It is clear, but it never explains what 'compatibility alias' means operationally (identical behavior? legacy only?).

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?

Calling itself a 'compatibility alias' weakly signals that `click` is the preferred tool and this exists for backward compatibility, but there is no explicit when-to-use/when-not rule or stated condition that selects this over `click` or `left_click_drag`. Usage is only implied.

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