Skip to main content
Core automation tools provide the fundamental capabilities for browser automation, including navigation, clicking, typing, form filling, and page inspection. These tools are available by default and don’t require any special capabilities.

browser_navigate

Navigate to a URL.
url
string
required
The URL to navigate to
Read-only: No
// Example usage
{
  "tool": "browser_navigate",
  "arguments": {
    "url": "https://example.com"
  }
}

browser_navigate_back

Go back to the previous page in the history. Parameters: None Read-only: No

browser_close

Close the current page. Parameters: None Read-only: No

Element Interaction

browser_click

Perform click on a web page element.
element
string
Human-readable element description used to obtain permission to interact with the element
ref
string
required
Exact target element reference from the page snapshot
doubleClick
boolean
Whether to perform a double click instead of a single click
button
string
Button to click, defaults to left
modifiers
array
Modifier keys to press (e.g., [“Control”, “Shift”])
Read-only: No
// Example: Click a submit button
{
  "tool": "browser_click",
  "arguments": {
    "element": "Submit button",
    "ref": "ref_123"
  }
}

browser_hover

Hover over element on page.
element
string
Human-readable element description used to obtain permission to interact with the element
ref
string
required
Exact target element reference from the page snapshot
Read-only: No

browser_type

Type text into editable element.
element
string
Human-readable element description used to obtain permission to interact with the element
ref
string
required
Exact target element reference from the page snapshot
text
string
required
Text to type into the element
submit
boolean
Whether to submit entered text (press Enter after)
slowly
boolean
Whether to type one character at a time. Useful for triggering key handlers in the page. By default entire text is filled in at once.
Read-only: No
// Example: Type into a search field
{
  "tool": "browser_type",
  "arguments": {
    "element": "Search input",
    "ref": "ref_456",
    "text": "playwright automation",
    "submit": true
  }
}

browser_press_key

Press a key on the keyboard.
key
string
required
Name of the key to press or a character to generate, such as ArrowLeft or a
Read-only: No

Form Operations

browser_fill_form

Fill multiple form fields in one operation.
fields
array
required
Fields to fill in. Each field should contain element information and the value to enter.
Read-only: No
// Example: Fill a login form
{
  "tool": "browser_fill_form",
  "arguments": {
    "fields": [
      {
        "element": "Email input",
        "ref": "ref_100",
        "text": "[email protected]"
      },
      {
        "element": "Password input",
        "ref": "ref_101",
        "text": "securepassword"
      }
    ]
  }
}

browser_select_option

Select an option in a dropdown.
element
string
Human-readable element description used to obtain permission to interact with the element
ref
string
required
Exact target element reference from the page snapshot
values
array
required
Array of values to select in the dropdown. This can be a single value or multiple values.
Read-only: No

browser_file_upload

Upload one or multiple files.
paths
array
The absolute paths to the files to upload. Can be single file or multiple files. If omitted, file chooser is cancelled.
Read-only: No

Advanced Interactions

browser_drag

Perform drag and drop between two elements.
startElement
string
required
Human-readable source element description used to obtain the permission to interact with the element
startRef
string
required
Exact source element reference from the page snapshot
endElement
string
required
Human-readable target element description used to obtain the permission to interact with the element
endRef
string
required
Exact target element reference from the page snapshot
Read-only: No

browser_handle_dialog

Handle a browser dialog (alert, confirm, prompt).
accept
boolean
required
Whether to accept the dialog.
promptText
string
The text of the prompt in case of a prompt dialog.
Read-only: No

Page Inspection

browser_snapshot

Capture accessibility snapshot of the current page. This is the preferred method for understanding page structure and is better than screenshots for automation purposes.
filename
string
Save snapshot to markdown file instead of returning it in the response.
Read-only: Yes
Use browser_snapshot as your primary method for understanding page structure. It provides semantic information that’s much more useful for automation than visual screenshots.

browser_take_screenshot

Take a screenshot of the current page.
type
string
Image format for the screenshot. Default is png.
filename
string
File name to save the screenshot to. Defaults to page-{timestamp}.{png|jpeg} if not specified. Prefer relative file names to stay within the output directory.
element
string
Human-readable element description used to obtain permission to screenshot the element. If not provided, the screenshot will be taken of viewport. If element is provided, ref must be provided too.
ref
string
Exact target element reference from the page snapshot. If not provided, the screenshot will be taken of viewport. If ref is provided, element must be provided too.
fullPage
boolean
When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Cannot be used with element screenshots.
Read-only: Yes
You can’t perform actions based on screenshots. Use browser_snapshot for actions and automation.

browser_console_messages

Returns all console messages from the page.
level
string
required
Level of the console messages to return. Each level includes the messages of more severe levels. Defaults to “info”.
filename
string
Filename to save the console messages to. If not provided, messages are returned as text.
Read-only: Yes

browser_network_requests

Returns all network requests since loading the page.
includeStatic
boolean
required
Whether to include successful static resources like images, fonts, scripts, etc. Defaults to false.
filename
string
Filename to save the network requests to. If not provided, requests are returned as text.
Read-only: Yes

JavaScript Execution

browser_evaluate

Evaluate JavaScript expression on page or element.
function
string
required
JavaScript function as string: () => { /* code */ } or (element) => { /* code */ } when element is provided
element
string
Human-readable element description used to obtain permission to interact with the element
ref
string
Exact target element reference from the page snapshot
Read-only: No
// Example: Get page title
{
  "tool": "browser_evaluate",
  "arguments": {
    "function": "() => document.title"
  }
}

browser_run_code

Run Playwright code snippet directly.
code
string
required
A JavaScript function containing Playwright code to execute. It will be invoked with a single argument, page, which you can use for any page interaction. For example: async (page) => { await page.getByRole('button', { name: 'Submit' }).click(); return await page.title(); }
Read-only: No
// Example: Complex interaction
{
  "tool": "browser_run_code",
  "arguments": {
    "code": "async (page) => { const button = await page.getByRole('button', { name: 'Submit' }); await button.click(); return await page.title(); }"
  }
}

Browser Configuration

browser_resize

Resize the browser window.
width
number
required
Width of the browser window
height
number
required
Height of the browser window
Read-only: No

browser_wait_for

Wait for text to appear or disappear or a specified time to pass.
time
number
The time to wait in seconds
text
string
The text to wait for to appear
textGone
string
The text to wait for to disappear
Read-only: No
You must provide either time, text, or textGone. The tool will wait until the condition is met or timeout occurs.

Browser Installation

browser_install

Install the browser specified in the configuration. Description: Installs the browser executable required for Playwright. Call this if you encounter an error about the browser not being installed. Parameters: None Read-only: No Usage:
{
  "tool": "browser_install",
  "arguments": {}
}
This tool installs the browser specified by the --browser flag or in the configuration file. If no browser is specified, it installs Chromium by default.
Most MCP clients will automatically install the browser on first use, but you can use this tool if installation fails or if you need to reinstall.