browser_click
Click an element on the page, before using the tool, use browser_get_clickable_elements to get the index of the element, but not call browser_get_clickable_elements multiple times
Drive a real browser from the accessibility tree — navigate, click, fill and read pages back as markdown, no vision model needed.
LABSCO SUMMARY
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.
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
USE CASES
Open the URL in the real browser and pull the rendered page back as markdown.
List the clickable elements once, fill the fields by index, then click the button.
Click through the steps and go back when a branch turns out to be a dead end.
Read every link, open the interesting ones in their own tabs, and switch between them.
Screenshot the whole page, or just the element in question with the highlight on.
Run the JavaScript in the page console and read the result back as text.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
browser_clickClick an element on the page, before using the tool, use browser_get_clickable_elements to get the index of the element, but not call browser_get_clickable_elements multiple times
browser_closeClose the browser when the task is done and the browser is not needed anymore
browser_close_tabClose the current tab
browser_evaluateExecute JavaScript in the browser console
browser_form_input_fillFill out an input field, before using the tool, Either 'index' or 'selector' must be provided
browser_get_clickable_elementsGet the clickable or hoverable or selectable elements on the current page, don't call this tool multiple times
browser_get_download_listGet the list of downloaded files
browser_get_markdownGet the markdown content of the current page
browser_get_textGet the text content of the current page
browser_go_backGo back to the previous page
browser_go_forwardGo forward to the next page
browser_hoverHover an element on the page, Either 'index' or 'selector' must be provided
browser_navigateNavigate to a URL
browser_new_tabOpen a new tab
browser_press_keyPress a key on the keyboard
browser_read_linksGet all links on the current page
browser_screenshotTake a screenshot of the current page or a specific element
browser_scrollScroll the page
browser_selectSelect an element on the page with index, Either 'index' or 'selector' must be provided
browser_switch_tabSwitch to a specific tab
browser_tab_listGet the list of tabs
BEFORE YOU INSTALL
21 tools when we connected; the project documents 23. The two extra tools, browser_vision_screen_capture and browser_vision_screen_click, appear only when the server starts with --vision; by default it uses Aria snapshots instead of screenshots.
INSTALLATION
npx @agent-infra/mcp-server-browser@latestcode --add-mcp '{"name":"browser","command":"npx","args":["@agent-infra/mcp-server-browser@latest"]}'{
"mcpServers": {
"browser": {
"command": "npx",
"args": [
"@agent-infra/mcp-server-browser@latest"
]
}
}
}