npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@_nazmiforreal/agent-browser-mcp

v0.2.5

Published

MCP server with browser manager - install, select, and auto-discover browsers for AI-driven automation

Readme

For AI engineers and developers who need to automate browser tasks without writing brittle Playwright scripts.
Agent Browser MCP is an MCP server that translates MCP tool calls into agent-browser CLI commands.
Unlike custom browser bridges or raw Playwright scripts, it gives any MCP-compatible LLM 62 pre-built tools covering navigation, interaction, extraction, debugging, and state management — all through a single stdio connection.

npx agent-browser-mcp

Use Cases

Equip Claude, Copilot, or any MCP client with the ability to navigate pages, fill forms, extract data, and manage sessions — all through natural language. No Playwright code required. Install the browser you need with agent-browser-mcp -i <browser>.

Use screenshot diffing, accessibility snapshots, and console/network monitors to validate page behaviour across sessions. Save and reload state for reproducible test scenarios.

Batch commands, multi-tab navigation, and full DOM extraction (text, HTML, attributes, styles) let agents collect structured data from any web page programmatically.

Expose browser capabilities as composable MCP tools alongside your own custom tools. Isolate sessions per user or per task with independent cookies, storage, and state.


Overview

Agent Browser MCP eliminates the gap between LLM reasoning and browser automation. Instead of wiring up custom browser bridges or maintaining brittle Playwright scripts, plug this MCP server into any MCP-compatible client and get:

| Area | What you can do | |:-----|:----------------| | Browser Manager | Install, select, and auto-discover browsers from CLI | | Navigation | Open URLs, back, forward, reload, pushState | | Interaction | Click, fill, type, select, drag, upload, download, hover, focus | | Extraction | Text, HTML, attributes, screenshots, PDFs, accessibility snapshots | | State | Cookies, localStorage, sessionStorage, auth vaults, session save/load | | Debugging | Console logs, network requests, traces, profiles, HAR recordings | | Advanced | Iframe switching, dialog handling, React inspection, visual diffing |

[!TIP] All commands run through Vercel's agent-browser CLI, which manages its own Chromium via Playwright — no separate browser install needed.


Features

| Capability | Description | |:-----------|:------------| | 63 Composite Tools | 153 CLI subcommands + 1 browser manager tool across 36 categories | | Browser Manager | Install, select, and auto-discover browsers from CLI or MCP tools | | Multi-Session Isolation | Independent browser sessions with isolated cookies, storage, and state per session | | Full DOM Access | Extract text, HTML, attributes, bounding boxes, computed styles, and element counts | | Visual Output | Screenshots (full-page + annotated), PDF generation, accessibility snapshots | | Network Observability | Route interception, request logging, HAR capture with start/stop controls | | State Persistence | Save and load sessions, cookie jars, auth vaults with named profiles | | Debug Toolkit | Chrome DevTools traces, CPU profiles, console monitors, error collectors | | Cross-Framework | React component tree inspection, renders tracking, suspense boundary detection | | Visual Regression | Snapshot diff, screenshot diff, and URL-to-URL diff with configurable thresholds | | Zero Config | Install once, connect any MCP client, start automating — no configuration files |


Architecture

+-------------------------------------------------------------------+
|                 MCP Client (Claude, Copilot, ...)                 |
+-------------------------------------------------------------------+
|                           | stdio transport                       |
|                           v                                       |
|  +-------------------------------------------------------------+  |
|  |                  Agent Browser MCP Server                   |  |
|  |  +----------------------+  +-----------------------------+  |  |
|  |  |     browser.ts       |  |         executor.ts         |  |  |
|  |  |  62 tool handlers    |  |  COMMAND_MAP + arg builder  |  |  |
|  |  |     zod schemas      |  |   + --executable-path inject|  |  |
|  |  +----------------------+  +-----------------------------+  |  |
|  |  +----------------------+                                   |  |
|  |  |     cli.ts           |  Browser Manager                  |  |
|  |  |  -i, --list, --select|  Install/Select/Discover browsers |  |
|  |  +----------------------+                                   |  |
|  +-------------------------------------------------------------+  |
|                           |                                       |
|                           v                                       |
|  +-------------------------------------------------------------+  |
|  |                    agent-browser CLI                        |  |
|  |  Uses --executable-path to point to selected browser        |  |
|  +-------------------------------------------------------------+  |
|                           |                                       |
|                           v                                       |
|  +-------------------------------------------------------------+  |
|  |  Chromium / CloakBrowser / Firefox / Brave / Edge / Chrome  |  |
|  +-------------------------------------------------------------+  |
+-------------------------------------------------------------------+

Quick Start

Prerequisites

  • Node.js >= 18
  • agent-browser CLI (auto-installed if missing, or install manually):
npm install -g agent-browser

Install

npm install -g agent-browser-mcp

# Or run directly without install
npx agent-browser-mcp

Install a Browser

# Install Chromium from xtradeb PPA
agent-browser-mcp -i chromium

# Install stealth CloakBrowser (58 C++ fingerprint patches)
agent-browser-mcp -i cloakbrowser

# Install Google Chrome
agent-browser-mcp -i chrome

# Install Firefox
agent-browser-mcp -i firefox

Select Active Browser

# Set CloakBrowser as default
agent-browser-mcp --select cloakbrowser

# List all browsers
agent-browser-mcp --list

# Show auto-discovered browsers
agent-browser-mcp --discover

Configure MCP Client

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "agent-browser": {
      "type": "stdio",
      "command": "npx",
      "args": ["agent-browser-mcp"],
      "env": {}
    }
  }
}

VS Code / GitHub Copilot (.vscode/mcp.json):

{
  "mcpServers": {
    "agent-browser": {
      "type": "stdio",
      "command": "npx",
      "args": ["agent-browser-mcp"]
    }
  }
}

Quick Commands

# Navigate to a URL
browser_navigate url=https://example.com

# Take a screenshot
browser_screenshot

# Click a button
browser_click selector="#submit"

# Extract all text from an element
browser_get property=text selector="article"

# Run multiple actions in batch
browser_batch actions=[{"command":"click","selector":"#login"}]

[!WARNING] The agent-browser CLI must be installed separately and available in your PATH. Set AGENT_BROWSER_PATH to use a non-default binary location.


Browser Manager

Install, select, and auto-discover browsers from the CLI. The active browser is automatically injected into all agent-browser commands via --executable-path.

Supported Browsers

| Name | Install Command | Description | |:-----|:----------------|:------------| | chromium | agent-browser-mcp -i chromium | Open-source Chromium from xtradeb PPA | | cloakbrowser | agent-browser-mcp -i cloakbrowser | Stealth Chromium with 58 C++ fingerprint patches | | chrome | agent-browser-mcp -i chrome | Google Chrome (via agent-browser) | | firefox | agent-browser-mcp -i firefox | Mozilla Firefox | | brave | agent-browser-mcp -i brave | Brave Browser | | edge | agent-browser-mcp -i edge | Microsoft Edge |

CLI Commands

# Install a browser
agent-browser-mcp -i chromium
agent-browser-mcp -i cloakbrowser

# List all browsers and their status
agent-browser-mcp --list

# Select active browser (persists in ~/.agent-browser-mcp/.env)
agent-browser-mcp --select cloakbrowser

# Show auto-discovered browsers
agent-browser-mcp --discover

# Show .env config path
agent-browser-mcp --env

Auto-Discovery Flow

  1. On startup, checks ~/.agent-browser-mcp/.env for ACTIVE_BROWSER and BROWSER_PATH_*
  2. If not set, scans known binary paths for each browser
  3. First found becomes default
  4. --executable-path is injected into all agent-browser commands automatically

.env Configuration (~/.agent-browser-mcp/.env)

ACTIVE_BROWSER=cloakbrowser
BROWSER_PATH_CHROMIUM=/usr/bin/chromium
BROWSER_PATH_CLOAKBROWSER=/home/user/.cloakbrowser/chromium-146.0.7680.177.5/chrome
BROWSER_PATH_CHROME=/home/user/.agent-browser/browsers/chrome-150.0.7871.24/chrome
BROWSER_PATH_FIREFOX=/usr/bin/firefox

MCP Client with Browser Selection

{
  "mcpServers": {
    "browser": {
      "command": "agent-browser-mcp",
      "args": ["--select", "cloakbrowser"]
    }
  }
}

Tool Coverage

All 153 agent-browser CLI subcommands are exposed as 63 composite MCP tools. Each composite tool uses an action, property, mode, or setting parameter to select the specific subcommand, keeping the tool surface manageable for AI agents.

| Category | CLI Commands | MCP Tools (63 total) | | |:---------|:-------------|:---------------------|:-:| | Navigation | open, back, forward, reload, pushstate | browser_navigate, browser_go_back, browser_go_forward, browser_reload, browser_pushstate | [x] | | Core Interaction | click, dblclick, fill, type, hover, focus, check, uncheck, select, drag, upload, download | browser_click, browser_dblclick, browser_fill, browser_type, browser_hover, browser_focus, browser_check, browser_uncheck, browser_select, browser_drag, browser_upload, browser_download | [x] | | Keyboard | press, keydown, keyup, type, inserttext | browser_keyboard (action) | [x] | | Mouse | move, down, up, wheel | browser_mouse (action) | [x] | | Scroll | scroll, scrollintoview | browser_scroll, browser_scroll_into_view | [x] | | Get Info | text, html, value, attr, url, title, cdp-url, count, box, styles | browser_get (property) | [x] | | State Checks | visible, enabled, checked | browser_is (state) | [x] | | Locators | find by role/text/label/placeholder/alt/title/testid/first/last/nth | browser_find (by) | [x] | | Wait | selector, timeout, url, load-state, function, text, download | browser_wait (mode) | [x] | | Screenshot / PDF | screenshot, pdf | browser_screenshot, browser_pdf | [x] | | Snapshot | snapshot (-i, -c, -C, -u, -d, -s) | browser_snapshot | [x] | | Eval | eval, eval -b | browser_evaluate, browser_evaluate_base64 | [x] | | Batch | batch [--bail] | browser_batch | [x] | | Clipboard | read, write, copy, paste | browser_clipboard (action) | [x] | | Settings | viewport, device, geo, offline, headers, credentials, media | browser_settings (setting) | [x] | | Cookies | get, set, set-file, clear | browser_cookies (action) | [x] | | Storage | local/session get/set/clear | browser_storage (area + action) | [x] | | Network | route, unroute, requests, request-detail, har-start, har-stop | browser_network (action) | [x] | | Tabs | list, new, close, switch, new-window | browser_tab (action) | [x] | | Frames | switch, main | browser_frame (action) | [x] | | Dialogs | accept, dismiss, status | browser_dialog (action) | [x] | | Debug | trace, profiler, console, errors, highlight, inspect | browser_trace, browser_profiler, browser_console, browser_errors, browser_highlight, browser_inspect | [x] | | State Mgmt | save, load, list, show, rename, clear, clean | browser_state (action) | [x] | | Recording | start, stop, restart | browser_record (action) | [x] | | Auth Vault | save, login, list, delete, show | browser_auth (action) | [x] | | Diff | snapshot, screenshot, url | browser_diff (mode) | [x] | | React | tree, inspect, renders-start, renders-stop, suspense | browser_react (action) | [x] | | Vitals | vitals | browser_vitals | [x] | | iOS | device list, tap, swipe | browser_device_list, browser_tap, browser_swipe | [x] | | Session | show, list | browser_session (action) | [x] | | Streaming | enable, disable, status | browser_stream (action) | [x] | | Dashboard | start, stop | browser_dashboard (action) | [x] | | Init Scripts | removeinitscript | browser_remove_init_script | [x] | | Confirm / Deny | confirm, deny | browser_confirm, browser_deny | [x] | | Connect | connect | browser_connect | [x] | | Session Mgmt | close | browser_close | [x] | | Browser Manager | list, discover, install, select | browser_manager (action: list|discover|install|select) | [x] |

CLI Commands Not Exposed

| Command | Reason | |:--------|:-------| | install, upgrade, doctor | Setup and CLI-only operations | | profiles, skills, chat | CLI-interactive, not automation | | close --all | Daemon-wide operation | | addinitscript | Daemon-only JSON action |


Comparison

How does Agent Browser MCP compare to other browser MCP servers?

| Feature | Agent Browser MCP | Playwright MCP | Puppeteer MCP | Browserbase MCP | |:--------|:-----------------|:---------------|:--------------|:----------------| | MCP Protocol | [x] Native | [x] Native | [x] Native | [x] Native | | Tool Count | 63 | ~20 | ~15 | ~10 | | CLI Subcommands | 153 | ~20 | ~15 | ~10 | | Browser Manager | [x] Install/Select/Discover | [ ] | [ ] | [ ] | | Multi-Session | [x] | [ ] | [ ] | [x] | | Accessibility Snapshot | [x] | [ ] | [ ] | [ ] | | Visual Diffing | [x] | [ ] | [ ] | [ ] | | Network HAR | [x] | [ ] | [ ] | [~] | | Auth Vault | [x] | [ ] | [ ] | [ ] | | React Inspection | [x] | [ ] | [ ] | [ ] | | State Persistence | [x] | [ ] | [ ] | [ ] | | Cookie Management | [x] Full | [~] Basic | [~] Basic | [~] Basic | | Storage API | [x] Local + Session | [~] Limited | [~] Limited | [ ] | | Batch Commands | [x] | [ ] | [ ] | [ ] | | Zero Config | [x] | [x] | [x] | [~] |


FAQ

MCP (Model Context Protocol) is an open standard that lets LLM applications expose tools and resources through a standardized interface. An MCP server like agent-browser-mcp registers tools that any MCP client — Claude, Copilot, VS Code, Cursor — can discover and call.

No. The agent-browser CLI manages its own Chromium instance via Playwright. When you install agent-browser, it downloads a compatible browser version automatically.

Yes. Any client that supports the MCP standard can connect to this server over stdio. This includes Claude Desktop, GitHub Copilot, VS Code, Cursor, and custom MCP client implementations.

Each composite MCP tool maps to one or more agent-browser CLI subcommands using an action or property parameter. For example, browser_get(property=text) calls agent-browser get text, while browser_get(property=html) calls agent-browser get html. This reduces the tool surface from 153 to 62 without losing any capability.

By default, agent-browser runs in headless mode when no display is available, making it suitable for CI/CD pipelines, Docker containers, and server deployments. Set the AGENT_BROWSER_PATH environment variable to point to a specific agent-browser binary if needed.

The browser manager lets you install, select, and auto-discover browsers from the CLI. Use agent-browser-mcp -i <browser> to install, --select <browser> to set the active browser, and --list to see all options. The active browser is stored in ~/.agent-browser-mcp/.env and automatically injected into all commands via --executable-path.

Yes. Install with agent-browser-mcp -i cloakbrowser and select with agent-browser-mcp --select cloakbrowser. CloakBrowser includes 58 C++ source-level fingerprint patches that pass reCAPTCHA v3 (0.9 score), Cloudflare Turnstile, FingerprintJS, and 30+ detection sites.


Project Structure

agent-browser-mcp/
├── src/
│   ├── index.ts              # MCP server entry point (stdio transport)
│   ├── cli.ts                # CLI entry point with browser management
│   ├── browsers/
│   │   ├── registry.ts       # Browser definitions (name, install, paths)
│   │   ├── installer.ts      # Install logic per browser
│   │   ├── discover.ts       # Auto-discover installed browsers
│   │   ├── env.ts            # .env loader for browser paths
│   │   └── index.ts          # Public API exports
│   └── tools/
│       ├── browser.ts        # 62 MCP tool registrations + Zod schemas
│       ├── executor.ts       # CLI command mapping + --executable-path inject
│       └── index.ts          # Public API exports
├── tests/
│   ├── browser-tools.test.ts # Tool registration and handler tests
│   ├── executor.test.ts      # CLI argument building tests
│   ├── integration.test.ts   # End-to-end workflow tests
│   └── server.test.ts        # Server lifecycle tests
├── .env.example              # Browser config template
├── AGENTS.md                 # Full tool coverage documentation
├── package.json
├── tsconfig.json
└── vitest.config.ts