Show HN: Public Browser – a Chrome MCP server with ~40% fewer tool calls Public Browser, a Chrome MCP server that connects to Chrome directly via the DevTools Protocol, reported 30% fewer tokens, 25% lower cost, 41% fewer tool calls and 40% less time than Playwright MCP at the same pass rate on a 30-test benchmark run on 2026-09-03 with driver Claude Opus 5. The server scored 30/30 on the September 2026 re-run at 281s and 296s, using 6.3M and 6.5M session tokens and $3.41 and $3.35 per run at Opus 5 list price, versus Playwright MCP's 8.8M and 9.6M tokens and $4.28 and $4.78. Public Browser's own tool definitions shrank 34% since v2.10.4, from 7,607 to 4,990 tokens, and the project ships 2,360 TypeScript tests and 237 Python tests for use with Claude Code, Cursor and other MCP-compatible clients. Lets Claude Code and Cursor drive Chrome — with your real, logged-in profile. On the same 30-test benchmark page it used 30% fewer tokens, 25% less money, 41% fewer tool calls and 40% less time than Playwright MCP at the same pass rate — two runs each, 2026-09-03, driver Claude Opus 5, raw data in the repo Benchmarks benchmarks , including where it loses . Its own tool definitions are 34% smaller since v2.10.4 7,607 → 4,990 tokens, reproduce with node scripts/token-count.mjs . Direct CDP, a11y-tree refs, multi-tab ready — 2,360 TypeScript tests, 237 Python tests. Built for Claude Code https://claude.ai/claude-code , Cursor https://cursor.sh , and any MCP-compatible client. Looking for an alternative to Playwright MCP, Browser MCP, or claude-in-chrome? Public Browser talks to Chrome directly via the DevTools Protocol — no Playwright dependency, no Chrome extension bridge, no single-tab limit. One command to install, zero config. See benchmark comparison below benchmarks . Every Chrome MCP server has the same problem: bulky responses, too few reliable refs. Screenshots return 10-30x more context payload than text trees. Selector-based refs break the second the DOM rerenders. Extension bridges Browser MCP get stuck on the connected tab. Playwright wrappers spin up a new browser instance for every session. Public Browser fixes this. It talks directly to Chrome via CDP same protocol Playwright and Puppeteer use internally , returns an accessibility-tree-based reference map, and caches it across calls so click ref: 'e5' and type ref: 'e7', ... survive scrolls and DOM updates. Benchmark rows below are April 2026, 35-test suite, Opus 4.6 unless a cell also gives a September value. Cells marked Sep come from the blind September 2026 re-run 35-test page, 30 scored, driver claude-opus-5 , two runs per required server; one browser-use run — run files public-browser-run1/2.json , playwright-mcp-run5/6.json , chrome-devtools-mcp-run3/4.json , browser-use-run6.json in test-hardest/results/ https://github.com/Silbercue/public-browser/blob/master/test-hardest/results . Cross-suite comparison is not valid; see Benchmarks benchmarks . | What you get | Playwright MCP | Browser MCP | claude-in-chrome | browser-use | Public Browser | |---|---|---|---|---|---| | Benchmark pass rate Apr 2026: 31 scored / Sep 2026: 30 scored | 29/31 563s Sep: 30/30 468s, 493s | 6/31, aborted Sep: not re-run | 24-test suite only | 21/31 1870s Sep: 24/30, incomplete run 2023s | 30/31 598s Sep: 30/30 281s, 296s | | Session tokens, whole run Sep 2026 only | Sep: 8.8M, 9.6M | — | — | Sep: 56.2M, incomplete run | Sep: 6.3M, 6.5M −30% | | Cost per run, Opus 5 list price Sep 2026 only | Sep: $4.28, $4.78 | — | — | Sep: $25.25, incomplete run | Sep: $3.41, $3.35 −25% | | Avg Tool-Response Chars | 1,448 Sep: 740, 656 | — | — | — | 807 Sep: 1,298, 1,214 | | P95 Tool-Response Chars | 8,068 Sep: 3,617, 1,587 | — | — | — | 2,328 Sep: 6,077, 6,479 | | view page avg Chars | 6,084 browser snapshot Sep: 1,911, 2,269 | — | — | — | 1,124 Sep: 2,841, 3,398 | | Multi-tab support | Yes | No single tab | Yes | Partial | Yes | | Connection | New browser | Extension bridge | Extension | Subprocess | Direct CDP pipe or WebSocket | | Ref system | Playwright refs | Playwright refs | CSS selectors | Screenshots | A11y-tree refs stable across DOM changes | | Drag & drop | Yes | No | Partial | No | Yes native CDP mouse events | | Shadow DOM + iframe | Yes | Yes | Partial | No | Yes with OOPIF session support | | Multi-step plan execution | — | — | — | — | run plan — server-side plan executor with variables, conditions, suspend/resume |