Skip to main content
Glama

get_interactives

Read-onlyIdempotent

Lists actionable elements (buttons, links, inputs) with CSS selectors, labels, positions and refs for click, type or hover. Discover selectors instead of dumping HTML.

Instructions

List actionable elements (buttons, links, inputs, [role], [onclick]) with ready-to-use CSS selector, label, position, flags. Prefer this over dumping HTML to discover selectors. Document order, cut at limit (count equal to limit: there may be more), each with a ref (n1, n2…) for click, type_text and hover. The full list also names the WebMCP tools the page declares, if any.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_interactives"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoMax elements returned; raise it on a dense page
scopeNoLimit search (CSS selector)
sinceNocursor from the previous list: only added (+), changed (~) and removed elements; same scope, frame and tab
formatNolines is compact; json adds full attributes per elementlines
tab_idNoTarget tab; omitted = last tab navigated in this session, else the active one
frame_idNoTarget iframe id from get_frames; omitted = main frame
visible_onlyNofalse also lists elements hidden or scrolled out of view

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.28.0
    • addedInput schema / properties / since
      Added value: +{
      +  "description": "cursor from the previous list: only added (+), changed (~) and removed elements; same scope, frame and tab",
      +  "type": "string"
      +}
  2. Changed5 schema fields changedv1.10.0
    • addedInput schema / properties / format / description
      Added value: +"lines is compact; json adds full attributes per element"
    • addedInput schema / properties / frame_id / description
      Added value: +"Target iframe id from get_frames; omitted = main frame"
    • addedInput schema / properties / limit / description
      Added value: +"Max elements returned; raise it on a dense page"
    • addedInput schema / properties / tab_id / description
      Added value: +"Target tab; omitted = last tab navigated in this session, else the active one"
    • addedInput schema / properties / visible_only / description
      Added value: +"false also lists elements hidden or scrolled out of view"
  3. First observedv1.8.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely non-obvious behavior: document order, the truncation trap ('count equal to limit: there may be more'), stable refs across calls, and that the full list surfaces page-declared WebMCP tools. That truncation warning is exactly the kind of information an agent cannot get from the schema.

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?

Front-loaded with the resource definition and the selector-discovery rationale; every sentence carries information. Density suffers slightly from stacked parentheticals ('(buttons, links, inputs, [role], [onclick])', '(count equal to limit: there may be more)') that reduce scannability.

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

Completeness5/5

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

Seven optional params, no output schema, rich annotations — the description still covers return shape, ordering, truncation, ref lifecycle, incremental diffing, and the WebMCP side-effect. Nothing an agent needs to call this correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds the interpretive rule for limit (result count equal to limit signals possible truncation) and clarifies that refs are the handle for click/type_text/hover, which links the output to the since/scope semantics. It does not explain scope/frame_id interplay beyond the schema.

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?

States a specific verb and resource ('List actionable elements') and enumerates exactly what qualifies (buttons, links, inputs, [role], [onclick]) plus what comes back per element (selector, label, position, flags). An agent can tell this apart from extract/read_page/query_dom purely from the description.

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

Usage Guidelines4/5

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

Explicitly positions itself against the main alternative: 'Prefer this over dumping HTML to discover selectors,' and ties the emitted refs to the downstream click, type_text and hover tools. It stops short of naming the sibling tools it replaces or stating when-not to use it.

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