Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.dashi96/chromium-bridge

NPM · CHROMIUM-BRIDGE · SCANNED AUG 3

MCP bridge between Chromium browsers (Arc, Vivaldi, Brave) and Claude Code: browser automation

Available components

+20 this week 66 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (106 of 110), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (106 of 110), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability78
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2115 tokens (~117/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · chromium-bridge

# add to Claude Code
claude mcp add dashi96-chromium-bridge -- npx -y chromium-bridge
# add to Codex CLI
codex mcp add dashi96-chromium-bridge -- npx -y chromium-bridge
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dashi96-chromium-bridge": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "chromium-bridge"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add dashi96-chromium-bridge --command npx --arg -y --arg chromium-bridge
# ~/.hermes/config.yaml
mcp_servers:
  dashi96-chromium-bridge:
    command: "npx"
    args: ["-y", "chromium-bridge"]
// mcp.json
{
  "mcpServers": {
    "dashi96-chromium-bridge": {
      "command": "npx",
      "args": [
        "-y",
        "chromium-bridge"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +61
    • Provenance: unverified → fail security
    • Known CVEs: unverified → partial security
    • Install scripts: unverified → pass security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • MCP protocol: unverified → pass functional
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Tool coverage: unverified → 100 functional
    • License: unverified → pass functional
    • First check of Tool coverage: 100 functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: excellent functional
    • First check of Schema quality: fail functional
    • Capabilities: Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet. functional
    • Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
    • Licence: MIT functional
  • 31 Jul 26 −1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −40
    • Install scripts: pass → unverified security
    • Provenance: fail → unverified security
    • Malware scan: pass → unverified security
    • Known CVEs: partial → unverified security
    • License: pass → unverified functional
    • Dependency health: partial → unverified functional
    • Maintenance: pass → unverified functional
    • Licence: MIT functional
  • 27 Jul 26 +21
    • Provenance: unverified → fail security
    • Known CVEs: unverified → partial security
    • Install scripts: unverified → pass security
    • Maintenance: unverified → pass functional
    • License: unverified → pass functional
    • Tool coverage: Tool coverage not yet verified: our sandbox run of this package did not complete, so we have no tool definitions to assess. functional
    • Schema quality: Schema quality not yet verified: our sandbox run of this package did not complete, so we have no schema to assess. functional
    • Licence: MIT functional
  • 26 Jul 26 25

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 106 packages

106 packages in the resolved dependency tree · 106 deprecated · 31 stale · 8 without a linked repository.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 18 exposed · ~2,115 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
browser_click ~113

Click an element via DOM .click() by CSS selector. Mutating. Works without the debugger — including on pages where CDP attach fails — but only fires the click handler, with no hover/focus/mousedown chain. If the page ignores it (custom dropdowns, canvas UI), use browser_computer left_click for a real mouse event.

NameTypeReqDescription
selectorstringyesCSS selector of the element to click (first match)
tabIdnumberyestab id from browser_tabs_list or browser_tab_create

No output schema declared.

No examples provided.

browser_computer ~409

Mouse, keyboard, and screenshots in a browser tab via the DevTools protocol; the tab does not need to be active (first use shows Chrome's "started debugging" info bar — that is expected). Actions: screenshot (viewport image in CSS pixels — its coordinates map 1:1 to click coordinates), zoom (magnified region [x0,y0,x1,y1]), left_click, right_click, double_click, triple_click, hover, left_click_drag (start_coordinate→coordinate), type (insert text at the current focus), key (space-separated combos, e.g. "cmd+a Backspace"), scroll (scroll_direction+scroll_amount), scroll_to (ref), wait (duration, max 10 s). Clicks, typing, and key presses are real input events and mutate page state; screenshot/zoom/hover/wait are read-only. Positions come from coordinate:[x,y] or from a ref returned by browser_read_page/browser_find — refs are more reliable than eyeballed coordinates.

NameTypeReqDescription
actionstringyeswhat to do; see the tool description for each action's required parameters
coordinatearray[x, y] in pixels
durationnumberseconds for wait (max 10)
modifiersstringclick modifiers: cmd, ctrl, alt, shift (joined with +)
refstringelement ref from browser_read_page/browser_find — alternative to coordinate
regionarray[x0, y0, x1, y1] for zoom
repeatnumberrepeat count for key
scroll_amountnumberwheel ticks, default 3
scroll_directionstringfor scroll; default down
start_coordinatearraydrag start for left_click_drag
tabIdnumberyestab id from browser_tabs_list or browser_tab_create
textstringtext for type, or key combos for key

No output schema declared.

No examples provided.

browser_console_messages ~125

Read a tab's console output (log/warn/error), newest 200 entries. Read-only unless clear=true, which empties the buffer after reading. Messages are captured only from the first time a CDP tool touches the tab — nothing is recorded retroactively; reload the page after attaching to capture its startup logs. Use pattern (regex) to cut noise.

NameTypeReqDescription
clearbooleanclear the buffer after reading
patternstringregex filter over the message text
tabIdnumberyestab id from browser_tabs_list or browser_tab_create

No output schema declared.

No examples provided.

browser_find ~104

Find elements by visible text, accessible name, or role, and return their refs for use with browser_computer and browser_form_input. Read-only. Cheaper than reading the whole accessibility tree when you know what you are looking for. An empty result means nothing matched — not an error.

NameTypeReqDescription
querystringyesvisible text, accessible name, or ARIA role to search for
tabIdnumberyestab id from browser_tabs_list or browser_tab_create

No output schema declared.

No examples provided.

browser_form_input ~164

Set a form control's value directly in the DOM: input/textarea/contenteditable (text), select (option value or label), checkbox/radio ("true"/"false"). Fires input/change events so frameworks pick the value up. Mutating. Target by CSS selector or ref. Reliable for plain form fields; rich editors (CodeMirror and the like) and custom comboboxes often ignore it — for those, click the field with browser_computer and type.

NameTypeReqDescription
refstringref from browser_read_page/browser_find
selectorstringCSS selector
tabIdnumberyestab id from browser_tabs_list or browser_tab_create
valuestringyesnew value; for checkbox/radio pass "true" or "false"

No output schema declared.

No examples provided.

browser_gif_start ~105

Start recording the tab into an animated GIF: a frame every intervalMs (default 800 ms); on long recordings the frame rate halves automatically so the whole scenario fits in ~80 frames. One recording per tab at a time; starting twice is an error. Nothing is saved until browser_gif_stop.

NameTypeReqDescription
intervalMsnumberframe interval in ms, default 800
tabIdnumberyestab id from browser_tabs_list or browser_tab_create

No output schema declared.

No examples provided.

browser_gif_stop ~89

Stop the recording started by browser_gif_start and write the animated GIF to an absolute path on the user's machine. Mutating: creates or overwrites that file. Errors if no recording is active or no frames were captured.

NameTypeReqDescription
pathstringyesabsolute path for the output .gif; overwritten if it exists
tabIdnumberyestab id the recording was started on

No output schema declared.

No examples provided.

browser_javascript ~117

Run arbitrary JavaScript in the page context and return the resolved value (await is supported; runs with the page's own permissions). Can read and mutate anything on the page — treat as mutating unless the code is clearly read-only. Never call alert/confirm/prompt: modal dialogs freeze all automation. Requires the CDP debugger.

NameTypeReqDescription
codestringyesJavaScript source; may use await — the value of the last expression is returned
tabIdnumberyestab id from browser_tabs_list or browser_tab_create

No output schema declared.

No examples provided.

browser_navigate ~105

Navigate an existing tab to a URL, or move through its history with url="back" / url="forward". Mutating: replaces the page currently shown in that tab. Returns when navigation is committed; dynamic pages may still be rendering — verify with browser_page_text or a screenshot before interacting.

NameTypeReqDescription
tabIdnumberyestab id from browser_tabs_list or browser_tab_create
urlstringyesabsolute URL, or "back"/"forward" for history

No output schema declared.

No examples provided.

browser_network_requests ~114

List a tab's network requests (method, URL, status), newest 200. Read-only unless clear=true, which empties the buffer. Captured only from the first CDP touch of the tab — reload the page after attaching to see its full traffic. urlPattern (regex) filters by URL.

NameTypeReqDescription
clearbooleanempty the buffer after reading
tabIdnumberyestab id from browser_tabs_list or browser_tab_create
urlPatternstringregex filter over the URL

No output schema declared.

No examples provided.

browser_page_text ~87

Get a tab's title, URL, and visible text (up to 80 kB) from the live DOM. Read-only and cheap — prefer it over a screenshot whenever layout does not matter. Content rendered to canvas or images is invisible to it; use a browser_computer screenshot for those.

NameTypeReqDescription
tabIdnumberyestab id from browser_tabs_list or browser_tab_create

No output schema declared.

No examples provided.

browser_read_page ~110

Accessibility tree of the page with a ref id per element; use refs with browser_computer (clicks, scroll_to) and browser_form_input. filter=interactive returns only clickable/editable elements — a compact map of the page. Read-only. Refs go stale after navigation or heavy DOM changes; call again to refresh.

NameTypeReqDescription
filterstringinteractive — only clickable/editable elements; default all
tabIdnumberyestab id from browser_tabs_list or browser_tab_create

No output schema declared.

No examples provided.

browser_resize_window ~99

Resize the browser window that contains the tab to width×height CSS pixels. Mutating and user-visible: it resizes the user's real window. Use for reproducing responsive layouts or framing a recording, and consider restoring the original size afterwards.

NameTypeReqDescription
heightnumberyeswindow height, CSS px
tabIdnumberyestab id from browser_tabs_list or browser_tab_create
widthnumberyeswindow width, CSS px

No output schema declared.

No examples provided.

browser_status ~59

Check whether the browser extension is connected to the bridge. Returns {connected: boolean}. Read-only, no side effects. Call it first in a session, or when other browser_* tools fail, to distinguish "extension not connected" from page-level errors.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

browser_tab_close ~68

Close a browser tab by id. Destructive: the tab and its unsaved page state are gone, with no undo. Close only tabs this session created, unless the user explicitly asked to close theirs.

NameTypeReqDescription
tabIdnumberyestab id from browser_tabs_list or browser_tab_create

No output schema declared.

No examples provided.

browser_tab_create ~80

Open a new browser tab and return its id and windowId. Mutating: adds a tab to the user's real browser and focuses it. Use when a fresh page is needed; to work with a page that is already open, find its id via browser_tabs_list instead.

NameTypeReqDescription
urlstringURL for the new tab (blank by default)

No output schema declared.

No examples provided.

browser_tabs_list ~59

List all open browser tabs with their id, title, and URL. Read-only. Use it to pick a tabId for the other browser_* tools; prefer reusing an existing tab over creating a new one when the target page is already open.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

browser_upload_file ~108

Put local files into an <input type="file"> selected by CSS selector, as if the user picked them in the file dialog (fires change). Mutating. files are absolute paths on the user's machine; the input must already exist in the DOM.

NameTypeReqDescription
filesarrayyesabsolute file paths on the user's machine
selectorstringyesCSS selector of the <input type="file">
tabIdnumberyestab id from browser_tabs_list or browser_tab_create

No output schema declared.

No examples provided.