Skip to main content
Glama
zhiqi-li

browser-mcp-cdp

by zhiqi-li

browser-mcp-cdp

A Model Context Protocol (MCP) server that drives your real local Chrome via the Chrome DevTools Protocol. Designed for agents that need access to your logged-in sessions (Gmail, internal dashboards, banking, etc.) without uploading credentials to a cloud service.

Why another browser MCP?

Different tradeoffs from the alternatives:

browser-mcp-cdp

Playwright MCP

Chrome DevTools MCP

Browser

Your local Chrome

Managed Playwright Chromium

Your local Chrome

Login state

✅ Snapshot of your profile (cookies, logins, IndexedDB)

❌ Fresh profile

✅ Real profile (modifies it)

Profile isolation

✅ Copy-on-start, real profile untouched

N/A

⚠️ Direct attach

Multi-client

✅ Shared broker across MCP clients

❌ Per-client

❌ Per-client

Dependencies

Node only (no Playwright download)

Playwright + browsers

Node only

The profile snapshot pattern means you can ask an agent to "check my email" — it sees your Gmail logged in — but the agent's actions never modify your real Chrome profile. Each session gets a disposable copy.

Related MCP server: OpenChrome

Install

claude mcp add browser -- npx -y browser-mcp-cdp

Or add manually to ~/.claude.json / Claude Desktop config:

{
  "mcpServers": {
    "browser": {
      "command": "npx",
      "args": ["-y", "browser-mcp-cdp"]
    }
  }
}

Requires Node 18+ and Google Chrome installed.

Tools

Tool

Purpose

browser_navigate

Load a URL, return final URL + title

browser_evaluate

Run JS in the page, return result

browser_screenshot

PNG of current page

browser_click

Click via CSS selector

browser_click_at

Click at pixel coordinates (pierces iframes / overlays)

browser_fill

Set value on input/textarea/select

browser_wait_for

Wait for a selector to appear

browser_get_url

Current URL

browser_get_text

Visible text of page or element

browser_get_html

outerHTML of page or element

browser_scroll

Scroll by (x, y) pixels

browser_tabs

List open tabs

browser_new_tab

Open a new tab

Environment variables

Var

Default

BROWSER_MCP_CHROME_PATH

Auto-detected per OS

BROWSER_MCP_CHROME_PROFILE_ROOT

OS-standard Chrome profile dir

BROWSER_MCP_BROKER_SOCKET_PATH

~/.browser-mcp/broker.sock

BROWSER_MCP_BROKER_LOCK_PATH

~/.browser-mcp/broker.lock

BROWSER_MCP_BROKER_IDLE_TIMEOUT_MS

600000 (10 min)

How it works

  1. First MCP client connection spawns a broker subprocess (detached).

  2. Broker copies your Chrome profile's cookies/local storage/login data to a temp dir.

  3. Broker launches Chrome with --user-data-dir=<temp> and --remote-debugging-port.

  4. Subsequent MCP clients connect to the same broker over a Unix socket → they share one Chrome.

  5. Broker exits after BROKER_IDLE_TIMEOUT_MS of no activity; temp profile is deleted.

Security

This server lets an LLM execute arbitrary JavaScript in a browser that is logged into your accounts. Only use with models and prompts you trust. Profile snapshotting limits damage (no persistent mutations to your real Chrome), but the agent can read cookies, session tokens, and any data visible to logged-in you for the duration of the session.

License

MIT

Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zhiqi-li/browser-mcp-cdp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server