These tools are invoked by the AI agent through the MCP protocol — typically as a two-call pattern where the agent decides which tool to use, calls it, reads the result, and decides what to do next. You don’t call these directly; you describe what you want and Claude selects the right tools.
Tool Does browser_navigate(url)Go to URL, return screenshot + page info browser_new_tab(url?)Open tab browser_list_tabs()List all tabs browser_switch_tab(index)Switch tab browser_close_tab(index)Close tab
Tool Does execute_playwright(code)Run Playwright Python. page, browser, context pre-bound. This is the workhorse — any browser interaction Playwright supports, the agent can do. browser_console_eval(expr)Run JS in page console. Fast path for data extraction.
Tool Does browser_get_page_info()URL, title, DOM snapshot (forms, links, buttons, headings) browser_screenshot(selector?)Full page or element screenshot browser_get_cookies()All cookies for current domain browser_get_storage()localStorage + sessionStorage browser_capture_har()Network traffic capture (HTTP Archive format) browser_dump_all()Everything in one call — page info, cookies, storage, screenshot
Tool Does start_recording()Begin capturing network + DOM for skill generation stop_recording(id)Stop and save recording
Tool Does open_markdown(path)Open file in built-in markdown viewer write_markdown(path, content)Write markdown with live preview in viewer
Tool Does start_remote_session(reason)Request human help — streams browser via CDP screencast, sends Telegram notification check_remote_session(id)Check if human has connected/disconnected stop_remote_session(id)End remote session
Tool Does browser_get_extensions()List installed extensions with automation guidance drawer_focus()Focus the Cmd+/ drawer input
browser_navigate ( " https://news.ycombinator.com " )
result = execute_playwright ( """
items = await page.query_selector_all('.titleline > a')
return [{'title': await i.text_content(),
'href': await i.get_attribute('href')} for i in items[:10]]
write_markdown ( " ~/research/hn.md " , result )
browser_navigate ( " https://example.com/signup " )
await page.fill('#email', 'user@example.com')
await page.fill('#password', 'secure123')
await page.click('button[type="submit"]')