Skip to main content
Glama

adl_act

Executes one approved semantic action (click, fill, select, check, scroll, navigate, read_state, wait_for) with an observed revision for deterministic browser or desktop control.

Instructions

Perform one approved semantic action with a mandatory observed revision. No arbitrary JS, files or physical input.

Input Schema

NameRequiredDescriptionDefault
urlNo
nameNo
roleNo
valueNo
actionYes
checkedNo
directionNo
element_idNo
session_idYes
timeout_msNo
expected_targetNo
expected_revisionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.4

TDQS

C2.9/5.0
Behavior3/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 disclose two meaningful traits: one action per call and a mandatory precondition revision (optimistic concurrency, implying stale revisions are rejected). It leaves critical behavior undisclosed: what happens on revision mismatch, whether actions are retry-safe, what "approved" gates, and what the call returns.

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?

Two tight sentences, front-loaded with the core operation and immediately followed by the key constraint, then the safety boundary. No filler. It is arguably under-specification rather than verbosity, but as prose structure it is efficient.

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

Completeness2/5

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

For a 12-parameter, mutation-capable browser automation tool with no annotations and no output schema, the description is too thin. An agent still cannot tell how to obtain expected_revision, how to target elements, which parameters apply to which action, or what failure looks like.

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 0% across 12 parameters, including a nested expected_target object, so the description must compensate and does not. Only expected_revision is indirectly explained ("observed revision"); the targeting model (element_id vs role/name vs url), value/checked/direction applicability per action, and timeout_ms semantics are unexplained.

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?

"Perform one approved semantic action" gives a verb but the resource is abstract — "semantic action" only becomes concrete via the schema's enum (click, fill, scroll, navigate, read_state…). It does not distinguish itself from siblings like adl_execute, adl_gesture, or adl_prepare_input/adl_commit_input, so an agent cannot route confidently from the description alone.

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?

"Mandatory observed revision" strongly implies a read-then-act workflow (observe first, then act on the returned revision), which is real usage guidance. "No arbitrary JS, files or physical input" sets a negative boundary. But there is no explicit statement of when to prefer this over adl_execute or adl_gesture, nor what "approved" means or who approves.

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