Skip to main content
Glama

chrome_use_wait

Wait for exactly one browser condition—an element, duration, URL, load state, JS expression, text, or download—before continuing automation.

Instructions

Wait for an element, a fixed duration, a URL, a load state, a JS condition, text, or a download. Provide exactly one of: selector, ms, url, loadState, expression, text, download.

Input Schema

NameRequiredDescriptionDefault
msNoWait this many milliseconds.
urlNoWait for the page URL to match this glob pattern.
goneNoWith selector: wait for it to leave the DOM instead of appearing.
textNoWait for this text to appear on the page.
forceNoWith tabId: act on a tab this session does not own (the user's own, or another session's), in place and in the background (--tab <handle> --force). Only when the user asked you to act on that tab; the result has forced: true and the tab's title and url.
tabIdNoTarget tab id (e.g. t2), label, or targetId (--tab).
hiddenNoWith selector: wait for it to become invisible instead of appearing.
sessionNoIsolated session name (chrome-use --session <name>). Each session gets its own tab group, browser tab and element refs. Omit it unless several agents share ONE MCP server — the session is otherwise derived per agent automatically. When you do share a server with sibling agents, pass a name unique to you on every call, or you will drive their tabs and invalidate their refs.
downloadNoWait for a download to complete.
selectorNoWait for this CSS selector/@ref to appear (or disappear, with gone/hidden).
loadStateNoWait for this load state.
timeoutMsNoKill the underlying chrome-use process if it hasn't responded after this many ms (default 30000).
expressionNoWait for this JS expression to become truthy.
downloadPathNoWith download: save it to this path.
waitTimeoutMsNoHow long to wait before giving up (distinct from the top-level timeoutMs).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior2/5

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

With no annotations present, the description carries the full disclosure burden and largely doesn't. It does not say whether the call blocks, what it returns on success (element? boolean?), or what happens when the wait times out — throw, return falsy, or partial result. The one-of constraint is the only real behavioral content added.

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?

Two sentences, zero filler, and the capability list is front-loaded before the constraint. The constraint sentence is a direct, actionable restatement that an agent needs before calling.

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 15-parameter tool with no annotations and no output schema, the description plus the fully documented schema cover the mutually-exclusive mode selection well. What's missing is the return contract — an agent doesn't know if a successful wait yields the element handle, a ref, or a plain boolean, and there is no output schema to fill that gap.

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 would be 3; the description earns above that by imposing a mutual-exclusion rule ("exactly one of") that the schema does not encode. It is slightly imprecise, since selector legitimately combines with gone/hidden and download with downloadPath, but the mode-selection semantics are a genuine addition.

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 names a specific verb (wait) plus the full set of resources it can wait on: element, duration, URL, load state, JS condition, text, download. That enumeration is exhaustive enough that an agent can tell this is the synchronization primitive and is not a duplicate of chrome_use_read, chrome_use_snapshot or chrome_use_eval.

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?

"Provide exactly one of: selector, ms, url, loadState, expression, text, download" is explicit routing guidance for choosing a wait mode, which is the main ambiguity an agent faces here. It stops short of stating when to prefer this over alternatives like chrome_use_snapshot (e.g. "use snapshot for immediate state, wait for eventual state").

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