The server holds a single global Chrome session, so a navigate, a fill and a click are all happening in the same window and state carries between calls — you close it explicitly with browser_close. The iframe handling is the other practical detail: browser_iframe_click reaches elements inside a frame without a separate context switch.
A browser automation server built on undetected-chromedriver, so the Chrome instance behind the tools is the one designed to evade modern anti-bot detection.
- Navigation and history: browser_navigate, browser_go_back, browser_go_forward
- Interaction: browser_click, browser_fill, browser_select, browser_hover, browser_drag, browser_press_key
- Clicking inside an iframe directly, without switching frame context — browser_iframe_click
- Reading the page: browser_get_visible_text, browser_get_visible_html
- Capture: browser_screenshot and browser_save_as_pdf
- Running JavaScript in the page, and closing the browser: browser_evalute, browser_close
Python 3.11 or newer and a Chrome browser on the machine. Install with uv venv and uv pip install -e ., then start it with mcp-server-undetected-chromedriver; a Smithery command sets it up for Claude Desktop.
One command — npx -y @smithery/cli install @dragons96/mcp-undetected-chromedriver --client claude
