Skip to main content
Glama

Respond to browser task

task_respond
Destructive

Perform one action from the current observation in the user's browser (click, type, select, press a key, navigate, scroll and similar; fill submit presses Enter after filling), resolve an uncertain effect, mark the task done, or report it blocked. Actions can change or submit data on websites; pauses follow current account-wide Permissions and immutable task confirmations, and an action whose effect is uncertain is never repeated automatically. BrowserPair dismisses page confirmation dialogs (outcome.dialogs); to answer a dismissed dialog OK, use acceptDialog: true only for the reported dialog and follow BrowserPair's approval decision; Developer mode with all questions off may handle dialogs automatically. Never replay an effect_unknown action. Downloads use download under current account-wide Permissions and immutable task confirmations: a blocked download is listed in outcome.downloads; repeat that action with allowDownload: true to ask the user. BrowserPair never returns file contents. To put a file into a page's file field (an element of kind file, or the button that opens the chooser), use kind upload with file; it uses file_upload under current account-wide Permissions; a user-picked file always waits for the user. When the task has several tabs, the observation lists them in task_tabs; use kind switch_tab with tabId to go back to one, or kind close_tab with tabId to close one this task opened (opened_by_task) that is not current. The observation's open_tabs lists tabs the user already has open on the task's sites (other_open_tabs counts the rest without naming them); use kind adopt_tab with one of those tabIds to work in it instead of opening a new tab. An adopted tab stays the user's: ending the task never closes it. For responsive QA, kind set_viewport with width/height uses viewport_control under current account-wide Permissions and changes only the task-owned tab viewport; BrowserPair resets it when control ends. To have the user do one step on the page (sign in, a CAPTCHA or code, a payment step) and then continue yourself, use kind user_step with a reason. For sign_in or verification you may name a structured method such as passkey, QR code, security key or device approval; BrowserPair asks the user in Chrome, never handles that secret/device factor itself, and returns a fresh observation when they press Continue. When the user should continue themselves (for example to review, sign in or pay), end with kind handoff and a summary: the current tab stays open in front of them and BrowserPair stops acting. Never invent refs that are not in task_state.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "task_id": "<task_id>",
      "interaction_generation": "<interaction_generation>",
      "action": "<action>"
    },
    "name": "task_respond"
  }
}

Input Schema

NameRequiredDescriptionDefault
actionYes
task_idYes
interaction_generationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / action / properties / count
      Added value: +{
      +  "default": 1,
      +  "maximum": 25,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / action / properties / dialogText / description
      Previous value: -"Developer mode Allow all only: the text to answer a page prompt() with during this action (other agents never answer prompts)."New value: +"Developer mode: the text typed into a JavaScript prompt() this action opens, which is then accepted."
    • addedInput schema / properties / action / properties / submit
      Added value: +{
      +  "type": "boolean"
      +}
  2. Changed3 schema fields changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • changedInput schema / properties / action / properties / key / description
      Previous value: -"Enter, Escape, Tab, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Home, End, PageUp, PageDown, Space, or one printable character such as \"a\", \"Z\" or \"5\""New value: +"Enter, Escape, Tab, Backspace, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Home, End, PageUp, PageDown, Space, or one printable character such as \"a\", \"Z\" or \"5\""
    • changedInput schema / properties / action / properties / key / pattern
      Previous value: -"^(?:Enter|Escape|Tab|ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Home|End|PageUp|PageDown|Space|[!-~])$"New value: +"^(?:Enter|Escape|Tab|Backspace|ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Home|End|PageUp|PageDown|Space|[!-~])$"
  3. Changed4 schema fields changed
    • addedInput schema / properties / action / properties / arguments
      Added value: +{
      +  "additionalProperties": {},
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / action / properties / cursor
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / action / properties / kind / enum
      Previous value: -[
      -  "navigate",
      -  "open_tab",
      -  "back",
      -  "adopt_tab",
      -  "switch_tab",
      -  "close_tab",
      -  "set_viewport",
      -  "click",
      -  "double_click",
      -  "context_click",
      -  "drag",
      -  "canvas_click",
      -  "range_click",
      -  "fill",
      -  "select",
      -  "focus",
      -  "press",
      -  "hover",
      -  "scroll",
      -  "wait",
      -  "upload",
      -  "user_step",
      -  "done",
      -  "blocked",
      -  "handoff",
      -  "resolve_effect"
      -]New value: +[
      +  "webmcp_tools",
      +  "webmcp_call",
      +  "navigate",
      +  "open_tab",
      +  "back",
      +  "adopt_tab",
      +  "switch_tab",
      +  "close_tab",
      +  "set_viewport",
      +  "click",
      +  "double_click",
      +  "context_click",
      +  "drag",
      +  "canvas_click",
      +  "range_click",
      +  "fill",
      +  "select",
      +  "focus",
      +  "press",
      +  "hover",
      +  "scroll",
      +  "wait",
      +  "upload",
      +  "user_step",
      +  "done",
      +  "blocked",
      +  "handoff",
      +  "resolve_effect"
      +]
    • addedInput schema / properties / action / properties / resultOffset
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
  4. First observed

TDQS

A4.6/5.0
Behavior5/5

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

The annotations already flag destructive, open-world, and non-idempotent behavior, but the description adds substantial context beyond them: actions can change or submit data, pauses depend on account-wide Permissions and immutable task confirmations, uncertain effects are never automatically repeated, downloads never return file contents, dialogs are dismissed by BrowserPair, and adopted tabs remain the user's. These details materially improve safe invocation.

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

Conciseness3/5

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

The first sentence is well front-loaded, but the remaining description is a dense wall of sentences with repeated phrasing such as 'current account-wide Permissions and immutable task confirmations.' It is mostly substantive content, yet the lack of grouping by action category makes scanning harder than necessary for such a complex tool.

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?

Given the very large action enum, nested schema, and absence of an output schema, the description covers a lot of needed operational context: safety constraints, dialog handling, downloads, uploads, tab management, viewport changes, user steps, handoff, and ref validity. It still does not fully explain the return shape or the semantics of fields such as interaction_generation and expectedOutcome, leaving some gaps for a tool of this complexity.

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?

With schema description coverage at 0%, the description carries much of the parameter burden and succeeds for many important fields: kind-specific usage, fill submit behavior, acceptDialog, allowDownload, upload file semantics, tabId, width/height, user_step reason/method, handoff summary, and task_state refs. It leaves several nested or top-level fields unexplained, including expectedOutcome criteria, verdict, resultOffset, interaction_generation, cursor, and relative coordinates, so it is strong but not complete.

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 first sentence states a specific verb ('Perform one action') and resource ('current observation in the user's browser'), then enumerates the action scope including click, type, select, press, navigate, scroll, done, and blocked. An agent can distinguish this action tool from observation/extraction siblings by the action-oriented framing and the explicit 'from the current observation' constraint.

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?

The description explicitly routes many cases: use user_step for sign-in, CAPTCHA, code, or payment; handoff when the user should continue; switch_tab/adopt_tab/close_tab for tab situations; upload for file fields; allowDownload after a blocked download; acceptDialog only for the reported dialog. It also gives exclusions such as never replaying an effect_unknown action and never inventing refs not in task_state.

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