browser-mcp-cdp
Allows an AI agent to access and interact with Gmail through a locally controlled Chrome browser, using the user's logged-in session without modifying the real Chrome profile.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@browser-mcp-cdpcheck my Gmail inbox"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-cdpOr 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 |
| Load a URL, return final URL + title |
| Run JS in the page, return result |
| PNG of current page |
| Click via CSS selector |
| Click at pixel coordinates (pierces iframes / overlays) |
| Set value on input/textarea/select |
| Wait for a selector to appear |
| Current URL |
| Visible text of page or element |
|
|
| Scroll by |
| List open tabs |
| Open a new tab |
Environment variables
Var | Default |
| Auto-detected per OS |
| OS-standard Chrome profile dir |
|
|
|
|
|
|
How it works
First MCP client connection spawns a broker subprocess (detached).
Broker copies your Chrome profile's cookies/local storage/login data to a temp dir.
Broker launches Chrome with
--user-data-dir=<temp>and--remote-debugging-port.Subsequent MCP clients connect to the same broker over a Unix socket → they share one Chrome.
Broker exits after
BROKER_IDLE_TIMEOUT_MSof 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
Maintenance
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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