Skip to main content
Glama
README.md
<a href="https://browsermcp.io">
  <img src="./.github/images/banner.png" alt="Browser MCP banner">
</a>

<h3 align="center">Browser MCP</h3>

<p align="center">
  Automate your browser with AI.
  <br />
  <a href="https://browsermcp.io"><strong>Website</strong></a> 
  •
  <a href="https://docs.browsermcp.io"><strong>Docs</strong></a>
</p>

## About

Browser MCP is an MCP server + Chrome extension that allows you to automate your browser using AI applications like VS Code, Claude, Cursor, and Windsurf.

## Features

- ⚡ Fast: Automation happens locally on your machine, resulting in better performance without network latency.
- 🔒 Private: Since automation happens locally, your browser activity stays on your device and isn't sent to remote servers.
- 👤 Logged In: Uses your existing browser profile, keeping you logged into all your services.
- 🥷🏼 Stealth: Avoids basic bot detection and CAPTCHAs by using your real browser fingerprint.

## Running as an MCP server

This repo builds and runs standalone. The internal monorepo packages the upstream
code depends on (`@repo/*` and `@r2r/messaging`) are reconstructed under
[`vendor/`](./vendor) and wired up through `tsconfig.json` path aliases, so no
private workspace packages are required.

```bash
npm install      # installs deps and builds dist/ via the prepare hook
npm run build    # (re)build dist/index.js
node dist/index.js
```

The server communicates over stdio using the Model Context Protocol and opens a
WebSocket server on port `9009` that the Browser MCP Chrome extension connects
to. To use it with an MCP client, register the built binary — for example:

```json
{
  "mcpServers": {
    "browsermcp": {
      "command": "node",
      "args": ["/absolute/path/to/dist/index.js"]
    }
  }
}
```

After installing the [Browser MCP Chrome extension](https://browsermcp.io), click
its icon and press **Connect** on the tab you want to automate.

## Contributing

This repo contains all the core MCP code for Browser MCP. It was originally
developed inside a monorepo and depended on shared `utils` and `types` packages;
those have been vendored (see [`vendor/`](./vendor)) so the project can be built
and run on its own.

## Credits

Browser MCP was adapted from the [Playwright MCP server](https://github.com/microsoft/playwright-mcp) in order to automate the user's browser rather than creating new browser instances. This allows using the user's existing browser profile to use logged-in sessions and avoid bot detection mechanisms that commonly block automated browser use.

TDQS

A3.5/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a distinct browser action: navigation (navigate, go_back, go_forward), interaction (click, hover, type, select_option, press_key), state reading (snapshot, get_console_logs, screenshot), and waiting (wait). No two tools overlap in purpose, making selection unambiguous.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern with a uniform 'browser_' prefix. Verbs clearly describe actions (navigate, click, type, wait), making the naming predictable and easy to infer.

Tool Count5/5

12 tools is a well-scoped set for a browser automation server. Each tool serves a distinct, essential function without unnecessary bloat or missing core capabilities, fitting the typical 3-15 range.

Completeness4/5

The tool set covers the full browser automation lifecycle: navigation, element interaction, state inspection, and output. Minor gaps exist such as no explicit 'get URL/title' or tab management, but the snapshot tool provides sufficient page state, so agents can work around these gaps.

Maintenance

ActivitySlowing
ResponsivenessNo issues