Skip to main content
Glama

browser_snapshot

Read-only

Capture the current page's visible interactive elements with exact selectors and coordinates, enabling reliable clicking and typing without ambiguity.

Instructions

Title, url, and the interactive elements that are actually visible.

Each element carries a selector when one can reach it: pass that string to browser_click or browser_type VERBATIM rather than writing your own. It is built to match exactly ONE element, which the obvious selector often does not, and the driver acts on the first match - so a caller aiming at the third of five identical links would silently hit the first and be told it succeeded.

Elements with no selector carry at, the centre coordinates, for browser_click_at.

It lists what a caller can act on, and it is not the accessibility tree: one country <select> would otherwise fill the answer with its options before the form you were looking for appears.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
browserNoDefaults to `main`; `support` is the helper beside it.
max_charsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.68.0
    • addedInput schema / properties / browser / description
      Added value: +"Defaults to `main`; `support` is the helper beside it."
  2. First observedv0.43.0

TDQS

A3.7/5.0
Behavior5/5

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

The description adds valuable behavioral detail beyond the annotations: selectors are 'built to match exactly ONE element,' the driver acts on the first match, and elements without a selector carry center coordinates for browser_click_at. It also discloses the visible-only limitation and the reason for avoiding the accessibility tree. This is strong, practical behavioral transparency.

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?

The description is appropriately sized and front-loaded with the core purpose in the first sentence. The subsequent detailed behavior about selectors and first-match semantics earns its place because it prevents incorrect tool invocation. It could be slightly tighter, but there is no wasted filler.

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?

With an output schema present, the return format is largely covered, and the description provides the critical caveats about selector uniqueness and first-match behavior. The only missing piece is the meaning of `max_chars`, which is optional and has a default, so the tool remains callable without it. Overall, the description is strong for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50%; `browser` has a schema description but `max_chars` has none. The tool description does not explain `max_chars` at all, nor does it clarify the relationship between the parameters and the snapshot output. This leaves a meaningful gap for the agent.

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 clearly states the resource and output: 'Title, url, and the interactive elements that are actually visible.' It also distinguishes the tool from a raw accessibility dump by explicitly saying it is 'not the accessibility tree,' which helps differentiate it from read_text/read_html. It lacks an explicit imperative verb, but the intent is unambiguous.

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?

The description implies usage by stating 'It lists what a caller can act on,' suggesting it should be used before clicking or typing. It also explains why the accessibility tree is not used, which gives context for its filtering behavior. However, there is no explicit when-to-use or when-not-to-use guidance relative to sibling tools like browser_read_text or browser_take_screenshot.

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