mcp is a free, open source data extraction & web scraping project written in TypeScript and released under Apache-2.0. It has 7,353 GitHub stars, 606 forks and 0 open issues, and was last pushed 36 hours ago. On this registry it ranks #37 of 155 tracked projects in Data Extraction & Web Scraping, with 5 head-to-head comparisons available. It gained 115 stars over the last 17 tracked days.

What is mcp?

Browser MCP is an Apache-2.0 licensed TypeScript MCP (Model Context Provider) server that lets AI applications such as Claude Code, Cursor, VS Code, Codex and Claude Desktop control the user's own Chrome browser, with everything running on the user's computer.

What it is

Browser MCP lives in the MCP ecosystem — the Model Context Provider convention through which AI applications discover and call tools — and provides a browser-automation bridge between those applications and a real, signed-in Chrome profile. The repository is a pnpm monorepo: packages/mcp holds the MCP server and its daemon and is published as @browsermcp/mcp; packages/protocol holds the protocol between the extension and the daemon, including pairing; packages/extension-core holds the extension's browser control, covering the connection, pairing, the debugger relay and the rules about tabs, tab groups and the badge; and apps/extension holds the extension and its popup.

The concrete problem it solves is access to the sites a user is already signed into. Instead of handing an AI application a separate browser with none of the user's sessions, Browser MCP forwards the app's browser tool calls to a small local daemon, which drives tabs in the user's own Chrome through an extension acting as a thin chrome.debugger relay. The AI gets tabs of its own, but they sit inside the profile and signed-in state the user already has, and no part of the flow leaves the computer.

Key capabilities

  • The MCP server is published on npm as @browsermcp/mcp and is run by each AI app with npx @browsermcp/mcp@latest, exposing a browser tool to that app.
  • A single daemon per user is started by the MCP server, which forwards the app's browser tool calls to it; the daemon then drives the browser's tabs with Playwright through the extension.
  • The extension is a thin chrome.debugger relay that only talks to the daemon on 127.0.0.1, and only after the user clicks Allow in its popup once per computer, having checked that the extension's six-digit code matches the one the AI app shows.
  • The extension enforces its own rules whatever the daemon asks: no incognito tabs unless Allow in Incognito is turned on for the extension in Chrome, no browser or extension pages, and nothing while Stop is pressed.
  • Documented clients include Claude Code, Cursor, VS Code, Codex and Claude Desktop.
  • Self-built extensions are supported: every build carries the same ID (imlplcjlhgpajopdbpbngiadkcmdbgob, from the key in apps/extension/extension-key.ts) which the server accepts, and a build with another key needs its ID in BROWSER_MCP_EXTENSION_IDS or in ~/.browsermcp/dev-extension-ids.
  • Development tooling ships in the repo: pnpm lint and pnpm format (Oxlint and Oxfmt), pnpm typecheck, pnpm test (Vitest, with the server's tests running Playwright's Chromium), and pnpm smoke.

Who uses it and how

  • Developers working in Claude Code, Cursor, VS Code, Codex or Claude Desktop who want the assistant to act inside the browser they are already logged into, rather than a blank automated one.
  • Individual users on their own machine: one daemon per user, an extension that speaks only to 127.0.0.1, and a one-time pairing per computer rather than per session.
  • Users who prefer not to install from the Chrome Web Store can build from source with Node.js 24 or later, pnpm and a Chromium browser (Edge, Brave and Arc are named), then load apps/extension/.output/chrome-mv3 unpacked and point the AI app's MCP config at the locally built packages/mcp/dist/index.js.
  • Cautious setups, where the incognito exclusion, the refusal to touch browser or extension pages, and the Stop control bound what the assistant can reach.

Getting started

Install the extension from the Chrome Web Store (or build it yourself), then add the server to the AI app's MCP config and let it run npx @browsermcp/mcp@latest; on first use, click Allow in the extension popup after checking that its six-digit code matches the one the AI app displays. Setup details are at browsermcp.io/docs.

How it compares

No paid products or comparable tools are named in the facts provided, so it stands alone in this registry. The only contrast the material supports is internal: it uses the user's own Chrome rather than a separate browser, and it runs entirely on the user's computer.

When to use it — and when not to

Choose it when the assistant needs the real, signed-in web on a Chromium browser and the work should stay on the local machine. Do not choose it on Firefox, which has no debugger API and is explicitly unsupported, or where a hosted or remote browser is required, since the design assumes one local daemon per user. Self-hosters should also accept the operational overhead: Node.js 24 or later and pnpm for a source build, a manual git pull, pnpm install, pnpm build and extension reload to update, and the rule that only one build of the extension can use the server at a time in a profile, so a self-built copy requires turning off the Chrome Web Store version.

project readme (upstream, from github) — read inline

Browser MCP

Browser MCP lets AI apps (Claude Code, Cursor, VS Code, Codex, Claude Desktop…) use your own Chrome: your signed-in sites, your profile, in tabs of their own. Everything runs on your computer.

How it works

Each AI app runs the MCP server (npx @browsermcp/mcp@latest), a small process that starts one daemon per user and forwards the app's browser tool calls to it. The daemon drives the browser's tabs with Playwright, through the extension: a thin chrome.debugger relay that only talks to the daemon on 127.0.0.1, and only after you click Allow in its popup once per computer, having checked that its six-digit code matches the one your AI app shows. The extension enforces its own rules whatever the daemon asks: no incognito tabs unless you turned on Allow in Incognito for the extension in Chrome, no browser or extension pages, and nothing while you've pressed Stop.

Folder Package
packages/mcp @browsermcp/mcp The MCP server and the daemon (README)
packages/protocol @browsermcp/protocol The protocol between the extension and the daemon, including pairing
packages/extension-core @browsermcp/extension-core The extension's browser control: the connection, pairing, the debugger relay, the rules about tabs, tab groups, the badge
apps/extension @browsermcp/extension The extension built from this repo: browser control and its popup

Build it yourself

You need Node.js 24 or later, pnpm (corepack enable) and Chrome or another Chromium browser (Edge, Brave, Arc…). Firefox has no debugger API, so Browser MCP doesn't work there.

  1. Build the extension and the server:

    git clone https://github.com/BrowserMCP/mcp.git browsermcp
    cd browsermcp
    pnpm install
    pnpm build
    
  2. Open chrome://extensions, turn on Developer mode, click Load unpacked and pick apps/extension/.output/chrome-mv3. It's called "Browser MCP (self-built)". If the Chrome Web Store's Browser MCP is installed in the same profile, turn it off, since only one of them can use the server at a time.

  3. In your AI app's MCP config, run the server you built instead of the one on npm:

    {
      "mcpServers": {
        "browsermcp": {
          "command": "node",
          "args": ["/path/to/browsermcp/packages/mcp/dist/index.js"]
        }
      }
    }
    

    npx @browsermcp/mcp@latest (the docs' setup) works with this extension too: it's the same server, published from this repo.

  4. Restart the AI app and ask it to do something in the browser. The first time, the extension's popup asks you to Allow the server on this computer: check that its code matches the one the AI app shows.

Every build of this extension has the same ID (imlplcjlhgpajopdbpbngiadkcmdbgob, from the key in apps/extension/extension-key.ts), which the server accepts besides the Chrome Web Store's. A build with another key needs its ID in BROWSER_MCP_EXTENSION_IDS (comma-separated) in the server's environment, or on a line of ~/.browsermcp/dev-extension-ids.

Updating

git pull
pnpm install
pnpm build

Then click the reload button on "Browser MCP (self-built)" in chrome://extensions, and restart your AI apps if they run the server from this folder. The extension and the server tell you when the other side is too old for them.

Development

  • pnpm lint, pnpm format (pnpm format:fix fixes it): Oxlint and Oxfmt.
  • pnpm typecheck, pnpm test: TypeScript and the unit tests (Vitest) of every package. The server's tests run Playwright's Chromium: install it once with pnpm --filter @browsermcp/mcp exec playwright-core install chromium.
  • pnpm smoke: builds the extension in development mode and the server, loads the extension in headless Chromium and drives it through the server as an AI app would, on random ports and a temporary BROWSER_MCP_HOME, so it never touches your own Browser MCP. Screenshots go to apps/extension/.output/smoke/.
  • pnpm --filter @browsermcp/extension build:dev: a development build (apps/extension/.output/chrome-mv3-dev).

Contributing and security

See CONTRIBUTING.md for how to report bugs and send changes, and SECURITY.md to report a vulnerability privately.

License

Apache-2.0. Building it for yourself or your team is fine, and so is saying that your tool is compatible with Browser MCP or built on its code. If you publish a modified extension or server (to a browser extension store, npm or anywhere else others install it from), please give it another name and icon, and don't present it as the official Browser MCP or as endorsed by it, so people can tell the two apart. Keep the LICENSE and say what you changed.

Frequently asked questions

Is mcp free to use?

mcp is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does mcp do?

Browser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser

What is mcp written in?

mcp is primarily written in TypeScript. Its source is publicly available at https://github.com/BrowserMCP/mcp, and it has 7,353 GitHub stars.