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. The browser mcp mcp server wraps that behind the Model Context Protocol, so an assistant can use it through 23 defined tools rather than through you.
ByteDance's agent-infra browser server automates Chrome, Edge or Firefox through Puppeteer using indexed accessibility data, with optional vision mode.
The server ships on npm as @agent-infra/mcp-server-browser, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.
Everything the assistant can do here goes through one of these:
browser_navigate — Open a URL in the current tabbrowser_get_clickable_elements — Return the clickable, hoverable and selectable elements on the page with the indices other tools acceptbrowser_click — Click an element by its index from the clickable-elements listingbrowser_form_input_fill — Fill an input field by index or CSS selector, optionally clearing it firstbrowser_select — Select a value in a dropdown by index or selectorbrowser_hover — Hover an element by index or selectorbrowser_press_key — Send a keyboard key such as Enter, Tab or an arrow keybrowser_scroll — Scroll the page by a pixel amount, or to the bottom when no amount is givenbrowser_get_markdown — Return the current page rendered as Markdownbrowser_get_text — Return the plain text content of the current pagebrowser_read_links — List every link on the current pagebrowser_screenshot — Capture the page or a single element, with options for size, full page and highlightingYou will need one environment variable: DISPLAY. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Node.js 18 or newer and an MCP-compatible client. Headless Linux hosts need a virtual display if you run the browser headed.
Among the browser automation options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Browser MCP's toolset — browser_navigate, browser_get_clickable_elements, browser_click and 20 more — is a fair guide to whether it matches your workflow. It is maintained by ByteDance (agent-infra); worth a glance at recent repository activity before you build anything load-bearing on it.
This entry was verified against Browser MCP's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.
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.
| 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 |
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
Industrial-strength web extraction — render, scrape, crawl and search entire sites into clean markdown.
The original Chromium automation reference server — simple, screenshot-driven browser control.
Give your coding agent the full DevTools toolbox: traces, network, console, heap snapshots and Lighthouse.
Cloud browsers for AI agents — automation sessions that run in Browserbase's fleet, not on your machine.
Put 6,000+ pre-built scrapers at your assistant's fingertips through one MCP endpoint.