better-browser-mcp
Click on "Deploy 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., "@better-browser-mcpOpen Hacker News and summarize the top story plus its top 3 comments"
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.
I read through my own agent sessions. Browser agents took 1,849 screenshots and read the page as text 7 times. Most of the tokens went into looking at pages, not into doing the work.
bbm is an MCP server that gives any agent (Codex, Claude Code, or any other MCP client) your real Chrome, with your sign-ins: the kind of access Claude in Chrome gives Claude. In our benchmark it does that job better than Claude in Chrome: 72% fewer tokens, 3.5× faster, and it passed all 32 runs where Claude in Chrome passed 28.
The browser answers in text, in few calls. Open a page and you get the page. Do several things and you get back what happened.
> navigate /login-form/
# Sign in
textbox "Username" [e1]
textbox "Password" [e2]
checkbox "Keep me signed in" [e3]
button "Sign in" [e4] disabled
> act type e1 "bench_user" · type e2 "S3cure!pass#42" · click e4
1. type e1 "bench_user" ✓
2. type e2 "S3cure!pass#42" ✓
3. click e4 ✓
# Welcome back
You are signed in as bench_user.That is a login in two calls. The output above is real, from a test page in fixtures/.
The numbers
16 hard pages (iframes, shadow DOM, native dialogs, popups, uploads, and a prompt-injection trap). Claude Sonnet 5.5, 2 runs each. The server checks success, not the agent.
success | tokens / task | calls | time | cost | |
bbm | 32/32 | 30.5k | 3.2 | 11 s | $0.025 |
Playwright MCP | 32/32 | 84.8k | 7.8 | 27 s | $0.039 |
chrome-devtools-mcp | 32/32 | 100.7k | 6.7 | 21 s | $0.041 |
claude-in-chrome | 28/32 | 109.9k | 8.9 | 39 s | $0.055 |
Medians of 3 runs. Each run is checked against ground truth (the HN API, the live product page, the cart), not against what the agent says it did.
Task | bbm | claude-in-chrome |
Hacker News: top story + 3 top comments | 4 calls · 35k | 5 calls · 75k |
Amazon: find a USB-C hub by price, rating, ports | 2 calls · 45k | 8 calls · 163k |
Amazon: add it to the cart (checkout blocked) | 4 calls · 76k | 12 calls · 217k |
All runs passed (3/3) on both sides. The samples are small: treat differences under ~15% as noise. Method, raw runs and failures are in bench/.
Related MCP server: huashu-chrome
Quick start
cd prototype && bun install # or npm install
claude mcp add -s user bbm -- bun "$PWD/src/server.ts"
# Codex: codex mcp add bbm -- bun "$PWD/src/server.ts"Then load the Chrome extension (2-minute guide) and ask:
Use bbm. Open example.com and tell me the heading.
If you do not want to use your own Chrome, set BBM_MODE=launch for a fresh headless browser.
Why it feels different
It stays out of your way. The agent works in its own tab group. It never takes your active tab and never steals focus. Up to 30 sessions share one Chrome, and each session sees only its own tabs. If you reload the extension or restart Chrome, the next call reconnects.
It does not lie about clicks. If a click changes nothing, bbm tries once more with the keyboard. If that also fails, it reports ⚠ no effect, not ✓.
It keeps your wallet closed. BBM_GUARD=shop-social blocks Buy now, Place order, checkout and Post, at three levels. Hidden text never gets to the model, and lines that look like prompt injection are flagged.
Fewer calls, fewer tokens
navigatereturns the page.actruns a batch of steps and returns a diff.A compact snapshot (
role "name" [e5] states) that sees into iframes and shadow DOM.In an open dialog or composer, snapshots cover only that dialog.
extractgives tables and records as JSON.readgives the main content as Markdown.13 tools, ~2.5k tokens of definitions (others use 5–7k).
Your Chrome, shared politely
Extension mode drives your real profile. Agent tabs close when the session ends, except the tabs that you used.
Fields in agent tabs opt out of password managers, so their pop-ups do not break the session.
Safety
Cookie and credential header values are shortened. Downloads go into one folder, by name only.
Local only: stdio and a paired local WebSocket. No cloud relay.
Developer tools
network: timings, sizes, headers and cookies per request, filters, HAR export.emulate: device presets, dark mode, network and CPU throttling.perf: Web Vitals, long tasks, the heaviest resources, heap and DOM size.
Path | |
The MCP server (Node or Bun), page agent, Chrome extension | |
Fixture benchmark and real-site benchmark | |
The 16 hard pages, with a server that checks success | |
Each failure we found, why it happened, the fix, and its regression test | |
Icon and social cards |
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect AI agents to your own Chrome with scoped access, approvals, and verified task results.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Give AI agents a real cloud Chrome: open sessions, navigate, read pages, click, type and screenshot.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control your existing Chrome browser via MCP, using your logged-in sessions for automation on authenticated sites. Provides high-level browser tools plus raw CDP and Chrome API access.MIT
- AlicenseNot gradedqualityAmaintenanceEnables any MCP-compatible AI agent to drive your own Chrome browser with your existing login state, filling forms, clicking elements, fetching data, and handling captchas without API keys or re-authentication.402 npm545MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to see and control the user's real Chrome/Brave/Edge profile over MCP, so they can read pages, click, type, take screenshots, audit layouts, debug CSS, and scrape paginated or infinite-scroll data. Because it drives the normal browser via the DevTools protocol with real input events, it works on modern JavaScript apps and on sites where the user is logged in.22 npm1MIT

TabBridgeofficial
AlicenseNot gradedqualityAmaintenanceLets any MCP-speaking AI agent drive your everyday Chrome browser, opening pages, reading them, clicking, typing, taking screenshots, and inspecting DevTools console, network, storage and performance data with your existing sign-ins. Risky actions like submitting or paying require your explicit approval, and agents are confined to their own tab group with secrets hidden.Apache 2.0