Control a web browser for navigation, form filling, data extraction, and screenshots
Automate web browser interactions using Playwright for navigation, form filling, data extraction, and screenshots.
Playwright must be installed for browser automation to work:
npm install playwright
npx playwright install chromium
Start a browser session. Must be called before other browser operations.
Parameters:
headless (optional): Run in headless mode (default: true)Example:
browser_launch({ headless: true })
browser_launch({ headless: false }) // Show browser window for debugging
Navigate to a URL in the browser.
Parameters:
url (required): The URL to navigate towaitUntil (optional): Wait condition - 'load', 'domcontentloaded', 'networkidle'Example:
browser_navigate({ url: "https://example.com" })
browser_navigate({ url: "https://example.com/form", waitUntil: "networkidle" })
Click an element on the page.
Parameters:
selector (required): CSS selector for the elementtimeout (optional): Timeout in ms (default: 30000)Example:
browser_click({ selector: "#submit-button" })
browser_click({ selector: "button.primary", timeout: 5000 })
Fill text into an input field.
Parameters:
selector (required): CSS selector for the inputvalue (required): Text to entertimeout (optional): Timeout in msExample:
browser_fill({ selector: "input[name='email']", value: "[email protected]" })
browser_fill({ selector: "#password", value: "secure123" })
Extract text or attribute from element(s).
Parameters:
selector (required): CSS selectorattribute (optional): Attribute to extract (default: textContent)all (optional): Extract from all matching elementsExample:
browser_extract({ selector: "h1" }) // Get page title
browser_extract({ selector: "a.link", attribute: "href", all: true }) // Get all links
Take a screenshot of the page or element.
Parameters:
path (optional): File path to save (returns base64 if not provided)fullPage (optional): Capture full page (default: false)selector (optional): Screenshot specific elementExample:
browser_screenshot({ path: "./screenshot.png" })
browser_screenshot({ fullPage: true, path: "./full-page.png" })
browser_screenshot({ selector: "#chart" }) // Returns base64
Execute JavaScript in the page context.
Parameters:
script (required): JavaScript code to executeExample:
browser_eval({ script: "document.title" })
browser_eval({ script: "window.scrollTo(0, document.body.scrollHeight)" })
Wait for an element to appear or change state.
Parameters:
selector (required): CSS selectortimeout (optional): Timeout in ms (default: 30000)state (optional): 'attached', 'detached', 'visible', 'hidden'Example:
browser_wait({ selector: "#loading", state: "hidden" })
browser_wait({ selector: ".results", state: "visible" })
Get the full HTML content of the current page.
Example:
browser_get_content({})
Close the browser session.
Example:
browser_close({})
browser_launch()browser_navigate({ url: "..." })browser_fill({ selector: ..., value: ... })browser_click({ selector: "button[type=submit]" })browser_wait({ selector: ".result", state: "visible" })browser_extract({ selector: ".result" })browser_close()Browser actions that navigate to unknown domains or submit forms with sensitive data will require Human-In-The-Loop approval.