browser_start and ends with browser_end.
Session
browser_start
Start or reuse a browser session. Must be called before any other browser tools. Reuses existing session if still alive. Parameters: None Returns:browser_end
Close the active browser session and release resources. Parameters: None Returns:- No active session (returns
"No active session to close."instead of error)
Navigation and page state
browser_navigate
Navigate the browser to a URL. Waits for the page to reachdomcontentloaded state.
Parameters:
url(string, required): The URL to navigate to
- No active session (error:
"No active session. Call browser_start first.") - Navigation timeout after 30 seconds
browser_get_info
Get current page metadata including URL, title, and viewport size. Parameters: None Returns:- No active session (error:
"No active session. Call browser_start first.")
browser_wait_for
Wait for an element to reach a specific state before proceeding. Useful for dynamic content loading, spinners, or async UI updates. Parameters:selector(string, required): CSS selector to wait forstate(string, optional): Element state to wait for (default:"visible")"attached"- Element is present in the DOM (may not be visible)"visible"- Element is in DOM and visible to the user"hidden"- Element is either hidden or removed from DOM
timeout(number, optional): Maximum wait time in milliseconds (default: 10000)
- No active session (error:
"No active session. Call browser_start first.") - Timeout exceeded before element reached target state
Interaction
browser_click
Click an element on the page. Parameters:selector(string, required): CSS selector of the element to click
- No active session (error:
"No active session. Call browser_start first.") - Element not found (timeout after 10 seconds)
- Element is obscured and not clickable
browser_fill
Clear and fill an input field directly. Does not trigger keyboard events. Use this for fast form filling without simulating keystrokes. Parameters:selector(string, required): CSS selector of the input fieldvalue(string, required): The value to fill
- No active session (error:
"No active session. Call browser_start first.") - Element not found or not an input field (timeout after 10 seconds)
browser_type
Type text character by character with keyboard events. Clicks the element first to focus. Use this when you need to trigger JavaScript input handlers or autocomplete. Parameters:selector(string, required): CSS selector of the element (will be clicked to focus first)text(string, required): Text to typedelay(number, optional): Delay in milliseconds between keystrokes (default: 50)
- No active session (error:
"No active session. Call browser_start first.") - Element not found (timeout after 10 seconds)
browser_select
Select an option in a<select> dropdown element.
Parameters:
selector(string, required): CSS selector of the<select>elementvalue(string, required): Value of the option to select (matches the option’svalueattribute)
- No active session (error:
"No active session. Call browser_start first.") - Element not found or not a select element (timeout after 10 seconds)
- Option value not found in dropdown
browser_hover
Hover the mouse over an element. Useful for triggering dropdown menus, tooltips, or hover effects. Parameters:selector(string, required): CSS selector of the element to hover over
- No active session (error:
"No active session. Call browser_start first.") - Element not found (timeout after 10 seconds)
browser_scroll
Scroll the page or a specific element. Parameters:direction(string, required): Scroll direction"up"- Scroll up by specified pixels"down"- Scroll down by specified pixels"top"- Jump to the top of page/element"bottom"- Jump to the bottom of page/element
amount(number, optional): Pixels to scroll for"up"/"down"(default: 500)selector(string, optional): CSS selector of element to scroll (defaults to page)
- No active session (error:
"No active session. Call browser_start first.") - Element not found when
selectoris specified
Observation and extraction
browser_screenshot
Take a screenshot of the current page or a specific element. Returns a base64-encoded PNG image. Parameters:fullPage(boolean, optional): Capture full scrollable page (default: false, viewport only)selector(string, optional): CSS selector of element to screenshot
image/png)
Errors:
- No active session (error:
"No active session. Call browser_start first.") - Element not found when
selectoris specified
browser_get_content
Extract text or HTML content from the page. Useful for data extraction and reading page content. Parameters:type(string, optional): Content type to extract (default:"text")"text"- Visible text content"html"- Raw HTML markup
selector(string, optional): CSS selector to scope extraction (defaults to full page)
- No active session (error:
"No active session. Call browser_start first.") - Element not found when
selectoris specified
browser_evaluate
Execute JavaScript code in the browser page context. Use for extracting structured data, accessing browser APIs, or performing complex operations not available through other tools. Parameters:script(string, required): JavaScript code to execute (use arrow function for expressions:() => document.title)
- No active session (error:
"No active session. Call browser_start first.") - JavaScript execution error (syntax error, runtime error, etc.)
Tab management
browser_new_tab
Open a new browser tab and optionally navigate to a URL. Automatically switches to the new tab. Parameters:url(string, optional): URL to navigate to in the new tab
- No active session (error:
"No active session. Call browser_start first.") - Navigation timeout if
urlis specified
browser_list_tabs
List all open tabs in the current browser session. Parameters: None Returns:- No active session (error:
"No active session. Call browser_start first.")
browser_switch_tab
Switch to a different tab by index. Parameters:index(number, required): Tab index (0-based, as shown bybrowser_list_tabs)
- No active session (error:
"No active session. Call browser_start first.") - Tab index out of range (error:
"Tab index <n> out of range (0-<max>)")
Shader and animation control
browser_disable_shaders
Inject a script that blocks WebGL, throttlesrequestAnimationFrame, and freezes CSS animations. Use on heavy shader-rendered pages (Three.js, WebGL dashboards) to reduce GPU load. Call BEFORE navigating to the target page for best results.
Parameters:
webgl(boolean, optional): Block WebGL context creation (default: true)animations(boolean, optional): Freeze CSS animations and transitions (default: true)raf(boolean, optional): ThrottlerequestAnimationFrameto ~1 FPS (default: true)
- No active session (error:
"No active session. Call browser_start first.")
browser_restore_shaders
Restore WebGL,requestAnimationFrame, and CSS animations that were disabled by browser_disable_shaders. Removes the injected style element. Note: WebGL and RAF require page reload for full restoration.
Parameters: None
Returns:
- No active session (error:
"No active session. Call browser_start first.")
Practical guidance
- Prefer
browser_filloverbrowser_typefor form inputs unless you need keyboard events - Use
browser_wait_foron dynamic pages before clicking or filling elements - Use
browser_get_contentfor data extraction; use screenshots for visual verification - Call
browser_disable_shadersbefore navigation for best results on heavy pages - Always call
browser_endwhen done to free resources - Use
browser_list_tabsto check tab state before switching in multi-tab workflows