Skip to main content
Glama

scroll

Move the page or a container up/down by pixels or jump to top/bottom, bring elements into view, and trigger lazy or infinite loading. Returns position with atTop/atBottom flags.

Instructions

Scroll the page: scroll down or up by pixels, jump to the top or bottom, or scroll an element into view (to the middle of the screen). Also scrolls inside a scrollable container (chat panels, tables, sidebars with their own scrollbar) when you pass that container as selector/ref together with to or deltaX/deltaY. Returns the scroll position with atTop/atBottom flags. For lazy-loaded or infinite-scroll pages ('load more' on scroll), scroll to the bottom, wait_for_element for the new items, and repeat until atBottom stays true and nothing new appears. click and type already scroll their target into view, so use this to reveal content or trigger lazy loading.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoJump to the top or bottom of the page, or of the container given by selector/ref. Scrolling to the bottom is how infinite-scroll pages load more items.
refNoElement ref from capture_page (e.g. 'e12'); same meaning as selector.
deltaXNoPixels to scroll horizontally: positive = right, negative = left.
deltaYNoPixels to scroll vertically: positive = down, negative = up (e.g. 800 for about one screen).
selectorNoElement to scroll to, brought to the middle of the screen. If you also pass to or deltaX/deltaY, this element is instead the scrollable container to scroll inside. Provide selector or ref, not both.
timeoutMsNoHow long to wait for the selector/ref element to exist, in milliseconds (default 10000).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the return value (scroll position with atTop/atBottom flags), the container-vs-element distinction, and the lazy-loading repetition pattern. It is thin on failure/timeout behavior beyond what the timeoutMs schema already states, keeping it just under a 5.

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 dense paragraph with the core verb front-loaded and no filler sentences; each clause adds information. It is on the long side and could be broken into a mode list, 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?

For a 6-parameter tool with no output schema and no annotations, the description fills the critical gaps by stating the return shape and the lazy-load workflow. It is complete enough to invoke correctly, with only minor omissions around error handling.

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 the schema already documents all six parameters including the dual role of selector/ref and the deltaY example. The description largely restates this, adding only the 'middle of the screen' target nuance and the container semantics already present in the schema. Baseline 3 is correct.

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?

Opens with a specific verb+resource ('Scroll the page') and enumerates the distinct scroll modes: pixel delta, top/bottom jump, element-into-view, and inside a scrollable container. It further distinguishes itself from sibling tools by noting that click and type already scroll their targets into view.

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?

Gives explicit when-to-use ('reveal content or trigger lazy loading') and when-not-to-use ('click and type already scroll their target into view'). It also prescribes a concrete alternative workflow for infinite scroll, naming the sibling tool wait_for_element and the repeat-until-atBottom condition.

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