Skip to main content
Glama

Run a multi-step interaction sequence

run_interaction_sequence

Run a multi-step browser flow—clicks, typing, waits, and assertions—in one pass, then get a single screenshot and layout audit of the final state to verify the whole interaction sequence.

Instructions

Batch pipeline for multi-step flows such as forms and nested menus: navigates, optionally matches a viewport, then runs the steps in one fast loop and returns ONE screenshot plus ONE layout audit after the final step — far cheaper than chaining interact_and_audit. Steps mix gestures, waits, expect_* assertions and evaluate_script, so a single call can drive AND verify a flow. A failing gesture or wait aborts at its index with earlier steps applied; failed expect_* checks let the flow finish but mark the whole response a FAILURE.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesAbsolute URL to open, e.g. http://localhost:5173.
stepsYesOrdered steps run back-to-back (max 25), with a reflow pause between each. ONE screenshot + audit is returned after the last step, so a flow costs far less than one interact_and_audit per step. A failing gesture or wait aborts at its index, earlier steps stay applied; failed expect_* checks come back as a verdict.
reloadNoReload even if the URL is already open (default reuses it, so it can be stale after an edit).
sizeModeNoWhat goes over the wire: "full-res" (default), or "thumb" for a 480px webp. Disk always gets the full-resolution image.full-res
viewportNoSwitch to this breakpoint first. Default: keep the current one.
ignoreSelectorNoSelector(s) to exclude from the audit, string or array. Matches and their descendants are suppressed and counted — silences known noise like a cookie banner.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.29.0

TDQS

A4.4/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. It discloses key behaviors: returns ONE screenshot plus ONE layout audit after the final step, failure semantics (gesture/wait aborts at index, expect_* fails but flow finishes and marks whole response a FAILURE), and performance note ('far cheaper'). It also clarifies evaluate_script reads page state without a screenshot. It omits some details like reflow pauses and permission requirements, but covers the most critical behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence contributes: purpose and cost in the first clause, capability overview in the second, and failure semantics in the third. It's front-loaded with the most important distinction (cheaper than chaining) and uses concise, scannable language. No filler or redundancy.

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 complex tool with nested steps, no output schema, and no annotations, the description covers the essential contexts: what it returns, failure modes, performance trade-off, and the range of actions. It doesn't detail the layout audit structure or explicitly mention the reflow pause (that's in schema), but the core agent-facing information is present. Slightly more detail on expected output shape would elevate it, but it's sufficient.

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 parameters are well-documented. The description adds meaning by explaining the overall flow: steps run back-to-back with a reflow pause, failure modes per step type, and the aggregate output. It also clarifies the action enum's relationship to interact_and_audit and the pointer_* actions' purpose for canvas/shadow DOM. This goes beyond the schema's individual parameter descriptions.

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?

The description clearly states the tool is a batch pipeline for multi-step flows like forms and nested menus, with specific verbs (navigates, matches viewport, runs steps) and a distinct resource (multi-step interaction sequence). It explicitly differentiates from chaining interact_and_audit by highlighting cost efficiency, so an agent can immediately understand its role.

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?

It names the alternative (interact_and_audit) and explicitly says it's 'far cheaper than chaining' that tool, giving clear context for when this tool is preferable. It also describes capabilities (mixing gestures, waits, expect_* and evaluate_script) but doesn't explicitly state when NOT to use it (e.g., for a single-step action), so it falls just short of a 5.

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