Skip to main content
Glama

browser_snapshot

Capture accessibility-tree and DOM field facts with stable refs from an open browser tab, enabling reliable inspection, filtering, and automation of page controls.

Instructions

Read AX with refs, or profile=fields for DOM/AX field facts, labels, context and native values. Popup/controls/owns facts are browser-observed, not inferred ownership. New observations replace refs and retry one document/context race within 30s; next_cursor continues the captured view.

Input Schema

NameRequiredDescriptionDefault
textNoDefault true; false hides prose, preserving control names and values.
queryNoCase-insensitive literal substring of names, values or nearby context. fields also searches HTML labels, DOM id/name/placeholder and selected options. Zero matches is not an error.
cursorNo
profileNoDefault full; interactive keeps controls/ancestors; fields returns separate DOM/AX values in a fields array.
verboseNoInclude viewport and snapshot_id.
max_charsNo
max_nodesNo
tab_handleYes
text_limitNoProse preview length, marked with …; control names/values stay complete. Default 80 for interactive, unlimited for full.
include_hiddenNofields only, default false: include native fields omitted from AX; ref may be null. Password values omitted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.24.2
    • changedInput schema / properties / include_hidden / description
      Previous value: -"fields only, default false: also include native fields omitted from AX, such as hidden inputs. These may have ref=null. Password values are omitted."New value: +"fields only, default false: include native fields omitted from AX; ref may be null. Password values omitted."
    • changedInput schema / properties / profile / description
      Previous value: -"Default full; interactive keeps controls and ancestors; fields returns a fields array instead of AX text."New value: +"Default full; interactive keeps controls/ancestors; fields returns separate DOM/AX values in a fields array."
  2. First observedv0.24.0

TDQS

B3.1/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 real work: it discloses that new observations REPLACE existing refs (a critical staleness/invalidations warning), that it retries exactly one document/context race within 30s, that next_cursor resumes the captured view, and that popup/controls/owns facts are browser-observed rather than inferred. It stops short of describing the response envelope or how truncation via max_chars/max_nodes affects the ref set.

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?

Three dense sentences with the primary purpose front-loaded and no filler; the replacement/retry sentence in particular earns its place. Density tips into jargon-heavy shorthand ('AX', 'owns facts'), which slightly reduces first-read legibility, but nothing is wasted.

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

Completeness3/5

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

For a 10-parameter, annotation-free tool with no output schema, the description covers the behavioral semantics well but leaves gaps an agent needs: what a returned 'ref' looks like, what happens to refs when max_nodes truncates the tree, and how tab_handle is obtained. Adequate, not complete.

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 coverage is 60%, so the baseline is 3. The description reinforces profile=fields semantics and adds the next_cursor continuation behavior and the 30s race retry, but max_chars, max_nodes, cursor, tab_handle and include_hidden receive no treatment beyond the schema, and the interplay of truncation with ref validity is unaddressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It names a specific verb and resource ("Read AX with refs") and distinguishes two output modes via profile=fields, so an agent can tell it is a page-structure snapshot rather than a text dump. However, 'AX' is never expanded and nothing separates it from siblings like browser_read_text, browser_discover or browser_screenshot, so the agent must already know the domain vocabulary to place it.

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?

The description explains what each mode returns but never says when to choose this tool over browser_read_text, browser_discover, browser_screenshot or browser_evaluate — the most likely alternatives in a 23-tool set. There are no preconditions, no exclusions, and no decision rule beyond the mode labels already present in the schema.

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