TECHNICAL SPECIFICATION · INTEGRATION MANUAL
Chrome MCP Server: Control Real Chrome Locally with AI Agents
A zero-cloud, open-source Model Context Protocol (MCP) server that lets Claude Code, Cursor, and Windsurf drive your authentic, logged-in Google Chrome browser across multiple profiles in parallel.
Quick Answer (TL;DR)
WebBridge (
agent-webbridge) is a local Chrome browser-automation MCP server that enables AI agents to operate real, signed-in Chrome profiles with multi-profile routing and parallel tabs. It executes as a zero-dependency stdio server over npx -y agent-webbridge mcp, communicating with your browser via a lightweight MV3 extension on loopback 127.0.0.1:10086 without sending browsing data to any cloud service.
1. 30-Second Installation & Setup
Install the CLI and pair your target Chrome profile with its local daemon:
# 1. Install agent-webbridge globally
npm i -g agent-webbridge
# 2. Pair your Chrome profile (e.g. "Work" or "Default")
awb setup "Work"
Add the stdio MCP server to your agent's configuration file (e.g. claude.json, settings.json, or Claude Desktop):
{
"mcpServers": {
"chrome": {
"command": "npx",
"args": ["-y", "agent-webbridge", "mcp"]
}
}
}
For Claude Code users, configure the server in one shell command:
claude mcp add chrome -- npx -y agent-webbridge mcp
2. Complete 13-Tool MCP Interface
WebBridge registers 13 specialized browser automation tools directly into your AI client's model context. Every tool supports optional profile and tabId parameters for multi-profile and parallel tab execution:
| MCP Tool | Purpose & Capability | Key Inputs |
|---|---|---|
browser_navigate |
Navigate to any URL. Supports opening in a new parallel tab or reusing the active session tab. | url, newTab, session |
browser_snapshot |
Extracts an LLM-optimized accessibility tree with compact @e element references (e.g. @e14) rather than bloated raw HTML. |
profile, tabId |
browser_click |
Synthetically click an element by accessibility ref (@e12) or standard CSS selector. |
selector |
browser_trusted_click |
Dispatches authentic Chrome DevTools Protocol mouse events (isTrusted: true) with precise coordinates, for pages that ignore script-generated clicks. |
selector, x, y |
browser_fill |
Enters text into native inputs, textareas, and rich contenteditable elements. |
selector, value |
browser_evaluate |
Executes arbitrary JavaScript in the page execution context and returns structured JSON results. | code |
browser_screenshot |
Captures full page or element screenshots written directly to disk (never flooding context with raw base64). | path, selector |
browser_save_as_pdf |
Generates clean PDF documents directly from the rendered DOM. | path, paper_format |
browser_network |
Inspects live network requests and captured API responses (start, stop, list, detail). | cmd, filter |
browser_upload |
Attaches local files directly to file upload form elements. | selector, files |
browser_list_tabs |
Inspects all active browser tabs, URLs, titles, and tab group associations. | profile |
browser_find_tab |
Focuses and attaches debugger control to an existing open tab by URL. | url, active |
browser_close_session |
Closes all tabs opened by the agent session, keeping the user's personal tabs untouched. | session |
3. Architecture & Local Security Boundary
Agent WebBridge is designed from the ground up for strict local privacy:
- Loopback Isolation: All communication between MCP clients, the central router, and per-profile daemons occurs over
127.0.0.1. No external traffic is ever transmitted. - DNS Rebinding & Origin Protection: Built-in HTTP guards reject any incoming requests bearing a web
Originheader or non-loopbackHostheader, ensuring untrusted web pages visited in Chrome cannot send commands to your local bridge. - Session Authenticity: Because WebBridge connects to your real browser, your existing 2FA tokens, session cookies, and login credentials stay securely inside Chrome's native keychain.
- Visible Tab Groups: Every automated tab created by an agent session is clearly assigned to a colored Chrome tab group (e.g.
agent:mcp), making agent actions 100% visible and manually revocable at any second.
4. WebBridge vs Headless & Cloud MCPs
| Capability | WebBridge MCP | Puppeteer / Playwright MCP | Cloud Browser MCP (Steel/Browserbase) |
|---|---|---|---|
| Browser Session | Your real Chrome (active logins & cookies) | Blank incognito session (requires re-login) | Remote cloud container (requires credential upload) |
| Anti-bot checks & CAPTCHA | Your own Chrome profile; sites can still limit automation | Often challenged; varies by site | Often needs proxies |
| Multi-Profile Routing | Built-in router across distinct profiles | Manual directory scripting | Separate billable remote containers |
| Parallel Tabs | Per-tab CDP attachment (~3.5s for 5 tabs) | Single-threaded script or high RAM cost | Per-tab billing and latency overhead |
| Cost & Licensing | Free, MIT Open Source | Free, MIT Open Source | $20–$200+/month usage-based pricing |
Frequently Asked Questions
A Chrome MCP server is a local bridge implementing Anthropic's Model Context Protocol (MCP) that exposes Chrome DevTools Protocol capabilities to AI clients like Claude Code, Cursor, and Windsurf as structured tool calls. WebBridge (agent-webbridge) runs as a zero-dependency stdio MCP server on your local machine.
No. WebBridge operates 100% locally on loopback 127.0.0.1. No cookies, page DOMs, tokens, or screenshots ever leave your machine. The local daemon and extension communicate strictly over local loopback WebSockets.
Unlike legacy browser bridges that multiplex all commands through one global current tab, WebBridge attaches chrome.debugger per tab using an internal Map keyed by tabId. Multiple tabs within a single Chrome profile can navigate and evaluate concurrently in parallel.
First run
npm i -g agent-webbridge && awb setup "Work" to pair your Chrome profile. Then run claude mcp add chrome -- npx -y agent-webbridge mcp. Claude Code will immediately register all 13 browser tools.