Skip to main content
Glama

Hand the browser to the human to solve a challenge, then resume

await_human_interaction

Hand the live browser to a human for CAPTCHAs or Cloudflare checks that AI cannot automate, blocking until completion, cancellation, or timeout, then return status and current URL.

Instructions

Hand the live browser to the human for something the AI cannot or must not automate — a Cloudflare "Verify you are human" check, a CAPTCHA, an interstitial. It never solves the challenge and never bypasses anti-bot protection: it puts a window on screen, shows a localhost prompt with your reason and a Done button, and BLOCKS until the human clicks Done, the page reaches expectUrlContains, the human cancels, or timeoutMs elapses. Returns status (completed | cancelled | timeout) and the current url. The ONLY tool that shows a window: managed mode browses invisibly and is relaunched visibly here, so unsaved in-page state is lost. Headless mode returns a clear error instead of hanging.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
reasonYesPlain-language instruction shown to the human, e.g. "Solve the Cloudflare check, then click Done."
timeoutMsNoHow long to wait for the human, ms (default 180000, max 600000). On expiry returns status=timeout, never hangs.
screenshotNoInclude a screenshot of the resulting page. Default off.
expectUrlContainsNoAlso auto-complete when the page reaches a URL containing this, so a challenge that redirects on success needs no click.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.29.0

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries full responsibility and meets it: it discloses blocking behavior, return statuses (completed/cancelled/timeout), the visible window, state loss in managed mode, and the headless error path. It leaves no ambiguity about side effects or failure modes.

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?

Every sentence earns its place: purpose first, then behavior, then edge cases. The description is dense but not padded, and it front-loads the most critical fact (human-in-the-loop). No redundancy with the schema.

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?

The description fully covers the tool's purpose, invocation context, parameter behavior, return values, and failure modes. It even addresses the important 'headless mode returns an error' caveat. For a 4-parameter tool with no output schema, nothing an agent needs to call it 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% and each parameter has a clear description. The tool description adds value by explaining how parameters interact (e.g., expectUrlContains auto-completes on URL match, timeoutMs ensures no hang) and the overall blocking semantics. It does not repeat schema details but enriches the mental model of how the tool works, warranting above-baseline credit.

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 uses a specific verb and resource: 'Hand the live browser to the human for something the AI cannot or must not automate', then names concrete examples (Cloudflare check, CAPTCHA, interstitial). It also distinguishes from siblings by being 'The ONLY tool that shows a window', making its unique role clear.

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?

It explicitly states when to use (for challenges the AI cannot handle) and what it never does ('never solves the challenge and never bypasses anti-bot protection'). It also gives clear behavioral context: managed mode loses unsaved state, headless mode errors instead of hanging, and it blocks until conditions are met. This provides strong guidance without naming specific siblings, but the 'only tool' statement effectively separates it.

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