browser_tab_action
Control browser tabs in the background without stealing focus: click, type, scroll, navigate, upload files, inspect logs, manage cookies/storage, and wait for events.
Instructions
Operate any browser tab in the background via Extension CDP, raw CDP, or AppleEvents without stealing focus (with live 0.72x in-tab virtual cursor, click ripples, and element highlight): click, hover, move, set_value, type_text, press_key, paste (text/md/html without touching OS clipboard), select_text, perform_secondary_action, scroll, drag, goto, back, forward, reload, close, evaluate, upload_files (Two-Tier CDP + DataTransfer fallback), wait_for_download, list_downloads, get_dialog, handle_dialog, get_console_logs, get_network_requests, get_network_body, get_cookies, set_cookies, clear_cookies, get_storage, set_storage, wait_for.
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": {
"action": "<action>"
},
"name": "browser_tab_action"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Viewport X coordinate. | |
| y | No | Viewport Y coordinate. | |
| key | No | Key chord for press_key/click, OR single storage key for get_storage. | |
| url | No | Target URL for action='goto', 'wait_for_download', 'get_cookies', or 'clear_cookies'. | |
| name | No | Cookie name filter for get_cookies / clear_cookies. | |
| text | No | Text for type_text, paste, or select_text. | |
| to_x | No | ||
| to_y | No | ||
| urls | No | URLs filter for action='get_cookies'. | |
| clear | No | Clear buffer/storage for get_console_logs, get_network_requests, or set_storage. | |
| files | No | Local file paths for action='upload_files'. | |
| level | No | For get_console_logs: optional level filter ('log', 'warn', 'error', 'info', 'debug'). | |
| limit | No | Max entries to return for list_downloads, get_console_logs, or get_network_requests. | |
| pages | No | ||
| value | No | Value for set_value. | |
| accept | No | For handle_dialog: true to accept/OK, false to dismiss/Cancel (default true). | |
| action | Yes | ||
| domain | No | Cookie domain filter for get_cookies / clear_cookies. | |
| format | No | ||
| from_x | No | ||
| from_y | No | ||
| method | No | For get_network_requests: HTTP method filter (e.g. 'GET', 'POST'). | |
| prefix | No | ||
| ripple | No | Emit click-style ripple ring on hover/move (default false). | |
| status | No | For get_network_requests: HTTP status code filter (e.g. 200, 500). | |
| suffix | No | ||
| tab_id | No | Tab ID (e.g. 'tab-1' or 'safari:w1:t1'). | |
| cookies | No | Cookies array ({ name, value, url?, domain?, path?, secure?, httpOnly?, sameSite?, expires? }) for set_cookies. | |
| entries | No | Key-value map to write for set_storage. | |
| tab_url | No | Alternative: match an open tab by URL. | |
| selector | No | CSS selector, 'text=...', or 'role=...' target. | |
| direction | No | ||
| browser_id | No | Optional browser filter when matching by tab_url. | |
| expression | No | JavaScript expression for action='evaluate'. | |
| request_id | No | For get_network_body: requestId from get_network_requests. | |
| timeout_ms | No | Timeout in ms for wait_for, upload_files, or wait_for_download. | |
| url_filter | No | For get_network_requests: case-insensitive URL substring filter. | |
| all_browser | No | For clear_cookies on non-extension CDP browsers: clear all browser cookies. | |
| click_count | No | ||
| duration_ms | No | ||
| prompt_text | No | For handle_dialog: text to enter into window.prompt(). | |
| remove_keys | No | Keys to remove for set_storage. | |
| show_cursor | No | Animate the in-tab virtual cursor & highlight overlay for this action (default true). | |
| to_selector | No | Optional drag destination selector. | |
| mouse_button | No | ||
| return_state | No | Automatically return updated AX state diff after action (default true for mutations, false for inspection queries). | |
| storage_type | No | For get_storage / set_storage: 'local' or 'session' (default 'local'). | |
| element_index | No | Element index [N] from browser_tab_state. | |
| from_selector | No | Optional drag start selector. | |
| click_selector | No | For wait_for_download: CSS/text selector to click to start the download. | |
| include_cursor | No | Include virtual cursor overlay in returned screenshot (default false). | |
| selection_type | No | ||
| secondary_action | No | Secondary action ('ShowMenu', 'Expand', 'Collapse', 'Increment', 'Decrement'). | |
| to_element_index | No | Optional drag destination element index [N]. | |
| trigger_selector | No | For upload_files: CSS/text selector of button that opens a file chooser dialog. | |
| from_element_index | No | Optional drag start element index [N]. | |
| include_screenshot | No | Include updated live screenshot (default false). | |
| click_element_index | No | For wait_for_download: element index [N] to click to start the download. | |
| dispatch_move_event | No | For hover/move, dispatch mouseMoved event (default true for hover, false for move). | |
| prefer_data_transfer | No | For upload_files: force Tier-2 in-page DataTransfer File construction. | |
| trigger_element_index | No | For upload_files: button element index [N] that opens a file chooser dialog. |