New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@silbercue/chrome

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@silbercue/chrome

SilbercueChrome MCP Server — Chrome browser automation via CDP

npmnpm
Version
0.3.1
Version published
Weekly downloads
2
-77.78%
Maintainers
1
Weekly downloads
 
Created
Source

SilbercueChrome

GitHub Release npm version Free — 18 tools Pro — 21+ tools License: MIT Node >= 18

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.

Why SilbercueChrome?

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 getPlaywright MCPBrowser MCPclaude-in-chromebrowser-useSilbercueChrome
Hardest benchmark (24 tests, LLM-driven)24/24 (~570s)cannot finish24/24 (1140s)17/24 (~1049s)24/24 Pro: 555s · Free: 755-900s
Scripted benchmark (24 tests)————24/24 in ~20s
Multi-tab supportYesNo (single tab)YesPartialYes
ConnectionNew browserExtension bridgeExtensionSubprocessDirect CDP (pipe or WebSocket)
Ref systemPlaywright refsPlaywright refsCSS selectorsScreenshotsA11y-tree refs (stable across DOM changes)
Read pageScreenshot + DOMSnapshotDOM dumpScreenshot-heavyread_page — 10-30x fewer tokens
Drag & dropYesNoPartialNoYes (native CDP mouse events)
Shadow DOM + iframeYesYesPartialNoYes (with OOPIF session support)
Keyboard shortcutsYesYesPartialNoYes (press_key with real CDP keyboard events)
localStorage/cookiesYesNoPartialNoYes (via evaluate)
Multi-step plan execution————run_plan — server-side plan executor with variables, conditions, suspend/resume
Zero-config installYesYesBuilt-inYesYes (one claude mcp add line)

Where SilbercueChrome really shines

killer feat 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.

killer feat read_page with 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.

killer feat True multi-tab — virtual_desk, switch_tab, parallel tabs in run_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.

strong 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.

strong 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.

strong 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.

Quick Start

Install in Claude Code

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.

Install in Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "silbercuechrome": {
      "command": "npx",
      "args": ["-y", "@silbercue/chrome@latest"]
    }
  }
}

Install in other MCP clients

Any client that supports stdio MCP servers: npx -y @silbercue/chrome@latest with no arguments.

Uninstall

claude mcp remove --scope user silbercuechrome

Free vs Pro

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.

FreePro
Tools1821+
Page understandingread_pageread_page + dom_snapshot (spatial queries)
Tab managementnavigate, tab_status+ virtual_desk, switch_tab, parallel tabs in run_plan
Interactionclick, type, fill_form, press_key, scroll, file_upload, handle_dialogSame
Observationscreenshot, wait_for, observe, console_logs, network_monitorSame + ambient page context hooks
Scriptingrun_plan (sequential)run_plan (sequential + parallel + operator hooks)
Last resortevaluateevaluate + anti-pattern scanner hints
Benchmark score24/2424/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.

Tools

Reading & Observation

ToolDescription
read_pageAccessibility 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).
screenshotWebP capture, max 800px, <100KB. Use for visual verification only — you cannot use screenshots to drive click/type, refs come from read_page.
console_logsRetrieve browser console output with level/pattern filters
network_monitorStart/stop/query network requests with filtering
observeWatch DOM changes: collect (buffer changes over time) or until (wait for condition, then auto-click)
wait_forWait for element visible, network idle, or JS expression true
tab_statusActive tab's cached URL/title/ready/errors — mid-workflow sanity check

Interaction

ToolDescription
clickReal CDP mouse events (mouseMoved/Pressed/Released). Click by ref, selector, text, or x+y coordinates. Response includes DOM diff (NEW/REMOVED/CHANGED).
typeType into an input by ref/selector
fill_formFill a complete form in one call — text, <select>, checkbox, radio. Per-field status, partial errors don't abort.
press_keyReal CDP keyboard events — Enter, Escape, Tab, arrows, shortcuts (Ctrl+K, etc.)
scrollScroll page, element into view, or inside a specific container (sidebar, modal body)
file_uploadUpload file(s) to an <input type="file">
handle_dialogConfigure alert/confirm/prompt handling before triggering actions

Navigation

ToolDescription
navigateLoad 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.

Scripting

ToolDescription
run_planExecute a multi-step plan server-side. Variables ($varName), conditions (if), saveAs, error strategies (abort/continue/screenshot), suspend/resume. Parallel tabs require Pro.
configure_sessionView/set session defaults (tab, timeout) and accept auto-promote suggestions
evaluateExecute 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().

Pro tier (additional)

ToolDescription
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.

Benchmarks

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).

MCPPassedTime (LLM)Time (scripted)
SilbercueChrome Pro24/24555s21s
SilbercueChrome Free24/24755-900s20s
Playwright MCP24/24~570s—
claude-in-chrome24/241140s—
browser-use17/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.

Architecture

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:

  • Auto-Launch (default, zero-config) — starts Chrome as a child process via --remote-debugging-pipe, visible as a window, with all flags set for reliable screenshots and keyboard focus.
  • WebSocket (optional) — if you already run Chrome with --remote-debugging-port=9222, SilbercueChrome connects to that instead. Use this to control your own browser with its extensions and login sessions.

Requirements

  • Node.js >= 18
  • Google Chrome, Chromium, or any Chromium-based browser (auto-detected on macOS/Linux/Windows; override with CHROME_PATH)

Environment Variables

VariableValuesDefaultDescription
SILBERCUE_CHROME_AUTO_LAUNCHtrue / falsetrueAuto-launch Chrome if no running instance found
SILBERCUE_CHROME_HEADLESStrue / falsefalseOpt-in headless mode for CI/server environments
SILBERCUE_CHROME_PROFILEpath—Chrome user profile directory (auto-launch only)
CHROME_PATHpath—Path to Chrome binary (overrides auto-detection)
SILBERCUECHROME_LICENSE_KEYlicense key—Pro license key (e.g. SC-PRO-...)

License

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.

Contributing

Issues and pull requests welcome at github.com/Silbercue/silbercuechrome.

Privacy

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

Package last updated on 09 Apr 2026

Related posts