Skip to main content
Glama

Wait for browser

browser_wait
Read-onlyIdempotent

Use this when browser navigation or an action must be followed by proof of selector/text/URL/load/navigation/network-idle instead of fixed sleeps or screenshot polling. Use browser_evaluate separately for JavaScript predicates.

Input Schema

NameRequiredDescriptionDefault
textNoText required by the selected action.
titleNoChoose a page whose title contains this text.
valueNoValue required by the selected action.
deviceYesReMCP device id returned by list_devices. Required for every device operation.
idle_msNoRequired zero-in-flight network quiet window for network_idle; default 500 ms.
poll_msNoPolling interval in milliseconds.
endpointNoLoopback Chrome DevTools endpoint. Defaults to REMCP_CDP_URL or http://127.0.0.1:9222.
selectorNoCSS selector identifying a web element.
conditionNoSemantic condition to wait for; choose the condition that directly proves the requested state transition.
target_idNoPage target id returned by browser_tabs.
timeout_msNoTimeout in milliseconds.
url_containsNoChoose a page whose URL contains this text.

Output Schema

NameRequiredDescriptionDefault
dataNoWait for browser structured result for browser_wait. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.
textYesConcise human-readable result of the tool call.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive safety, so the burden is low. The description adds genuine mechanism context: it is event-driven (proof of a state transition) rather than heuristic polling or fixed sleeps, and it distinguishes itself from browser_evaluate for JS predicates. It still doesn't disclose failure/timeout behavior (what happens when the condition never holds), which is the main residual gap for a blocking tool.

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 tight sentences, front-loaded with the triggering situation, then the explicit exclusion/alternative. No filler and no repetition of schema content.

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?

An output schema exists and schema coverage is 100%, so return-value explanation is unnecessary, and the annotations cover the safety profile. The description covers when-to-use and the sibling alternative well; the only meaningful omission is the timeout/failure semantics of a blocking wait, which matters for correct agent orchestration.

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 description coverage is 100%, so the schema already carries the parameter documentation burden. The description names the condition values that map to the schema's enum but adds no format, default, or interaction detail (e.g. how condition gates selector/text/value requirements) beyond what the schema encodes. Baseline 3 applies.

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

Purpose4/5

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

The description frames the tool as proof-of-condition waiting for navigation/actions and enumerates the six condition types (selector/text/URL/load/navigation/network-idle), which distinguishes it from sibling action tools. However, it never states the core verb+resource directly ('wait until a condition holds'), phrasing everything as usage guidance, so the agent has to infer the purpose from the condition list plus the title.

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

Usage Guidelines5/5

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

Explicitly states when to use it (after navigation or an action that must be followed by proof of selector/text/URL/load/network-idle), what NOT to use instead (fixed sleeps or screenshot polling), and routes JavaScript predicates to browser_evaluate. Both the positive trigger and the alternative path are named.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources