ScalebrowserDOCS

Tool reference

Every MCP tool the daemon can serve, grouped by the profile it belongs to, with what each one does and which of them change something.

Last updated

All 77 of them. Which ones your daemon actually serves is decided by its configuration: see the tool set.

Every table on this page is generated from the daemon's own tool registry, so it cannot drift from what your client will see in tools/list.

The profiles

ProfileToolsServed by default
core21yes
extended26no
management22no
workflows3no
credentials5no

A tool outside the served set does not exist as far as a client is concerned: it is absent from the listing and refused on call.

Tool groups

Profiles say what kind of tool it is. Groups say whether an agent sees it by default. Of the tools its profiles hold, the daemon serves the basic group, and every other group is one switch in the desktop app under Settings, Agent tools. Agents that connect after the switch see the new tools.

GroupToolsWhat it adds
basic36Always on: leasing, seeing and operating the page, reading it, logins and the inbox.
video2record and video: a film of what the agent did.
tasks5The task list across all profiles.
fleet16Profile management: creating, changing, starting and stopping profiles, groups, presets, proxies and sessions.
captcha4Captcha helpers: measuring a picture or an audio challenge.
extras5Cookies, passkey retirement, PDFs and earlier runs.
developer9Reading the page's own markup and structure, and seeing its requests by shape: dom_html, selector_for, query_selector, computed_style, net_capture.

Why most groups start off. Every tool in the list costs tokens on every request an agent makes. In a month of the desktop app, agents used 31 of its 65 tools, and two models chose the right tool as often from 33 tools as from 65. The basic group alone costs about half the tokens.

A call to a tool whose group is off is refused with tool_group_off, naming the switch. The same switches are on GET and PUT /v1/agent-tools for a machine without a screen.

What a tool takes

A management tool takes a profile id and manages the fleet. Every other tool takes the handle from lease_profile and works on the page in front of it. Anything that shows typed text or saved files hangs on the handle, never on an id, because a history addressed by id would show one agent what another one typed. The one exception is video with action=status: after release_profile it takes the profile_id plus the video_id your own render returned.

Every name is snake_case. Before October 2026 the management tools carried a dot (profile.list). That spelling still works when you call it, so older scripts keep running.

core

The default set, on its own: leasing a browser, seeing and operating the page.

ToolWhat it does
lease_profileReserve a free profile, start its browser, bind a tab, and return the handle.
lease_fleetThe same for several profiles at once, one handle each.
lease_renewPush the reservation's deadline out without losing the handle.
start_runSay in one sentence what this stretch of work is for, so the operator sees it.
release_profileEnd the reservation and stop the browser. Records how the work went.
open_pageNavigate to a public http or https address, and get the full page map back.
snapshotWhat is on the page now. A diff, unless you ask for a full map.
clickClick an element, optionally a point inside it, for a picture rather than a control.
press_and_holdThe whole press-and-hold gesture, in one call.
type_textClick a field and type into it at this profile's own cadence.
fill_formSeveral fields in one call.
press_keyA key, including modifier chords.
scrollA real wheel gesture with momentum, not a jump.
wait_forWait for text or an element to appear, to go, or for the page to go quiet.
screenshotCapture the page or one element, for when the text map cannot describe it.
recordStart or stop recording what the browser is doing.
videoTurn a recording into a film, and check on one that is rendering.
read_valueRead one thing from an element: text, an allowed attribute, a count, a table.
read_textRead the page's prose verbatim, for an article or a thread of comments.
interruption_respondAnswer what the browser itself is asking: a permission prompt, a device chooser.
secret_listWhich values this profile holds that the agent may use but not read.

extended

Operating the page beyond a click, plus the reading and measuring tools. This is the set most people add second.

ToolWhat it does
interactHover, drag, upload a file, or choose from a native dropdown.
navigateHistory and tabs, including the popup a click just opened.
measure_framesHow a moving element behaves over time, for a slider or an animation.
measure_gapThe distance between two elements, for a puzzle piece and its slot.
transcribe_audioTurn an audio challenge into text, through the operator's own command.
measure_rotationHow far an image is turned, for a rotation challenge.
interruption_listWhat the browser is currently asking, if anything.
passkey_listWhich sites this profile can sign in to without a password.
passkey_retireStop this profile from offering one passkey, for good.
cookie_listThe shape of the cookie jar. Never a value.
cookie_deleteRemove one cookie, or every cookie of one site.
page_reportThe newest requests the page loaded and the failed ones among them. Not the page's console output; never headers, cookies or bodies.
dom_htmlThe markup of one element or of the document. With the Secret Layer on, only a short list of attributes shows its value, and typed values and the bodies of scripts, styles and comments come back as [withheld]; with it off, the markup comes back whole.
clipboardRead or write the clipboard of the bound tab.
save_pdfSave the current page as a PDF artifact.
download_fileFollow a download and keep the result as an artifact.
artifact_listWhat this profile has produced (screenshots, downloads, PDFs, recordings) and the files you dropped on it in the app.
run_listThis profile's earlier runs, so an agent can see what was already tried.
computed_styleAn element's computed CSS, including shorthands and custom properties like --brand, and its box in the viewport.
query_selectorThe elements a CSS selector or an XPath matches, as refs any other tool can act on, fifty at a time, each with a short label. A chain a >> b enters open shadow roots and same-origin iframes.
selector_forA CSS selector and an XPath for one element, built from its tag, id, test-hook or position. For an element in a shadow root or an iframe it answers with a chain that query_selector follows.
net_captureThe requests the page makes, by shape: method, origin and path, status, kind, size and the names of the headers. No header value, query string or body, unless the operator has switched the Secret Layer off: then seq reads one request in full, cookie values excepted, and save keeps a long body as a file. Recording starts with the first call, covers the whole browser rather than one tab (page, path, kind, method and errors_only narrow it; summary answers with groups instead of rows, order newest lists the latest first, and a row is compact unless full is set), and runs until stop or until the lease ends. A reply holds as many requests as fit; while has_more is true, call again with since set to next_since.
read_consoleWhat the page wrote to its console: logs, warnings, errors, uncaught exceptions and rejected promises, from the page, its frames and its workers, kept from the browser's start. Objects appear as [object Object]. Needs a browser engine from the next engine release on; an older one says so.
evaluate_scriptRun a JavaScript function that only reads, in a world the page cannot see, and get its value back as JSON. Any write, request or call with an effect is stopped before it lands, and a run ends after 1 s. Only with the Secret Layer off.
read_page_variableA value from the page's own JavaScript, such as window.__APP_STATE__.cart, read without running any of the page's code: getters and proxies are named, never opened. Only with the Secret Layer off.
performance_traceHow a page loads: first and largest paint, blocking time, layout shift, the longest tasks and the slowest requests, and a score on Lighthouse's curves without Speed Index. Never reloads the page and takes no screenshots.

The four measuring tools exist for verification challenges, which is the one place a text map is not enough.

A file from your computer reaches an agent through the app. Open the profile, go to Memory, and drop the file under Files for agents. Every agent that holds the profile then sees it with artifact_list and attaches it with interact (action: "upload"). A dropped file is kept for 4 hours. Without the app, POST /v1/profiles/:id/artifacts does the same. A file on the web needs no drop: the agent opens its address in a new tab (navigate, action: "new"), stores it with download_file and switches back.

management

The fleet, addressed by id rather than by handle. An agent with core alone cannot even list a profile, so this is the set that makes an agent self-sufficient.

ToolWhat it does
profile_listThe profiles on this daemon, with their state.
profile_createCreate a profile with a fresh identity.
profile_startStart a profile's browser. Does not give you one you can drive.
profile_stopStop a profile's browser.
profile_updateChange a profile's settings: name, proxy, group, geo mode.
input_humanizeDispatch one humanized gesture at a coordinate, outside the page map.
session_exportA profile's session as a password-encrypted bundle.
session_importUnseal such a bundle into a profile.
credential_listWhich platforms a profile can log into, or with platform alone, which profiles hold a login for it. Account names, never secrets.
group_listThe groups profiles are labelled with.
profile_batchStart, stop, delete, or reassign a proxy or extensions across many profiles.
preset_instantiateMake a fleet from a template: N profiles, each with its own identity.
task_listWhat is outstanding on a profile.
task_addPut work on a profile's list, for now or for later.
task_startMark a task as being worked on.
task_doneClose a task, with what came of it.
task_cancelDrop a task that no longer applies.
proxy_listThe proxy pool. Never credentials.
extension_listThe extension library, and what each profile loads.
preset_listThe stored templates.
group_createCreate a group.
group_deleteDelete a group. Its profiles stay.

profile_batch can delete profiles. With action: "delete" it stops the browser, drops the profile and reclaims its disk, which takes every login inside it. It is the one destructive tool the Windows desktop client serves out of the box, and this layer has no confirmation step anywhere.

workflows

ToolWhat it does
record_workflowBracket a stretch of ordinary work so it can be replayed later.
compile_workflowTurn a stopped recording into a named, stored routine.
run_workflowReplay a stored routine on a leased profile.

See Workflows.

credentials

Not in the daemon's default set: an agent doing research has no business inside anyone's account, so on a daemon you run yourself this is an explicit decision.

The desktop app serves it. Without credential_new nothing in a catalog can produce a password, and an agent asked to create an account is then left to think one up and type it in the clear, which is what this whole set exists to avoid.

ToolWhat it does
credential_fillSign in with this profile's stored login. The agent never receives it.
credential_newSign up: the daemon draws the password, stores it, and types it.
credential_storePut a login the profile already has into the vault.
read_inboxThe profile's confirmation codes, by mail or by text.
inbox_open_linkOpen a link out of a message, by its number. The address is never shown.

See Credentials & logins and Email inboxes.

What read-only mode leaves

--mcp-read-only removes every tool that changes anything, in the browser, in the store or on disk, from the listing and refuses it if called anyway.

What stays, across every profile:

artifact_list, computed_style, cookie_list, credential_list, dom_html, download_file, evaluate_script, extension_list, group_list, interruption_list, lease_renew, measure_frames, measure_gap, measure_rotation, net_capture, page_report, passkey_list, preset_list, profile_list, proxy_list, query_selector, read_console, read_inbox, read_page_variable, read_text, read_value, record_workflow, run_list, save_pdf, screenshot, scroll, secret_list, selector_for, session_export, snapshot, task_list, transcribe_audio, wait_for

lease_profile is not on that list. Reserving a profile starts a browser, so it counts as changing something. An agent under this flag cannot open its own session, which makes read-only a restraint on a connected agent rather than a lighter way to let one in.

The destructive ones

The MCP destructiveHint marks a tool as a destructive update rather than an additive one. Creating a profile is mutating and not destructive; deleting one is both.

ToolProfile
release_profilecore
clickcore
press_and_holdcore
type_textcore
fill_formcore
press_keycore
passkey_retireextended
cookie_deleteextended
run_workflowworkflows
profile_stopmanagement
input_humanizemanagement
session_importmanagement
profile_batchmanagement
task_cancelmanagement
group_deletemanagement
credential_fillcredentials
credential_newcredentials
credential_storecredentials

A click is on that list on purpose. This layer cannot tell "Add to cart" from "Delete account", and the hint reflects that rather than pretending otherwise.

Next

  • MCP server: connecting, the loop, and how the page map works.
  • Errors: the failure shape every one of these can answer with.
  • Remote access: reaching this catalog from a chat service.

Run it on your own machine

Seven days to try it with your own agents on your own sites. Starting the trial needs a card.

Get started