Skip to main content
Glama

scroll

Destructive

Pan a target app element or coordinate up, down, left, or right by a set number of pages to reveal off-screen content.

Instructions

Scroll an element or coordinate in a direction by pages.

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.
pagesNoNumber of pages to scroll. Defaults to 1.
directionYes
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

C2.9/5.0
Behavior2/5

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

Annotations declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, but the description says nothing about the high-risk confirmation flow the schema hints at (confirmation_token) or what happens to the target. It adds essentially no behavioral context beyond the annotations.

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 front-loaded sentence with no filler. Efficient, though perhaps too terse given the tool's complexity.

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 an 11-parameter, non-idempotent, potentially destructive tool with no output schema, a one-line description is inadequate. It never explains the element_index/coordinate alternatives, the coordinate_space semantics, or the confirmation workflow, leaving the agent to rely entirely on the schema.

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 91%, so the schema already documents all 11 parameters including coordinate_space, element_index, and confirmation_token. The description adds no extra syntax or semantics beyond what the schema provides, 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 (scroll), the target (an element or coordinate), and the method (by pages in a direction). Clear enough for an agent to understand what the tool does, but it offers no differentiation from siblings like drag or key that could also move viewport content.

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

Usage Guidelines2/5

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

There is no guidance on when to use scroll versus alternatives such as drag, press_key (PageDown), or move_mouse. No mention of prerequisites like obtaining an element_index from get_app_state or when a confirmation_token is required.

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