Prototype · This site is a prototype showing 100 real servers from the official registry, not all of them yet.
PopNx MCPMCP servers for people who use AI · explained in plain words

MCP Server Browser

by bytedanceversion 1.0.0i★ 39,550iRuns on your computer
Registry nameio.github.bytedance/mcp-server-browser

Overview

Description from the maker (original English)

MCP server for browser use access

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

Install

Pick the AI app you use, then copy the settings.

You need

  • npmNode.js installed (for the npx command)

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "browser": {
      "command": "npx",
      "args": [
        "-y",
        "@agent-infra/mcp-server-browser"
      ],
      "env": {
        "DISPLAY": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add browser --env DISPLAY=your-value -- npx -y @agent-infra/mcp-server-browser

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "browser": {
      "command": "npx",
      "args": [
        "-y",
        "@agent-infra/mcp-server-browser"
      ],
      "env": {
        "DISPLAY": "your-value"
      }
    }
  }
}

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "browser": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@agent-infra/mcp-server-browser"
      ],
      "env": {
        "DISPLAY": "your-value"
      }
    }
  }
}

Values you fill in

  • DISPLAY env
    DISPLAY environment variable for browser rendering

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 5, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account bytedance, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed 27 days ago

  • ✓ Pass

    Has a licence

    Uses Apache-2.0

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Needs the server’s tool list first; this check starts in the next step

Compared with others in Web & browsersi

  • More stars than 78% of the other 9 servers in this category
  • Published to the registry more recently than 0% of the other 9 servers in this category
  • Basic checks equal to or better than 100% of the other 9 servers in this category

Compared only with servers in this prototype, not the whole registry.

Common questions

Is MCP Server Browser safe?

It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed 27 days ago, and the latest version (1.0.0) reached the registry 14 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Browser Use, Chrome DevTools MCP, Playwright MCP

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Browser Use

by browser-use

Lets AI do web tasks for you, such as filling forms, searching and extracting data, in the maker’s cloud browsers or on your computer.

Computer or cloud★ 120,087MITUpdated 15 days ago

Chrome DevTools MCP

by ChromeDevTools

Lets AI use Chrome’s developer tools to inspect pages, find what makes them slow and spot errors. Made by the Chrome DevTools team.

Runs on your computer★ 54,821Apache-2.0Updated 14 days ago

Playwright MCP

by microsoft

Lets AI open a browser on your computer and click, type and read pages like a person. Made by Microsoft, the team behind Playwright.

Runs on your computer★ 39,198Apache-2.0Updated 5 days ago

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Browser Use MCP Server

A fast, lightweight Model Context Protocol (MCP) server that empowers LLMs with browser automation via Puppeteer’s structured accessibility data, featuring optional vision mode for complex visual understanding and flexible, cross-platform configuration.

Key Features
  • ⚡ Fast & lightweight. Utilizes Puppeteer's label index, not pixel-based input and accessibility DOM tree.
  • 👁️ Vision Mode Support. Optional visual understanding capabilities for complex layouts and visual elements when structured data isn't sufficient.
  • 🤖 LLM-optimized. No vision models needed, operates purely on structured data, less context reducing context token usage.
  • 🧩 Flexible Runtime Configuration. Customize viewport size, coordinate system factors, and User-Agent at runtime via HTTP headers.
  • 🌐 Cross-Platform & Extensible. Support for remote and local browsers, the use of a custom browser engine.
Requirements
  • Node.js 18 or newer
  • VS Code, Cursor, Windsurf, Claude Desktop or any other MCP client
Getting started
Local (Stdio)

First, install the Browser MCP server with your client. A typical configuration looks like this:

{

"mcpServers": { "browser": { "command": "npx", "args": [ "@agent-infra/mcp-server-browser@latest" ] } } }

Install in VS Code

You can also install the Browser MCP server using the VS Code CLI:

# For VS Code

code --add-mcp '{"name":"browser","command":"npx","args":["@agent-infra/mcp-server-browser@latest"]}'

After installation, the Browser MCP server will be available for use with your GitHub Copilot agent in VS Code.

Install in Cursor

Go to Cursor Settings -> MCP -> Add new MCP Server. Name to your liking, use command type with the command npx @agent-infra/mcp-server-browser. You can also verify config or add command like arguments via clicking Edit.

{

"mcpServers": { "browser": { "command": "npx", "args": [ "@agent-infra/mcp-server-browser@latest" ] } } }

</details>

Install in Windsurf

Follow Windsuff MCP documentation. Use following configuration:

{

"mcpServers": { "browser": { "command": "npx", "args": [ "@agent-infra/mcp-server-browser@latest" ] } } }

</details>

Install in Claude Desktop

Follow the MCP install guide, use following configuration:

{

"mcpServers": { "browser": { "command": "npx", "args": [ "@agent-infra/mcp-server-browser@latest" ] } } }

</details>
Remote (SSE / Streamable HTTP)

At the same time, use --port $your_port arg to start the browser mcp can be converted into SSE and Streamable HTTP Server.

# normal run remote mcp server

npx @agent-infra/mcp-server-browser --port 8089

run with DISPLAY environment for VNC or other virtual display

DISPLAY=:0 npx @agent-infra/mcp-server-browser --port 8089

You can use one of the two MCP Server remote endpoint:

  • Streamable HTTP(Recommended): http://127.0.0.1::8089/mcp
  • SSE: http://127.0.0.1::8089/sse

And then in MCP client config, set the url to the SSE endpoint:

{

"mcpServers": { "browser": { "url": "http://127.0.0.1::8089/sse" } } }

url to the Streamable HTTP:

{

"mcpServers": { "browser": { "type": "streamable-http", // If there is MCP Client support "url": "http://127.0.0.1::8089/mcp" } } }

In-memory call

If your MCP Client is developed based on JavaScript / TypeScript, you can directly use in-process calls to avoid requiring your users to install the command-line interface to use Browser MCP.

import { Client } from '@modelcontextprotocol/sdk/client/index.js';

import { InMemoryTransport } from '@modelcontextprotocol/sdk/inMemory.js';

// type: module project usage import { createServer } from '@agent-infra/mcp-server-browser'; // commonjs project usage // const { createServer } = await import('@agent-infra/mcp-server-browser')

const client = new Client( { name: 'test browser client', version: '1.0', }, { capabilities: {}, }, );

const server = createServer(); const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();

await Promise.all([ client.connect(clientTransport), server.connect(serverTransport), ]);

// list tools const result = await client.listTools(); console.log(result);

// call tool const toolResult = await client.callTool({ name: 'browser_navigate', arguments: { url: 'https://www.google.com', }, }); console.log(toolResult);

Configuration

Browser MCP server supports following arguments. They can be provided in the JSON configuration above, as a part of the "args" list:

> npx @agent-infra/mcp-server-browser@latest -h

-V, --version output the version number --browser browser or chrome channel to use, possible values: chrome, edge, firefox. --cdp-endpoint CDP endpoint to connect to, for example "http://127.0.0.1:9222/json/version" --ws-endpoint WebSocket endpoint to connect to, for example "ws://127.0.0.1:9222/devtools/browser/{id}" --executable-path path to the browser executable. --headless run browser in headless mode, headed by default --host host to bind server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces. --port port to listen on for SSE and HTTP transport. --proxy-bypass comma-separated domains to bypass proxy, for example ".com,chromium.org,.domain.com" --proxy-server specify proxy server, for example "http://myproxy:3128" or "socks5://myproxy:8080" --user-agent specify user agent string --user-data-dir path to the user data directory. --viewport-size specify browser viewport size in pixels, for example "1280, 720" --output-dir path to the directory for output files --vision Run server that uses screenshots (Aria snapshots are used by default) -h, --help display help for command

Runtime Configuration

The browser runtime requires configuration for Viewport Size, Vision Model Coordinate Factors, and User Agent. These can be passed through corresponding HTTP headers:

HeaderDescription
x-viewport-sizeBrowser viewport size, format: width,height separated by comma
x-vision-factorsVision model coordinate system factors, format: x_factor,y_factor separated by comma
x-user-agentUser Agent string, defaults to system User Agent if not specified

Note: Header names are case-insensitive.

Example:

x-viewport-size: 1920,1080

x-vision-factors: 1.0,1.0 x-user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36

Docker

We have unified the deployment of VNC and MCP under a single URL endpoint, The Dockerfile and DockerHub image will be published together! video

API
Tools
Tool NameDescriptionParameters
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 timesindex (number, optional): Index of the element to click
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 consolescript (string, required): JavaScript code to execute, () => { /* code */ }

| browser_form_input_fill | Fill out an input field, before using the tool, Either 'index' or 'selector' must be provided | selector (string, optional): CSS selector for input field, priority use index, if index is not provided, use selector index (number, optional): Index of the element to fill value (string, required): Value to fill clear (boolean, optional): Whether to clear existing text before filling | | browser_get_clickable_elements | Get the clickable or hoverable or selectable elements on the current page, don't call this tool multiple times | | | browser_get_download_list | Get the list of downloaded files | | | browser_get_markdown | Get the markdown content of the current page | | | browser_get_text | Get the text content of the current page | | | browser_go_back | Go back to the previous page | | | browser_go_forward | Go forward to the next page | | | browser_hover | Hover an element on the page, Either 'index' or 'selector' must be provided | index (number, optional): Index of the element to hover selector (string, optional): CSS selector for element to hover | | browser_navigate | Navigate to a URL | url (string, required): | | browser_new_tab | Open a new tab | url (string, required): URL to open in the new tab | | browser_press_key | Press a key on the keyboard | key (string, required): Name of the key to press or a character to generate, such as Enter, Tab, Escape, Backspace, Delete, Insert, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, ArrowLeft, ArrowRight, ArrowUp, ArrowDown, PageUp, PageDown, Home, End, ShiftLeft, ShiftRight, ControlLeft, ControlRight, AltLeft, AltRight, MetaLeft, MetaRight, CapsLock, PrintScreen, ScrollLock, Pause, ContextMenu | | browser_read_links | Get all links on the current page | | | browser_screenshot | Take a screenshot of the current page or a specific element | name (string, optional): Name for the screenshot selector (string, optional): CSS selector for element to screenshot index (number, optional): index of the element to screenshot width (number, optional): Width in pixels (default: viewport width) **

Only the beginning is shown; read the rest in the repo

Ask PopNx