Manifest V3 extension with the Side Panel API. It lives beside the page, follows the tab you're viewing, and reads the DOM in the MAIN world.
A Node MCP server on 127.0.0.1:2222 relays messages and actions between the panel and Claude over a long-poll.
The MCP tools appear in Claude's tool list. It captures, inspects, and drives the browser on demand — based on what you describe.
Capture, inspection, and debugging flow into the panel. Automation flows back out as live actions in your active tab.
Annotate, crop, or stitch a full page. Record a filmstrip by holding R; diff a before/after at the pixel.
Pick any element for its selector and computed styles. Read storage, Core Web Vitals, accessibility, and SEO in one click.
Live console and network logs with stack traces and timings. Filter the noise, or auto-forward uncaught errors as they happen.
Claude drives the active tab — click, fill, hover, scroll, navigate, type, and run JS, with framework-compatible events.
Claude calls the right one automatically — get_console_log when you describe a JS error, get_network_requests when you describe an API failure. No need to ask.
Responses arrive the instant Claude sends them — no fixed polling interval.
Claude requests console and network data on demand; the panel fetches it fresh from the tab.
Claude dispatches actions; the panel executes them in the active tab and returns the result.
The right tool fires automatically based on how you describe the problem.
The HTTP bridge listens on 127.0.0.1:2222 — unreachable from the network. It defends against malicious web content in your tabs, and is honest about where the trust boundary sits.
Every endpoint but /health needs a fresh 192-bit token from /handshake. The custom header forces a preflight the server rejects unless the origin is a chrome-extension:// URL.
Any process running as you can reach loopback — an intentional trade-off. Local software running as you is already trusted, the same way it can read your files. BrowserConnect defends against web pages, not your own shell.
Any chrome-extension:// origin currently passes CORS. Pinning to the exact extension ID lands once it has a stable Web Store ID. Until then, keep installed extensions to ones you trust.
Writes .mcp.json and appends instructions to CLAUDE.md.
Open chrome://extensions, enable Developer mode, click Load unpacked, and pick the chrome-extension folder in the package.
The MCP server starts and browser-connect appears in your tool list.
Click the BrowserConnect icon in Chrome's toolbar. The panel opens alongside the page — you're ready.
Teammates with Node installed need one command per project, then the extension.