Skip to content

Reference

MCP tool reference

  • v0 · latest
  • 35 min read
  • Updated Sep 16, 2026
  • Generated from source

The 43 tools BrowserHive registers, in registration order, generated from TOOL_CONTRACTS in @browserhive/contracts/tools. Names, parameters, defaults and result shapes are a frozen contract. Every page-targeting tool accepts an optional tab_id (defaults to the active tab). Errors are returned as [CODE] message text; see the error reference.

Defaults shown for launch_session channel and headless are the contract defaults; a server started with --defaultChannel / --defaultHeadless advertises its configured values in tools/list.

# Tool Pack Title RO Destructive Idempotent Open world
1 launch_session Lifecycle Launch session no no no yes
2 close_session Lifecycle Close session no yes yes no
3 list_sessions Lifecycle List sessions yes no yes no
4 server_status Introspection Server status yes no yes no
5 session_info Introspection Session info yes no yes no
6 navigate Navigation Navigate no no no yes
7 go_back Navigation Go back no no no yes
8 go_forward Navigation Go forward no no no yes
9 reload Navigation Reload no no yes yes
10 wait_for_url Navigation Wait for URL yes no yes no
11 new_tab Tabs New tab no no no yes
12 close_tab Tabs Close tab no yes yes no
13 switch_tab Tabs Switch tab no no yes no
14 list_tabs Tabs List tabs yes no yes no
15 click Interaction Click no no no yes
16 type_text Interaction Type text no no no yes
17 fill Interaction Fill no no yes yes
18 press_key Interaction Press key no no no yes
19 hover Interaction Hover no no yes yes
20 select_option Interaction Select option no no yes yes
21 scroll Interaction Scroll no no no yes
22 drag_and_drop Interaction Drag and drop no no no yes
23 screenshot Inspection Screenshot yes no yes no
24 snapshot Inspection Snapshot yes no yes no
25 get_content Inspection Get content yes no yes no
26 evaluate Inspection Evaluate no no no yes
27 wait_for_selector Waits Wait for selector yes no yes no
28 wait_for_load_state Waits Wait for load state yes no yes no
29 accept_next_dialog Dialogs Accept next dialog no no yes no
30 dismiss_next_dialog Dialogs Dismiss next dialog no no yes no
31 get_cookies Cookies and state Get cookies yes no yes no
32 set_cookies Cookies and state Set cookies no no yes no
33 set_viewport Cookies and state Set viewport no no yes no
34 set_extra_http_headers Cookies and state Set extra HTTP headers no no yes no
35 upload_file Files Upload file no no yes no
36 download_file Files Download file no no no yes
37 save_storage_state Auth states Save storage state no no yes no
38 save_full_profile Auth states Save full profile no no yes no
39 list_saved_auths Auth states List saved auths yes no yes no
40 request_attention Attention (HTTP transport only) Request attention no no no no
41 get_attention_result Attention (HTTP transport only) Get attention result yes no yes no
42 vault_list_available Vault Vault: list available yes no yes no
43 vault_fill Vault Vault: fill no no no yes

Launch session · capability lifecycle · since 0.1.0

Launch a new isolated browser session. Each session owns its own Playwright driver, browser, context, and page so cookies and storage never leak between sessions. The resolved session_id is ‘-’ and is returned as the ‘session_id’ field.

Annotations: readOnly no · destructive no · idempotent no · openWorld yes

Parameters:

Name Type Required Default Notes
slug string yes pattern ^[a-z][a-z0-9-]{1,31}$
channel one of chromium, chrome, edge no "chromium"
incognito boolean no false
headless boolean no true
persistence_mode one of memory, persistent, storage-state no
restore_profile string no
launch_options object no keys args, executablePath; additional keys allowed
context_options object no additional keys allowed
disable_evaluate boolean no false
vault_enabled boolean no true
stealth boolean no
fingerprint boolean no
humanize boolean no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
slug string yes
channel one of chromium, chrome, edge yes
incognito boolean yes
headless boolean yes
persistence_mode one of memory, persistent, storage-state yes
current_url string or null yes
created_at number yes
owner string yes
lease_expires_at number yes
lease_paused_at number or null yes
disable_evaluate boolean yes
vault_enabled boolean yes
stealth boolean yes
fingerprint boolean yes
humanize boolean yes
identity object or null yes
proxy_label string or null yes

Errors: INVALID_SLUG, UNKNOWN_CHANNEL, SESSION_LIMIT_REACHED, SESSION_ALREADY_EXISTS, UNSAFE_LAUNCH_ARG, INVALID_PERSISTENCE_CONFIG, AUTH_STATE_NOT_FOUND, BROWSER_NOT_INSTALLED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Close session · capability lifecycle · since 0.1.0

Close an existing browser session and release all its resources.

Annotations: readOnly no · destructive yes · idempotent yes · openWorld no

Parameters:

Name Type Required Default Notes
session_id string yes

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
closed boolean yes

Errors: none documented. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

List sessions · capability lifecycle · since 0.1.0

Return metadata for every live session.

Annotations: readOnly yes · destructive no · idempotent yes · openWorld no

Parameters: none.

Result: a JSON array; each item has:

Field Type Always present
session_id string yes
slug string yes
channel one of chromium, chrome, edge yes
incognito boolean yes
headless boolean yes
persistence_mode one of memory, persistent, storage-state yes
current_url string or null yes
created_at number yes
owner string yes
lease_expires_at number yes
lease_paused_at number or null yes
disable_evaluate boolean yes
vault_enabled boolean yes
stealth boolean yes
fingerprint boolean yes
humanize boolean yes
identity object or null yes
proxy_label string or null yes

Errors: none documented. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Server status · capability read · since 0.1.0

Report server-wide status: uptime, version, transport, live/allowed session counts, vault state, and the global default persistence mode.

Annotations: readOnly yes · destructive no · idempotent yes · openWorld no

Parameters: none.

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
uptime_ms number yes
version string yes
transport one of stdio, http yes
sessions object yes
vault object yes
persistence_mode one of memory, persistent, storage-state yes

Errors: none documented. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Session info · capability read · since 0.1.0

Report a single session’s configuration and live state: channel, headless/incognito, persistence mode, per-session evaluate/vault flags, open tab (page) count, current URL, created_at, last_tool_at, and navigation count.

Annotations: readOnly yes · destructive no · idempotent yes · openWorld no

Parameters:

Name Type Required Default Notes
session_id string yes

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
config object yes
page_count number yes
current_url string or null yes
created_at number yes
last_tool_at number yes
lease_expires_at number yes
navigation_count number yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Navigate · capability navigate · since 0.1.0

Navigate a tab to a URL (defaults to the active tab). The operator may maintain a URL blocklist; a blocked target fails with URL_BLOCKED and must not be retried.

Annotations: readOnly no · destructive no · idempotent no · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
url string yes
wait_until one of load, domcontentloaded, networkidle, commit no "load"
timeout integer no 30000 ≥ 0
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
url string yes
status number or null yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, URL_BLOCKED, TAB_NOT_FOUND, NAVIGATION_TIMEOUT, NAVIGATION_FAILED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Go back · capability navigate · since 0.1.0

Navigate back in a tab’s history (defaults to the active tab).

Annotations: readOnly no · destructive no · idempotent no · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
wait_until one of load, domcontentloaded, networkidle, commit no "load"
timeout integer no 30000 ≥ 0
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
url string yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND, NAVIGATION_TIMEOUT, NAVIGATION_FAILED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Go forward · capability navigate · since 0.1.0

Navigate forward in a tab’s history (defaults to the active tab).

Annotations: readOnly no · destructive no · idempotent no · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
wait_until one of load, domcontentloaded, networkidle, commit no "load"
timeout integer no 30000 ≥ 0
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
url string yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND, NAVIGATION_TIMEOUT, NAVIGATION_FAILED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Reload · capability navigate · since 0.1.0

Reload the current page in a tab (defaults to the active tab).

Annotations: readOnly no · destructive no · idempotent yes · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
wait_until one of load, domcontentloaded, networkidle, commit no "load"
timeout integer no 30000 ≥ 0
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
url string yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND, NAVIGATION_TIMEOUT, NAVIGATION_FAILED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Wait for URL · capability read · since 0.1.0

Wait until a tab’s URL matches. url may be a string (exact/glob) or a { pattern, flags? } object compiled to a regular expression.

Annotations: readOnly yes · destructive no · idempotent yes · openWorld no

Parameters:

Name Type Required Default Notes
session_id string yes
url string or object yes
timeout integer no 30000 ≥ 0
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
url string yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND, WAIT_TIMEOUT. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

New tab · capability navigate · since 0.1.0

Open a new tab in the session and make it active. Optionally navigate it to a URL. Returns the stable tab_id other tools accept via their optional tab_id argument.

Annotations: readOnly no · destructive no · idempotent no · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
url string no
wait_until one of load, domcontentloaded, networkidle, commit no "load"
timeout integer no 30000 ≥ 0

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
tab_id string yes
url string yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, URL_BLOCKED, NAVIGATION_TIMEOUT, NAVIGATION_FAILED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Close tab · capability mutate · since 0.1.0

Close a tab by id. If it was the active tab, another open tab becomes active.

Annotations: readOnly no · destructive yes · idempotent yes · openWorld no

Parameters:

Name Type Required Default Notes
session_id string yes
tab_id string yes

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
tab_id string yes
closed true yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Switch tab · capability mutate · since 0.1.0

Make the given tab the active tab for subsequent tab_id-less tool calls.

Annotations: readOnly no · destructive no · idempotent yes · openWorld no

Parameters:

Name Type Required Default Notes
session_id string yes
tab_id string yes

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
tab_id string yes
url string yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

List tabs · capability read · since 0.1.0

List every open tab: its tab_id, current URL, title, and whether it is active.

Annotations: readOnly yes · destructive no · idempotent yes · openWorld no

Parameters:

Name Type Required Default Notes
session_id string yes

Result: a JSON array; each item has:

Field Type Always present
tab_id string yes
url string yes
title string yes
active boolean yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Click · capability mutate · since 0.1.0

Click an element matching the selector.

Annotations: readOnly no · destructive no · idempotent no · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
selector string yes min length 1
button one of left, right, middle no "left"
click_count integer no 1 ≥ 1; ≤ 3
modifiers array of one of Alt, Control, ControlOrMeta, Meta, Shift no
position object no keys x, y
timeout integer no 30000 ≥ 0
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
selector string yes
ok true yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND, ELEMENT_NOT_ACTIONABLE. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Type text · capability mutate · since 0.1.0

Type text into the element one character at a time (simulates typing).

Annotations: readOnly no · destructive no · idempotent no · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
selector string yes min length 1
text string yes
delay number no 0 ≥ 0
timeout integer no 30000 ≥ 0
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
selector string yes
ok true yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND, ELEMENT_NOT_ACTIONABLE. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Fill · capability mutate · since 0.1.0

Fill an input/textarea directly (fast, no per-character typing).

Annotations: readOnly no · destructive no · idempotent yes · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
selector string yes min length 1
value string yes
timeout integer no 30000 ≥ 0
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
selector string yes
ok true yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND, ELEMENT_NOT_ACTIONABLE. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Press key · capability mutate · since 0.1.0

Press a keyboard key. If a selector is given, focuses it first.

Annotations: readOnly no · destructive no · idempotent no · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
key string yes min length 1
selector string no min length 1
timeout integer no 30000 ≥ 0
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
key string yes
ok true yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND, ELEMENT_NOT_ACTIONABLE. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Hover · capability mutate · since 0.1.0

Hover the mouse over an element.

Annotations: readOnly no · destructive no · idempotent yes · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
selector string yes min length 1
timeout integer no 30000 ≥ 0
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
selector string yes
ok true yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND, ELEMENT_NOT_ACTIONABLE. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Select option · capability mutate · since 0.1.0

Select one or more options in a matched by selector. Every path MUST resolve under the server’s uploads sandbox (/uploads/); out-of-tree paths fail with PATH_NOT_ALLOWED.

Annotations: readOnly no · destructive no · idempotent yes · openWorld no

Parameters:

Name Type Required Default Notes
session_id string yes
selector string yes min length 1
paths string[] yes at least 1 item; each item: min length 1
timeout integer no 30000 ≥ 0
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
selector string yes
ok true yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND, PATH_NOT_ALLOWED, UPLOAD_FAILED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Download file · capability mutate · since 0.1.0

Click a trigger element and capture the resulting download into the managed downloads dir (/sessions//downloads/). Returns the absolute saved path, the suggested filename, and the byte size.

Annotations: readOnly no · destructive no · idempotent no · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
trigger_selector string yes min length 1
timeout integer no 30000 ≥ 0
tab_id string no
save_as string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
session_id string yes
saved_to string yes
suggested_name string yes
size number yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, TAB_NOT_FOUND, DOWNLOAD_FAILED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Save storage state · capability mutate · since 0.1.0

Save the session’s cookies + localStorage as a light “storage-state” snapshot for later restore via launch_session({ context_options: { storageState: name } }) in a non-persistent mode. Valid in any persistence mode.

Annotations: readOnly no · destructive no · idempotent yes · openWorld no

Parameters:

Name Type Required Default Notes
session_id string yes
name string yes

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
name string yes
path string yes
size number yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, PATH_NOT_ALLOWED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Save full profile · capability mutate · since 0.1.0

Save the session’s full on-disk Chromium profile as a heavy “profile” snapshot (zipped user-data-dir) for later restore via launch_session({ persistence_mode: “persistent”, restore_profile: name }). Only valid when the source session is in persistent mode.

Annotations: readOnly no · destructive no · idempotent yes · openWorld no

Parameters:

Name Type Required Default Notes
session_id string yes
name string yes

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
name string yes
path string yes
size number yes

Errors: SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED, INVALID_PERSISTENCE_CONFIG, PATH_NOT_ALLOWED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

List saved auths · capability read · since 0.1.0

List every saved auth snapshot (storage-state and full-profile) with kind, size, and when it was saved, most recent first.

Annotations: readOnly yes · destructive no · idempotent yes · openWorld no

Parameters: none.

Result: a JSON array; each item has:

Field Type Always present
name string yes
kind one of storage, profile yes
saved_at number yes
size number yes

Errors: none documented. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Request attention · capability attention · since 0.1.0

Flag a session for human attention and BLOCK until an operator resolves it in the admin dashboard, it times out, or it is cancelled. Both modes (takeover and notify) block until resolved — neither is fire-and-forget. Use when the agent is stuck on something only a human can do (CAPTCHA, interactive login, consent screen). Set max_wait_seconds to 0 to wait indefinitely (up to the server limit), which is best when a human may be away. Returns the operator decision { status, message?, resolved_by?, resolved_at, request_id }. http transport only.

Annotations: readOnly no · destructive no · idempotent no · openWorld no

Parameters:

Name Type Required Default Notes
session_id string yes
reason string yes min length 1
mode one of takeover, notify no "takeover" Both modes BLOCK until an operator resolves the request (neither is fire-and-forget). ‘takeover’ lets the operator drive the session live; ‘notify’ is view-only — the operator still acknowledges/resolves it without driving.
options any no
max_wait_seconds integer no ≥ 0

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
status one of resolved, rejected, timeout, cancelled yes
message string no
resolved_by string no
resolved_at number or null yes
request_id string yes

Errors: ATTENTION_REQUIRES_HTTP, SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Get attention result · capability attention · since 0.1.0

Retrieve the outcome of a prior request_attention by its request_id. Returns immediately if the request is already resolved/rejected/timed-out; otherwise BLOCKS like request_attention until it settles. Use to recover a decision after a dropped connection. http transport only.

Annotations: readOnly yes · destructive no · idempotent yes · openWorld no

Parameters:

Name Type Required Default Notes
request_id string yes

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
status one of resolved, rejected, timeout, cancelled yes
message string no
resolved_by string no
resolved_at number or null yes
request_id string yes

Errors: ATTENTION_REQUIRES_HTTP. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Vault: list available · capability credential · since 0.1.0

List the vault entries you may fill on the page this session is currently on. Returns { entries: [{ entry_name, allowed_origins, redact_username, require_no_evaluate }], scope, scoped_to, note? }. Results are SCOPED to the session’s current page — navigate to the login page first, then call this. Pass url = the domain of that login page (e.g. “github.com”); if it does not match the page the session is actually on, the request is denied and reported. An entry only appears after an operator authorizes this session for it. Never returns secrets.

Annotations: readOnly yes · destructive no · idempotent yes · openWorld no

Parameters:

Name Type Required Default Notes
session_id string yes
url string no The domain (or URL) of the login page you have navigated to, e.g. “github.com”. Results are scoped to this site. Pass only the domain — not the full URL with its path/query — the session already holds the exact page. If it does not match the page the session is actually on, the request is denied and reported.

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
entries object[] yes
scope one of unscoped, page, no_page, rejected yes
scoped_to string or null yes
mismatch object no
note string no

Errors: VAULT_NOT_CONFIGURED, SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.

Vault: fill · capability credential · since 0.1.0

Atomically inject a vault credential into a login form: origin re-check, fetch from the backend, fill username + password, optional submit, then redact. entry_name is the stable handle from vault_list_available. The filled values are LEFT in the form by default — pass clear_after_fill: true only if you want the inputs wiped after the fill (done after after_submit_wait_ms, so an async/AJAX submit still reads them). Returns { status: “success” | “origin_mismatch” | “auth_failed” | “blocked”, redacted: true, reason? }. The credential never appears in the response, logs, events, or screenshots. The origin is checked against the entry allow-list by registrable domain.

Annotations: readOnly no · destructive no · idempotent no · openWorld yes

Parameters:

Name Type Required Default Notes
session_id string yes
entry_name string yes min length 1
username_selector string yes min length 1
password_selector string yes min length 1
submit_selector string no min length 1
after_submit_wait_ms integer no ≥ 0
clear_after_fill boolean no
tab_id string no

Result (JSON text block, mirrored in structuredContent):

Field Type Always present
status one of success, origin_mismatch, auth_failed, blocked yes
redacted true yes
reason string no

Errors: VAULT_NOT_CONFIGURED, VAULT_LOCKED, SESSION_NOT_FOUND, SESSION_DEAD, SESSION_ACCESS_DENIED. Any tool may also return INVALID_ARGUMENTS and INTERNAL_ERROR.