
Security News
arXiv Is Rate Limiting Authors Following a Flood of AI Slop Submissions
arXiv now limits authors to two submissions a month as AI slop overwhelms moderators, delays good papers, and sparks debate over applying the limit to everyone.
@silbercue/chrome
Advanced tools
The fastest, most token-efficient MCP server for Chrome browser automation. Direct CDP, a11y-tree refs, multi-tab ready. 24/24 on the hardest benchmark at 20s scripted, beating Playwright MCP and claude-in-chrome.
Built for Claude Code, Cursor, and any MCP-compatible client.
Looking for an alternative to Playwright MCP, Browser MCP, or claude-in-chrome? SilbercueChrome 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, and the best benchmark score in the category. See comparison below.
Every Chrome MCP server has the same problem: too many tokens, too few reliable refs. Screenshots eat 10-30x more tokens 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.
SilbercueChrome 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.
| What you get | Playwright MCP | Browser MCP | claude-in-chrome | browser-use | SilbercueChrome |
|---|---|---|---|---|---|
| Hardest benchmark (24 tests, LLM-driven) | 24/24 (~570s) | cannot finish | 24/24 (1140s) | 17/24 (~1049s) | 24/24 Pro: 555s · Free: 755-900s |
| Scripted benchmark (24 tests) | — | — | — | — | 24/24 in ~20s |
| 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) |
| Read page | Screenshot + DOM | Snapshot | DOM dump | Screenshot-heavy | read_page — 10-30x fewer tokens |
| Drag & drop | Yes | No | Partial | No | Yes (native CDP mouse events) |
| Shadow DOM + iframe | Yes | Yes | Partial | No | Yes (with OOPIF session support) |
| Keyboard shortcuts | Yes | Yes | Partial | No | Yes (press_key with real CDP keyboard events) |
| localStorage/cookies | Yes | No | Partial | No | Yes (via evaluate) |
| Multi-step plan execution | — | — | — | — | run_plan — server-side plan executor with variables, conditions, suspend/resume |
| Zero-config install | Yes | Yes | Built-in | Yes | Yes (one claude mcp add line) |
24/24 on the hardest benchmark in 20 seconds (scripted), 555s LLM-driven — beats every alternative in the category
The test-hardest suite covers 24 patterns that break most browser MCPs: infinite scroll, Shadow DOM, nested iframes, drag & drop, canvas clicks, keyboard shortcuts, contenteditable, async timing races, 10K-element DOMs, localStorage chains, mutation observers, modal form chains. SilbercueChrome Pro clears all 24 in ~555s LLM-driven (scripted: ~21s). Free tier runs 20s scripted / 755-900s LLM. Playwright MCP takes ~570s LLM. claude-in-chrome takes 1140s. browser-use fails 7 tests architecturally.
![]()
read_pagewith a11y-tree refs — 10-30x cheaper than screenshots
Instead of pushing an 800KB screenshot every turn, read_page returns the accessibility tree with stable e5-style refs. Agents read text, find elements, and chain click(ref: 'e5') / type(ref: 'e7', ...) — all in 30KB responses. Screenshots stay available for visual verification via screenshot, but the LLM stops defaulting to them for element discovery.
True multi-tab —
virtual_desk,switch_tab, parallel tabs inrun_plan
Browser MCP binds to a single "connected" tab via its Chrome extension — cross-tab operations are architecturally impossible. SilbercueChrome uses CDP Target API to enumerate, open, close, and switch between tabs. virtual_desk lists every open tab with stable IDs. switch_tab moves between them without touching the user's active tab. run_plan even supports parallel tab execution.
![]()
fill_form— one call for a complete form
Other MCPs make you emit N type calls for an N-field form. fill_form takes a single fields[] array with refs and values, handles text inputs, <select> (by value or label), checkboxes, and radios in one CDP round-trip, and reports per-field status.
![]()
observe— watch DOM changes without writing JavaScript
Two modes: collect (watch for N ms, return every text/attribute change) and until (wait for a condition, then auto-click). Use click_first to trigger the action that causes changes — the observer is set up before the click, so nothing is missed. Replaces the typical setInterval/MutationObserver/evaluate dance.
![]()
run_plan— server-side multi-step automation
Execute a sequence of tool steps server-side with variables ($varName), conditions (if), saveAs, error strategies (abort/continue/screenshot), and suspend/resume for long-running workflows. Parallel tab execution is a Pro feature.
One command — installs globally for all projects:
claude mcp add --scope user silbercuechrome npx -y @silbercue/chrome@latest
Restart Claude Code. First tool call auto-launches Chrome visible (no headless, no port setup). Done.
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"silbercuechrome": {
"command": "npx",
"args": ["-y", "@silbercue/chrome@latest"]
}
}
}
Any client that supports stdio MCP servers: npx -y @silbercue/chrome@latest with no arguments.
claude mcp remove --scope user silbercuechrome
The Free tier gives you 18 tools covering 24/24 benchmark tests in the scripted runner. Pro adds virtual_desk, switch_tab, dom_snapshot, and advanced run_plan features (parallel tabs, operator hooks, ambient context) plus faster internals.
| Free | Pro | |
|---|---|---|
| Tools | 18 | 21+ |
| Page understanding | read_page | read_page + dom_snapshot (spatial queries) |
| Tab management | navigate, tab_status | + virtual_desk, switch_tab, parallel tabs in run_plan |
| Interaction | click, type, fill_form, press_key, scroll, file_upload, handle_dialog | Same |
| Observation | screenshot, wait_for, observe, console_logs, network_monitor | Same + ambient page context hooks |
| Scripting | run_plan (sequential) | run_plan (sequential + parallel + operator hooks) |
| Last resort | evaluate | evaluate + anti-pattern scanner hints |
| Benchmark score | 24/24 | 24/24 |
| Benchmark time (scripted) | ~20s | ~21s |
| Benchmark time (LLM-driven) | 755-900s | ~555s |
Pro costs $19 USD one-time. Get a license on Polar.sh, then activate via the built-in license command or SILBERCUECHROME_LICENSE_KEY=SC-PRO-... env var.
| Tool | Description |
|---|---|
read_page | Accessibility tree with stable e-refs — primary way to understand the page. 10-30x cheaper than screenshots. Filter by interactive (default) or all (include static text). |
screenshot | WebP capture, max 800px, <100KB. Use for visual verification only — you cannot use screenshots to drive click/type, refs come from read_page. |
console_logs | Retrieve browser console output with level/pattern filters |
network_monitor | Start/stop/query network requests with filtering |
observe | Watch DOM changes: collect (buffer changes over time) or until (wait for condition, then auto-click) |
wait_for | Wait for element visible, network idle, or JS expression true |
tab_status | Active tab's cached URL/title/ready/errors — mid-workflow sanity check |
| Tool | Description |
|---|---|
click | Real CDP mouse events (mouseMoved/Pressed/Released). Click by ref, selector, text, or x+y coordinates. Response includes DOM diff (NEW/REMOVED/CHANGED). |
type | Type into an input by ref/selector |
fill_form | Fill a complete form in one call — text, <select>, checkbox, radio. Per-field status, partial errors don't abort. |
press_key | Real CDP keyboard events — Enter, Escape, Tab, arrows, shortcuts (Ctrl+K, etc.) |
scroll | Scroll page, element into view, or inside a specific container (sidebar, modal body) |
file_upload | Upload file(s) to an <input type="file"> |
handle_dialog | Configure alert/confirm/prompt handling before triggering actions |
| Tool | Description |
|---|---|
navigate | Load a URL in the active tab. Waits for settle. First call per session is auto-redirected to virtual_desk to prevent blindly overwriting the user's tab. |
| Tool | Description |
|---|---|
run_plan | Execute a multi-step plan server-side. Variables ($varName), conditions (if), saveAs, error strategies (abort/continue/screenshot), suspend/resume. Parallel tabs require Pro. |
configure_session | View/set session defaults (tab, timeout) and accept auto-promote suggestions |
evaluate | Execute JS in the page context. Use for COMPUTE or side effects no tool covers — not for element discovery (use read_page instead). Anti-pattern scanner warns when you reach for querySelector or .click(). |
| Tool | Description |
|---|---|
virtual_desk | Lists all tabs with stable IDs. Call first in every session. |
switch_tab | Open, switch to, or close tabs by ID from virtual_desk |
dom_snapshot | Bounding boxes, computed styles, paint order, colors. For spatial questions read_page cannot answer. |
Measured on https://mcp-test.second-truth.com — 24 tests in 4 levels (Basics, Intermediate, Advanced, Hardest). Each run is independent, values on the benchmark page are randomized per page-load, and all runs started in a fresh Claude Code session out of /tmp (no project context bias).
| MCP | Passed | Time (LLM) | Time (scripted) |
|---|---|---|---|
| SilbercueChrome Pro | 24/24 | 555s | 21s |
| SilbercueChrome Free | 24/24 | 755-900s | 20s |
| Playwright MCP | 24/24 | ~570s | — |
| claude-in-chrome | 24/24 | 1140s | — |
| browser-use | 17/24 | ~1049s | — |
| Browser MCP | — | could not complete | — |
browser-use fails 7 tests architecturally: infinite scroll (no container-internal scrolling), drag & drop, canvas click, keyboard shortcuts, contenteditable bold, localStorage+cookie chain, mutation observer. Browser MCP's single-tab extension bridge cannot complete the Tab switch, read, return pattern and becomes unstable over longer runs. See test-hardest/BENCHMARK-PROTOCOL.md for the full protocol and raw JSON runs.
SilbercueChrome (Node.js MCP server, @silbercue/chrome)
├── @modelcontextprotocol/sdk (stdio transport)
├── CDP Client
│ ├── WebSocket transport (existing Chrome on :9222)
│ └── Pipe transport (auto-launched Chrome with --remote-debugging-pipe)
├── Auto-Launch: Chrome + optimal flags, visible by default
├── A11y-tree cache + Selector cache
├── Session Manager (OOPIF support for iframes and Shadow DOM)
├── Tab State Cache (URL/title/ready across tabs)
└── 18 Free-tier tools + 3+ Pro-tier tools
Reading · Interaction · Navigation · Scripting · Observation
Connection priority:
--remote-debugging-pipe, visible as a window, with all flags set for reliable screenshots and keyboard focus.--remote-debugging-port=9222, SilbercueChrome connects to that instead. Use this to control your own browser with its extensions and login sessions.CHROME_PATH)| Variable | Values | Default | Description |
|---|---|---|---|
SILBERCUE_CHROME_AUTO_LAUNCH | true / false | true | Auto-launch Chrome if no running instance found |
SILBERCUE_CHROME_HEADLESS | true / false | false | Opt-in headless mode for CI/server environments |
SILBERCUE_CHROME_PROFILE | path | — | Chrome user profile directory (auto-launch only) |
CHROME_PATH | path | — | Path to Chrome binary (overrides auto-detection) |
SILBERCUECHROME_LICENSE_KEY | license key | — | Pro license key (e.g. SC-PRO-...) |
The core server and all 18 Free-tier tools are MIT licensed — see LICENSE. Use them however you want, commercially or otherwise.
Pro tools (3+ gated tools, parallel tab execution, ambient context, operator hooks, faster internals) require a paid license. The license validation code is in the separate private Pro repository.
Issues and pull requests welcome at github.com/Silbercue/silbercuechrome.
SilbercueChrome runs entirely on your machine. All browser automation happens locally via CDP. No telemetry, no remote calls, no data sent to any third party.
FAQs
SilbercueChrome MCP Server — Chrome browser automation via CDP
The npm package @silbercue/chrome receives a total of 2 weekly downloads. As such, @silbercue/chrome popularity was classified as not popular.
We found that @silbercue/chrome demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
arXiv now limits authors to two submissions a month as AI slop overwhelms moderators, delays good papers, and sparks debate over applying the limit to everyone.

Research
/Security News
A new GhostAction wave hits hundreds of GitHub repos, expanding CI/CD secret theft to cloud and AI credentials in source code and git history.

Research
/Security News
Tensorlake npm SDK version 0.5.144 was compromised in a ChainDrop / Shai-Hulud attack, delivering credential-stealing malware.