Docs
Dashboard
SDKs / MCP serverBeta

browser_act

Do one or more steps in the browser, in plain English or as exact actions.

Runs a list of steps on the session's browser page, in order, and stops at the first one that fails. A step is a sentence in plain English, such as "click the Sign in link", or an exact action such as {"action": "click", "selector": "text=Sign in"}. Use it to do several things in one call, or when saying what to click is easier than finding its selector. A plain-English step is carried out by a model, like a step of an agent run. A step that gives something back (evaluate, extract, elements or tabs) is followed by what it returned.

Inputs

NameTypeDefaultAllowed valuesDescription
sessionIdrequiredstring––The session's id, from session_create.
actionsrequiredarray of strings or objects––The steps, 1 to 100, run in this order. Each is a plain-English sentence (up to 2,000 characters), or an action object with an action field, for example {"action": "goto", "url": "https://example.com"} or {"action": "hover", "selector": "text=Products"}. The objects are the actions of the API's Run browser actions call.

This tool works in a session with a browser. On a shell-only session (created with browser: false) it answers browser_disabled. See the three kinds of session.

sessionId is the id that session_create returned. The server keeps no default session. If that session is stopped, this tool resumes it first, as it was (a resume starts a machine again, and billing with it).

Example call

This is what an MCP client sends. You do not write it yourself: ask the model in plain words and it calls the tool.

tools/call
{  "name": "browser_act",  "arguments": {    "sessionId": "6c1f3c9e-1d2a-4f67-9b0e-1b2c3d4e5f60",    "actions": [      {        "action": "goto",        "url": "https://example.com"      },      "click the More information link"    ]  }}

What it returns

One line per step, starting with the step's number and saying what happened. For a plain-English step, it is the model's own description of the action it chose. After the line of a step that returns something (evaluate, extract, elements, tabs), what it returned. A step that fails ends the list with its error, and the steps after it do not run.

Result
1. Opened https://example.com/ (HTTP 200)2. Clicked the "More information..." link

When a call fails, the result is marked as an error. Its text starts with the API’s error code, such as unauthorized or session_not_running, followed by its message.

Annotations

The server tells every client what this tool does to the world, so a client can decide what to ask you about before it runs.

AnnotationValue
titleDo steps in the browser
readOnlyHintfalse
destructiveHintfalse
openWorldHinttrue

Good to know

  • A plain-English step needs a plan that includes plain-English steps. It uses a model, so it is billed like a step of an agent run and counts toward your plan's monthly spend cap. A step given as an action uses no model.
  • Hovering, scrolling, dragging, double and right clicks, and key presses are actions too. The list of actions is in the API reference under Run browser actions, and in the guide to mouse and keyboard actions.
  • Coordinates are CSS pixels of the viewport, from its top-left corner.
  • Text in a step is sent to the model client like any other tool input. Do not put passwords in a step.
  • An app connected with a Boxline sign-in cannot use saved credentials: an action that names one (type with credential, or login) is refused with oauth_credentials_refused, and so is a plain-English step in a session whose shell holds credentials.

The same thing with the API

EndpointReference
POST /v1/sessions/{id}/browser/actionsRun browser actions

These docs describe a beta API. Endpoints, fields and SDK methods may change before general availability; breaking changes will be listed in the changelog.