Puppeteer-powered browser control that drives pages from the accessibility tree instead of pixels.
ByteDance's agent-infra browser server automates Chrome, Edge or Firefox through Puppeteer using indexed accessibility data, with optional vision mode.
Node.js 18 or newer and an MCP-compatible client. Headless Linux hosts need a virtual display if you run the browser headed.
Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.
Point the agent at a listing page, pull it as Markdown, and let the model extract fields — no CSS selectors to maintain when the site redesigns.
Walk a signup or checkout journey by index, assert on the text that appears, and capture a screenshot at each step for the report.
Start the server with --port and DISPLAY set inside a container, then have several clients connect over streamable HTTP with per-request viewport headers.
Use createServer() with InMemoryTransport so your own Node application ships browser tools without asking users to install a CLI.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| browser_navigate | Open a URL in the current tab. |
| browser_get_clickable_elements | Return the clickable, hoverable and selectable elements on the page with the indices other tools accept. |
| browser_click | Click an element by its index from the clickable-elements listing. |
| browser_form_input_fill | Fill an input field by index or CSS selector, optionally clearing it first. |
| browser_select | Select a value in a dropdown by index or selector. |
| browser_hover | Hover an element by index or selector. |
| browser_press_key | Send a keyboard key such as Enter, Tab or an arrow key. |
| browser_scroll | Scroll the page by a pixel amount, or to the bottom when no amount is given. |
| browser_get_markdown | Return the current page rendered as Markdown. |
| browser_get_text | Return the plain text content of the current page. |
| browser_read_links | List every link on the current page. |
| browser_screenshot | Capture the page or a single element, with options for size, full page and highlighting. |
| browser_evaluate | Execute JavaScript in the page context. |
| browser_new_tab | Open a URL in a new tab. |
| browser_switch_tab | Switch to a tab by index. |
| browser_tab_list | List the open tabs. |
| browser_close_tab | Close the active tab. |
| browser_go_back | Navigate back in history. |
| browser_go_forward | Navigate forward in history. |
| browser_get_download_list | List files downloaded during the session. |
| browser_vision_screen_capture | Take a screenshot intended for vision-mode coordinate clicking. |
| browser_vision_screen_click | Click at x/y coordinates produced by a vision model, with optional coordinate scaling factors. |
| browser_close | Shut the browser down when the task is finished. |
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["@agent-infra/mcp-server-browser@latest"]
}
}
}Node.js 18 or newer and an MCP-compatible client. Headless Linux hosts need a virtual display if you run the browser headed.
| Variable | Description | Required |
|---|---|---|
| DISPLAY | X display to use when running headed on a headless Linux host, typically alongside a VNC or virtual framebuffer setup.e.g. :0 | Optional |
Use Microsoft’s Playwright MCP server to navigate pages, inspect accessibility snapshots, fill forms and capture browser screenshots.
The original Chromium automation reference server — simple, screenshot-driven browser control.
MCP server for safe, detection-resistant browser automation
Regula Document Reader js client for the browser and node.js based on axios
A Model Context Protocol (MCP) server that provides browser automation capabilities through Puppeteer with intelligent browser management. This server enables AI assistants to control Chromium…
Hosted Playwright API for AI agents. Returns a11y trees instead of screenshots.