Elements are addressed by index from a single clickable-elements listing, so a page costs a fraction of what a screenshot loop costs in context. When structure genuinely is not enough — a canvas, a chart, a visual layout — --vision switches it over to screenshots for that run. browser_evaluate is the escape hatch for everything the tool list does not name.
A Puppeteer-based browser automation server that works from the page's structured accessibility data and element indexes rather than pixels, with an optional screenshot mode for layouts where structure is not enough.
- Navigation: open a URL, move back and forward, and shut the browser down when the task ends — browser_navigate, browser_go_back, browser_go_forward, browser_close
- Interaction by element index, after listing the page's clickable elements once — browser_get_clickable_elements, browser_click, browser_hover, browser_select, browser_form_input_fill
- Keyboard and scrolling — browser_press_key, browser_scroll
- Page content back as markdown or plain text, and every link on the page — browser_get_markdown, browser_get_text, browser_read_links
- Screenshots of the full page or one element, with an option to highlight it — browser_screenshot
- Tabs opened, listed, switched and closed — browser_new_tab, browser_tab_list, browser_switch_tab, browser_close_tab
- JavaScript executed in the page console — browser_evaluate
- The files downloaded during the session — browser_get_download_list
No account and no key. Node.js 18 or newer, and npx to run @agent-infra/mcp-server-browser over stdio; adding --port turns the same binary into a remote server that serves Streamable HTTP at /mcp and SSE at /sse. --browser chooses chrome, edge or firefox, --executable-path points at a specific binary, and --cdp-endpoint or --ws-endpoint attaches to a browser that is already running. --proxy-server and --proxy-bypass route its traffic, --vision switches it from the default Aria snapshots to screenshots, and DISPLAY covers rendering on a virtual display.
One command — npx @agent-infra/mcp-server-browser@latest
