Connection check
local install
chrome-bridge
Your real, logged-in Chrome as an MCP server: 59 token-efficient web-dev tools. ChromeOS included.
Tools
59
GitHub stars
3
Installs / wk
77
Licence
MIT
Transport
stdio
Last checked
never
Tools & capabilities
59 toolsRead from the published package source — this server runs locally, so there is no endpoint to query. Names are taken from the code, not observed at runtime, and descriptions are often absent.
assert
from source
Assert a page condition, polling until timeout: element exists/visible (optionally with count or containing text), text on page, tab url/title. Patterns: substring, or Assert a page condition, polling until timeout: element exists/visible (optionally with count or containing text), text on page, tab url/title. Patterns: substring, or
audit
from source
One-call page audit, pick the kinds: accessibility, keyboard (tab order and focus issues), SEO, security headers, broken links, One-call page audit, pick the kinds: accessibility, keyboard (tab order and focus issues), SEO, security headers, broken links,
click
from source
Click an element by CSS selector or by a ref (n1, n2…) from get_interactives or navigate. A real pointer sequence: it can submit, Click an element by CSS selector or by a ref (n1, n2…) from get_interactives or navigate. A real pointer sequence: it can submit,
clipboard
from source
Read or write the system clipboard (text). Activates the tab first. Read or write the system clipboard (text). Activates the tab first.
cookie_audit
from source
Cookie and consent-banner audit: clears this site\ Cookie and consent-banner audit: clears this site\
create_tab
from source
Open a new tab, optionally at a URL, and make it the implicit target of later commands in this session. Open a new tab, optionally at a URL, and make it the implicit target of later commands in this session.
dismiss_overlays
from source
Dismiss cookie banners/modal overlays: OneTrust, Cookiebot, Usercentrics, then generic heuristic. Idempotent. Dismiss cookie banners/modal overlays: OneTrust, Cookiebot, Usercentrics, then generic heuristic. Idempotent.
drag_and_drop
from source
Drag an element onto another. html5 = DragEvent+DataTransfer; pointer = pointer/mouse events (sortable libraries). Drag an element onto another. html5 = DragEvent+DataTransfer; pointer = pointer/mouse events (sortable libraries).
element_screenshot
from source
Screenshot cropped to one element or to a viewport region (PNG), optionally enlarged. Read-only. Screenshot cropped to one element or to a viewport region (PNG), optionally enlarged. Read-only.
emulate_media
from source
Make the page believe it runs elsewhere, until reset or reload: prefers-color-scheme, prefers-reduced-motion, print mode, Make the page believe it runs elsewhere, until reset or reload: prefers-color-scheme, prefers-reduced-motion, print mode,
execute_js
from source
Run JavaScript in the page (MAIN world). Requires the extension\ Run JavaScript in the page (MAIN world). Requires the extension\
extract
from source
Read repeated non-tabular structures — product cards, list items, search results — as one record per item: Read repeated non-tabular structures — product cards, list items, search results — as one record per item:
extract_table
from source
Read a real <table> as JSON: thead cells become keys, each row an object. Read-only. Read a real <table> as JSON: thead cells become keys, each row an object. Read-only.
fill_form
from source
Batch fill form fields with React-compatible events. Handles input, select, checkbox, radio, and textarea. Batch fill form fields with React-compatible events. Handles input, select, checkbox, radio, and textarea.
find_setting
from source
Where is a setting in an unknown admin panel: follows the panel\ Where is a setting in an unknown admin panel: follows the panel\
find_text
from source
Find text on the page: parent selector, context, visibility, position per match. Attaches nearby interactive elements (with refs for click/type_text/hover) for the first visible ma… Find text on the page: parent selector, context, visibility, position per match. Attaches nearby interactive elements (with refs for click/type_text/hover) for the first visible match.
full_page_screenshot
from source
Full-page capture by scrolling: stitched segments of ~2 viewports (≤1568px), or one image per viewport with stitch=false. Full-page capture by scrolling: stitched segments of ~2 viewports (≤1568px), or one image per viewport with stitch=false.
get_frames
from source
List frames (main + iframes) with frameId, parent, URL — for the frame_id parameter of DOM tools. List frames (main + iframes) with frameId, parent, URL — for the frame_id parameter of DOM tools.
get_interactives
from source
List actionable elements (buttons, links, inputs, [role], [onclick]) with ready-to-use CSS selector, label, position, flags. Prefer this over dumping HTML to discover selectors. List actionable elements (buttons, links, inputs, [role], [onclick]) with ready-to-use CSS selector, label, position, flags. Prefer this over dumping HTML to discover selectors.
get_page_info
from source
Get page metadata: meta tags, scripts, stylesheets, links, and forms Get page metadata: meta tags, scripts, stylesheets, links, and forms
get_status
from source
Check bridge status: extension connection, server mode (primary/relay), port, version Check bridge status: extension connection, server mode (primary/relay), port, version
get_storage
from source
Read localStorage, sessionStorage or cookies of the current origin (type=all for every one). Read-only. Read localStorage, sessionStorage or cookies of the current origin (type=all for every one). Read-only.
get_tabs
from source
List every open tab with id, url, title, active flag and mine (created by this session). Read-only. Find a tab_id when the implicit List every open tab with id, url, title, active flag and mine (created by this session). Read-only. Find a tab_id when the implicit
handle_dialogs
from source
Auto-accept/dismiss future JS dialogs (alert/confirm/prompt), logging them. reset restores native dialogs and returns the log. Auto-accept/dismiss future JS dialogs (alert/confirm/prompt), logging them. reset restores native dialogs and returns the log.
handoff
from source
Hand the browser to the user for what only a person can do — 2FA, CAPTCHA, login, a choice — and wait: a banner in the page shows your Hand the browser to the user for what only a person can do — 2FA, CAPTCHA, login, a choice — and wait: a banner in the page shows your
hover
from source
Hover over an element (mouseenter/mouseover), by CSS selector or ref. Hover over an element (mouseenter/mouseover), by CSS selector or ref.
http_auth
from source
Set/clear credentials for HTTP Basic/Digest auth dialogs (browser-wide, in-memory only). Set/clear credentials for HTTP Basic/Digest auth dialogs (browser-wide, in-memory only).
http_request
from source
HTTP request sent from the browser, with the logged-in user\ HTTP request sent from the browser, with the logged-in user\
inject_css
from source
Inject a CSS rule into the page. Stays until the next navigation or reload, and re-injecting the same id Inject a CSS rule into the page. Stays until the next navigation or reload, and re-injecting the same id
manage_downloads
from source
List downloads, start one, or wait for the newest to finish. Files land in the browser Downloads folder, not on the server. List downloads, start one, or wait for the newest to finish. Files land in the browser Downloads folder, not on the server.
measure_spacing
from source
Measure the gap, overlap and distance in CSS pixels between two elements, with their margins and paddings. Measure the gap, overlap and distance in CSS pixels between two elements, with their margins and paddings.
modify_dom
from source
Change an element in the live DOM: setAttribute, removeAttribute, addClass, removeClass, setStyle, Change an element in the live DOM: setAttribute, removeAttribute, addClass, removeClass, setStyle,
monitor_network
from source
Monitor network requests. source=page: XHR/fetch hook (installed on first call); source=browser: all requests incl. static assets; source=websocket: connections and messages. forma… Monitor network requests. source=page: XHR/fetch hook (installed on first call); source=browser: all requests incl. static assets; source=websocket: connections and messages. format=har exports HAR 1.2.
move_tab
from source
Move an existing tab into another window (chrome.tabs.move), keeping id, history and page state; works on chrome-untrusted:// Move an existing tab into another window (chrome.tabs.move), keeping id, history and page state; works on chrome-untrusted://
navigate
from source
Navigate a Chrome tab to a URL. Returns a preview of interactive elements with refs usable in click/type_text/hover. Navigate a Chrome tab to a URL. Returns a preview of interactive elements with refs usable in click/type_text/hover.
network_rules
from source
Network interception, browser-wide, survives reloads until cleared: block, redirect, set/remove headers, stub a synthetic body, or record real API responses and replay them with fo… Network interception, browser-wide, survives reloads until cleared: block, redirect, set/remove headers, stub a synthetic body, or record real API responses and replay them with forced errors/latency (local helper; from HTTPS pages the stub host must be trusted).
press_key
from source
Send a key to the focused element (or to selector, focusing it first) as a real keydown/keypress/keyup Send a key to the focused element (or to selector, focusing it first) as a real keydown/keypress/keyup
query_dom
from source
Query DOM elements by CSS selector, returning structure, attributes, bounding rect, and computed styles. Query DOM elements by CSS selector, returning structure, attributes, bounding rect, and computed styles.
read_console
from source
Read console messages captured since page load, incl. uncaught errors and unhandled rejections. Read console messages captured since page load, incl. uncaught errors and unhandled rejections.
read_form
from source
Read a form as the user filled it — label, type, value, checked/selected, required-but-empty, browser validity — to check it against the Read a form as the user filled it — label, type, value, checked/selected, required-but-empty, browser validity — to check it against the
read_page
from source
Read the page as text (default), markdown, raw HTML, or accessibility tree. Read-only. markdown keeps headings, links and Read the page as text (default), markdown, raw HTML, or accessibility tree. Read-only. markdown keeps headings, links and
save_page
from source
Save the full page (DOM, styles, images) as an MHTML archive file on the server filesystem. Save the full page (DOM, styles, images) as an MHTML archive file on the server filesystem.
screenshot
from source
Screenshot of the visible viewport only (PNG), at the current scroll position, or one per viewport preset with presets. Read-only. Screenshot of the visible viewport only (PNG), at the current scroll position, or one per viewport preset with presets. Read-only.
screenshot_diff
from source
Visual regression: save a named baseline (viewport, element, or a PNG such as the design mockup) and compare later — changed-pixel % and a red-highlighted diff; or compare_urls: pr… Visual regression: save a named baseline (viewport, element, or a PNG such as the design mockup) and compare later — changed-pixel % and a red-highlighted diff; or compare_urls: production vs staging in this tab, pixels plus text diff, logged-in pages included. Baselines are in-memory (lost on service worker restart).
scroll
from source
Scroll. action=to: once to element/coordinates; action=until: repeatedly until element visible, network idle, or no new content (infinite scroll). Scroll. action=to: once to element/coordinates; action=until: repeatedly until element visible, network idle, or no new content (infinite scroll).
session_fixture
from source
Snapshot localStorage, sessionStorage and cookies of the current origin into a named fixture (a logged-in state, usually), Snapshot localStorage, sessionStorage and cookies of the current origin into a named fixture (a logged-in state, usually),
session_record
from source
Record the commands of this session as a replayable jsonl (chrome-bridge replay --file <path>); observe what the user does in a tab ( Record the commands of this session as a replayable jsonl (chrome-bridge replay --file <path>); observe what the user does in a tab (
set_geolocation
from source
Override navigator.geolocation with fixed coordinates (page-level patch). reset restores native. Override navigator.geolocation with fixed coordinates (page-level patch). reset restores native.
set_storage
from source
Write, delete or clear a localStorage/sessionStorage key, or a cookie with its path, domain and expiry. Write, delete or clear a localStorage/sessionStorage key, or a cookie with its path, domain and expiry.
tab_action
from source
Tab lifecycle: close, activate, reload, back, forward, discard, mute, duplicate, close_session (only tabs this session created). Tab lifecycle: close, activate, reload, back, forward, discard, mute, duplicate, close_session (only tabs this session created).
tile_windows
from source
Tile Chrome windows over one monitor in equal parts with no gap. Only Chrome windows. The monitor is the one of a Tile Chrome windows over one monitor in equal parts with no gap. Only Chrome windows. The monitor is the one of a
track_events
from source
Decode the tracking beacons the page fired (GA4, Meta Pixel, Google Ads, TikTok, LinkedIn, Pinterest, Microsoft Ads, GTM, Hotjar, Clarity) Decode the tracking beacons the page fired (GA4, Meta Pixel, Google Ads, TikTok, LinkedIn, Pinterest, Microsoft Ads, GTM, Hotjar, Clarity)
type_text
from source
Put text into an input, textarea or contenteditable, by selector or ref. Replaces the whole value through the Put text into an input, textarea or contenteditable, by selector or ref. Replaces the whole value through the
upload_file
from source
Set a file on input[type=file] from the server filesystem via DataTransfer (max 10MB). Set a file on input[type=file] from the server filesystem via DataTransfer (max 10MB).
viewport_resize
from source
Resize the Chrome **window** to a preset (mobile 375x812, tablet 768x1024, desktop 1440x900) or explicit dimensions; Resize the Chrome **window** to a preset (mobile 375x812, tablet 768x1024, desktop 1440x900) or explicit dimensions;
wait_for
from source
Block until a condition holds: element, text, function (JS expression; needs the Block until a condition holds: element, text, function (JS expression; needs the
watch
from source
Keep watching a page in the background — Keep watching a page in the background —
watch_dom
from source
Watch DOM mutations (MutationObserver). First call installs the watcher; later calls read accumulated mutations. Watch DOM mutations (MutationObserver). First call installs the watcher; later calls read accumulated mutations.
window_layout
from source