Server data from the Official MCP Registry
MCP bridge between Chromium browsers (Arc, Vivaldi, Brave) and Claude Code: browser automation
MCP bridge between Chromium browsers (Arc, Vivaldi, Brave) and Claude Code: browser automation
The Chromium Bridge MCP server is a well-architected browser automation tool with generally sound security practices. Authentication is properly scoped to localhost (127.0.0.1) with WebSocket Origin validation, and the server follows a client-server model with appropriate separation of concerns. However, there are several moderate concerns: the extension accepts arbitrary JavaScript execution (`browser_javascript` tool), file upload capabilities via the `browser_upload_file` tool, and limited input validation on some commands. Additionally, the chat panel's localStorage-based history could expose conversation data if the browser is compromised. Permissions align with the tool's purpose, but the capability to execute arbitrary JavaScript and upload files warrants user awareness. Package verification found 1 issue.
4 files analyzed · 10 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-dashi96-chromium-bridge": {
"args": [
"-y",
"chromium-bridge"
],
"command": "npx"
}
}
}From the project's GitHub README.
A bridge between your Chromium-based browser and Claude Code. The official
"Claude in Chrome" extension connects in some Chromium browsers (Arc, Vivaldi,
and others) but automation hangs: its tools are built on the tab groups API,
which is missing or broken there. This bridge uses only plain
chrome.tabs / chrome.scripting / chrome.debugger, so it works in any
Chromium browser that can load an extension.
Claude driving the browser through the bridge — opening Wikipedia, typing a search, and landing on the article:

Claude Code ⇄ (stdio MCP) ⇄ server/index.mjs ⇄ (WebSocket, 127.0.0.1:8929) ⇄ extension in the browser
⇅ (WebSocket /chat)
chat panel (popup on the extension icon)
extension/ — an MV3 extension: the service worker keeps a WebSocket to the
local server and executes its commands (tabs, navigation, page text,
screenshots, clicks, form filling). Clicking the icon opens the chat panel
(chat.html) — a popup anchored to the extension icon.server/ — an MCP server (stdio) that exposes the browser_* tools to
Claude Code and proxies them to the extension. It accepts WS connections
only from a chrome-extension://… Origin — regular web pages cannot connect.
It also serves the /chat channel: panel messages run through the
Claude Agent SDK (authenticated via the Claude Code login) with the same
browser_* tools; built-in tools (Bash, Read, etc.) are disabled.An equivalent of the "Claude in Chrome" side panel: a popup that opens when you
click the extension icon (no chrome.sidePanel — it is not supported
everywhere). The chat can see the browser: list tabs, read pages, take
screenshots, and click.

The panel UI is in English by default and switches to Russian automatically when the browser UI language is Russian. A language selector (Auto / English / Русский) in the bottom bar overrides auto-detection; the on-page badge follows the same choice.
resume. A turn that is in flight when the popup closes is interrupted.chromium-bridge MCP); otherwise the panel shows
"Server unavailable".~/.claude/settings.json (whatever was set via /model; SDK sessions do not
read Claude Code settings themselves, the server passes the model
explicitly), the other entries are hard overrides. Switching applies on the
fly (setModel) and is remembered. Startup override:
CHROMIUM_BRIDGE_CHAT_MODEL=sonnet in the server environment.
Port: CHROMIUM_BRIDGE_PORT (8929 by default).When Claude acts on a tab (from the panel or from Claude Code):
Both are hidden on screenshots so they don't end up in the frame and confuse
the model when working with coordinates. On pages where scripts cannot be
injected (chrome:// and the like) the indication is silently skipped.
Extension: clone this repository, open chrome://extensions (in the
right space/profile!), enable "Developer mode", click "Load unpacked", and
pick the extension/ folder.
MCP server — either way:
claude mcp add -s user chromium-bridge -- npx chromium-bridgecd server && npm install, then
claude mcp add -s user chromium-bridge -- node "$(pwd)/index.mjs".It loads at session start — restart your Claude Code session after installing the extension.
For other MCP clients, add this to your config:
{
"mcpServers": {
"chromium-bridge": {
"command": "npx",
"args": ["chromium-bridge"]
}
}
}
Check: the browser_status tool should return {"connected": true}.
| Tool | What it does |
|---|---|
browser_status | Check the connection to the extension |
browser_tabs_list | List tabs (id, title, URL) |
browser_tab_create / browser_tab_close | Open / close a tab |
browser_navigate | Navigate to a URL; back/forward for history |
browser_page_text | Page title, URL, and visible text |
browser_computer | Mouse/keyboard/screenshots via CDP: clicks by coordinates or ref, drag, hover, type, key combos, scroll, zoomed region screenshot, wait |
browser_read_page | Accessibility tree with ref ids (filter=interactive) |
browser_find | Find elements by text/role, returns refs |
browser_form_input | Set input/textarea/select/checkbox/contenteditable value by selector or ref |
browser_click | DOM click by CSS selector (plain .click()) |
browser_upload_file | Put files into an <input type="file"> |
browser_javascript | Run JS on the page (await supported) |
browser_console_messages | Tab console (with a regex filter) |
browser_network_requests | Tab network requests (with a regex filter) |
browser_resize_window | Window size |
browser_gif_start / browser_gif_stop | Record a GIF of the tab → file; on long recordings the frame rate halves automatically, so the whole scenario fits |
Everything except basic tab operations works through chrome.debugger (CDP):
screenshots don't require activating the tab, clicks are real mouse events,
and console/network are collected from the first CDP touch of the tab.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.