Skip to main content
Glama

⚡ Fast Browser MCP

Python 3.10+ License: MIT MCP Version Protocol Version

Universal, ultra-fast Model Context Protocol (MCP) server and command-line interface for browser automation powered directly by the Chrome DevTools Protocol (CDP).

Engineered specifically to eliminate the two biggest bottlenecks in AI web agents: round-trip LLM inference latency and context window token bloat.


🚀 Why Fast Browser MCP?

Traditional AI browser tools suffer from severe limitations:

  • Round-trip Latency: Each individual action (click, type, scroll) requires an entire round-trip to the language model (~3–5 seconds per step). A 5-step form fill can take 25–40 seconds.

  • Context Bloat: Dumping entire raw HTML trees consumes 10,000–50,000 tokens per step.

  • Blind to Shadow DOM: Chrome internal pages (chrome://settings, chrome://extensions) and modern Web Components are invisible to standard document.querySelector tools.

  • Anti-Bot Roadblocks: Headless browsers frequently trigger Cloudflare, Captchas, and bot challenges.

Fast Browser MCP solves all of this:

Feature

Fast Browser MCP

Standard Browser MCPs

Multi-Action Batching (browser_batch)

Local execution in ~500ms for 5–10 actions

20–30 seconds (1 LLM turn per action)

Snapshot Context Cost

< 150 tokens via numbered @ref tree

10,000–50,000 tokens (raw HTML/DOM)

Multimodal Screenshots (type: "image")

Native inline image content for Vision LLMs

❌ Text base64 or file path only

Dynamic Port Switching (browser_connect)

Switch on the fly (e.g. Electron apps, port 43275)

❌ Fixed single port

Auto-Launch & Standalone (--auto-launch)

Auto-discovers and launches Chromium if not running

❌ Crashes without manual start

MCP Resources & Prompts

browser://tabs, browser://active/snapshot, etc.

❌ Tools only

Shadow DOM & Web Components

Deep recursive traversal into all shadowRoot levels

❌ Incomplete or completely blind

Chrome System Pages

Full control over chrome://settings, chrome://extensions, etc.

❌ Unsupported

Extension Management

List, enable, disable, reload, and inspect extensions

❌ Unsupported

Real Browser Integration

Attaches to active Chrome session on port 9222 (bypasses Cloudflare)

Often isolated / detected headless

Reverse Engineering & Traffic

Live WebSocket frames, XHR request/response bodies, cookie extraction

Usually basic console logs only


Related MCP server: Browser-Debugger

🌟 Core Highlights

1. 🏎️ Ultra-Fast Batch Execution (browser_batch)

Execute an entire pipeline of actions locally in a single MCP round-trip:

{
  "steps": [
    {"action": "navigate", "url": "https://example.com/login"},
    {"action": "fill", "ref": "@1", "text": "agent@example.com"},
    {"action": "fill", "ref": "@2", "text": "secret123"},
    {"action": "click", "ref": "@3"},
    {"action": "wait", "ms": 500},
    {"action": "snapshot"}
  ]
}

Result: Executed entirely over direct local WebSocket in ~600ms total!

2. 🏷️ Token-Efficient Numbered @ref Snapshot

Captures a compact accessibility tree with numbered target handles (@1, @2, ...). Intelligently identifies non-textual UI elements:

  • Icons, SVG graphics, and title labels

  • CSS background-image sprites (e.g. bg:quest1.png)

  • ARIA roles, input states, and placeholder texts

  • Filters out internal presentation noise (cr-ripple, path, cr-icon inside buttons)

=== Page: Extensions ===
URL: chrome://extensions/

--- Interactive Elements (12 found) ---
@1 [button] "Search extensions"
@2 [input] [type=search]
@3 [button] [ checked]
@4 [button] "Load unpacked"
@5 [button] "Pack extension"
@6 [button] "Update"
@7 [menuitem] "My extensions" -> /
@8 [menuitem] "Keyboard shortcuts" -> /shortcuts
@9 [button] "Details"
@10 [button] "Remove"
@11 [button] "Reload"
@12 [button] [ checked]

3. 🌐 Full Browser Window & System Management

  • Window Bounds: Retrieve and set window states (normal, minimized, maximized, fullscreen) or exact pixel dimensions and coordinates.

  • System Pages: Direct navigation to chrome://settings, chrome://extensions, chrome://downloads, chrome://history, chrome://flags, chrome://version, and more.

  • Extension Controls: Query all installed Chrome extensions, enable/disable them, reload extensions, or open options and popup pages.

  • Download Management: Automatically configure download paths without interactive prompt dialogs.

  • Permissions: Programmatically grant or reset browser permissions (clipboardReadWrite, notifications, geolocation).

4. 🔬 Network & Real-Time WebSocket Inspection

  • Inspect intercepted HTTP/XHR/Fetch requests, headers, and POST payloads.

  • Fetch raw response bodies (JSON, HTML, binary).

  • Real-time WebSocket frame capture (sent / received), critical for game automation, real-time sync, and bot development.

  • One-click traffic dump export to structured JSON.


📦 Installation

Requirements

  • Python 3.10 or newer

  • Google Chrome, Chromium, or Brave

# Clone the repository
git clone https://github.com/kqlio67/fast-browser-mcp.git
cd fast-browser-mcp

# Install dependencies
pip install -r requirements.txt

# (Optional) Install editable package
pip install -e .

⚙️ Quickstart & Setup

1. Launch Chrome with Remote Debugging

Start your browser with --remote-debugging-port=9222:

Linux (Standard Desktop GUI):

google-chrome --remote-debugging-port=9222 &
# Or if using Chromium / Helium:
chromium --remote-debugging-port=9222 &

Linux (Completely Hidden Background Mode via Xvfb): Runs Chrome on a virtual display in memory — zero desktop windows, no keyboard/mouse focus stealing, full anti-bot evasion:

nohup xvfb-run -a google-chrome \
  --remote-debugging-port=9222 \
  --user-data-dir="/tmp/chrome_hidden_session" \
  --no-first-run \
  --no-default-browser-check \
  --disable-gpu > /dev/null 2>&1 &

macOS:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 &

Windows:

chrome.exe --remote-debugging-port=9222

(Optional: Use --user-data-dir="/tmp/chrome_dev_session" to run alongside your personal browser profile without conflicts).


2. Connect to Your MCP Client

Google Antigravity

agy mcp add --env PYTHONPATH=/path/to/fast-browser-mcp fast-browser python3 -m fast_browser.server

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "fast-browser": {
      "command": "python3",
      "args": ["-m", "fast_browser.server"],
      "env": {
        "PYTHONPATH": "/path/to/fast-browser-mcp"
      }
    }
  }
}

Cursor / Windsurf

Add Fast Browser MCP as an MCP stdio server executing:

  • Command: python3

  • Args: ["-m", "fast_browser.server"]

  • Environment: PYTHONPATH=/path/to/fast-browser-mcp


🛠️ Complete Tool Reference (81 Tools)

🚀 Process & Lifecycle Management

Tool

Description

browser_connect

Connect dynamically to any running browser or Electron instance by host and port (e.g. port 9222 or custom devtools port)

browser_launch

Launch a managed Chromium/Chrome instance (headless/headed, custom port, proxy, and user data directory)

browser_close_browser

Terminate and clean up the launched or managed browser process

browser_wait_for_download

Wait for a file download to complete in the download directory within a given timeout

browser_export_session

Export active session state (cookies, localStorage, sessionStorage, active URL) to JSON file or string

browser_import_session

Restore session state (cookies, localStorage, sessionStorage, navigation) from exported data

📑 Tab & Navigation

Tool

Description

browser_list_tabs

List all open browser tabs (ID, title, URL)

browser_select_tab

Switch active connection to a tab by title or URL query

browser_new_tab

Open a new tab with a given URL

browser_close_tab

Close a tab by target ID (or close current tab)

browser_navigate

Navigate active tab to a URL

browser_reload

Reload the page (with optional ignore_cache option)

browser_back

Navigate backward in browser history (back button)

browser_forward

Navigate forward in browser history (forward button)

browser_history

Retrieve full tab navigation history entries and current position

🎯 Interaction & Actions

Tool

Description

browser_click

Click an element by snapshot ref (@1, @2) or CSS selector (supports trusted: true for native CDP hardware input with isTrusted: true)

browser_fill

Type text into an input element by ref or CSS selector (supports paste: true for instant CDP text insertion, press_enter: true, and auto-detects contenteditable fields)

browser_fill_form

Fill multiple form elements in one fast batch execution

browser_press_key

Dispatch keyboard key event (Enter, Escape, Tab, ArrowDown, etc.)

browser_scroll

Scroll page by $(\Delta x, \Delta y)$ or scroll element into view

browser_mouse

Advanced mouse operations: double_click, right_click, move, drag_and_drop

browser_find_in_page

Find text on page (Ctrl+F): count matches, extract snippets, and auto-scroll

browser_clipboard

Read or write to the system clipboard (read, write)

browser_upload_file

Upload files natively into <input type='file'> elements via CDP

👁️ Inspection & Snapshots

Tool

Description

browser_snapshot

Compact, token-efficient A11y tree with @ref markers, Shadow DOM traversal, optional CSS selector scoping, and viewport filtering

browser_get_html

Extract full document outerHTML or save directly to a file

browser_screenshot

Capture viewport, element clip, or full-page scrollable screenshot (PNG/JPEG)

browser_screencast_start

Start capturing a screencast video of the browser viewport

browser_screencast_stop

Stop capturing screencast video and save the result

browser_print_to_pdf

Print page to PDF file with landscape/background options

browser_eval

Evaluate arbitrary JavaScript expressions in the page context

🛠️ DevTools Superpowers & Deep Inspection (v0.12.0)

Tool

Description

browser_cdp_send

Universal CDP Raw Dispatcher: Execute any of the 1,000+ Chrome DevTools Protocol commands directly (e.g. DOM.enable, Storage.getCookies, Emulation.setDeviceMetricsOverride, Security.enable, etc.)

browser_get_event_listeners

Native Event Listener Inspection: Inspect native DOM event listeners (click, submit, change, keydown, custom) via CDP DOMDebugger with handler source location and flags

browser_observe_coverage

V8 Code Coverage Profiling: Measure executed JS functions and code ranges in real time during an observation window

browser_start_coverage

Start precise V8 JavaScript code coverage collection across subsequent browser actions

browser_stop_coverage

Stop V8 coverage collection and return filtered executed functions and call counts

browser_compare_screenshots

Deterministic Visual Diffing: Compare two screenshots/PNGs with RGBA pixel delta, changed ratio, and bounding box without Vision LLM cost

browser_list_webmcp_tools

List WebMCP tools exposed by the web page

browser_execute_webmcp_tool

Execute a WebMCP tool exposed by the web page

browser_get_css_styles

Inspect computed styles, applied stylesheet rules, bounding rect, and attached event listeners for any element by @ref or CSS selector

browser_new_isolated_tab

Spawn a tab in a completely isolated incognito browser context (Target.createBrowserContext) with clean session, cookies, and cache

browser_set_cpu_throttling

Emulate CPU slowdown factors (1.0 = normal, 2.0 = 2x slowdown, 4.0 = 4x slowdown) for low-end device testing

browser_handle_dialog

Automate JavaScript dialogs (alert, confirm, prompt) by accepting, dismissing, or providing prompt responses without blocking execution

⚡ High-Speed Batch Runner & Resilience

Tool

Description

browser_batch

Ultra-fast local batch execution: runs an array of actions in a single round-trip without model latency. Supports coordinate clicking/hovering ((x, y)), duration/seconds wait, dismiss_banners, wait_for, and 100% action parity across all 100 CDP tools and actions.

browser_wait_for_network_idle

Wait until all in-flight network requests cease for a stable duration

browser_block_resources

Block images, video/audio media, web fonts, or tracking scripts/ads for up to 10x page load speedup

browser_block_urls

Block specific wildcard URL patterns (e.g. *.png, *analytics*, *ads*) to accelerate page load times

browser_cleanup_tabs

Automatically close blank (about:blank), stale, or pattern-matching tabs to free RAM

browser_performance_metrics

Live memory profiling: JS heap used (MB), DOM nodes, layouts, and task durations

📡 Network, WebSockets & Storage

Tool

Description

browser_network_requests

List captured HTTP/XHR/Fetch requests filtered by type or URL pattern (with optional secrets redaction)

browser_network_get_response

Inspect headers, POST payload, and retrieve server response bodies

browser_websocket_messages

Monitor real-time WebSocket frames (sent / received)

browser_get_cookies

Retrieve all cookies and authentication tokens for current origin

browser_set_cookie

Inject cookies into the browser context

browser_get_storage

Inspect and dump localStorage, sessionStorage, and cacheStorage

browser_get_cache_storage

Inspect PWA and Service Worker CacheStorage entries and cached responses

browser_get_indexeddb

Inspect all IndexedDB databases, version numbers, and object store names

browser_clear_storage

Clear browser cache and/or cookies

browser_export_traffic

Export captured HTTP & WebSocket traffic into JSON or standards-compliant HAR 1.2 format with automated secrets redaction

🖥️ Browser & System Management

Tool

Description

browser_window

Inspect or set window bounds (coordinates, width, height) and state (maximized, minimized, fullscreen, normal)

browser_open_system_page

Open or switch to Chrome system pages (settings, extensions, downloads, history, flags, etc.)

browser_list_extensions

Query all installed Chrome extensions (IDs, names, versions, enabled status)

browser_extension_action

Manage extensions: enable, disable, reload, options, popup

browser_add_preload_script

Inject custom JavaScript evaluating before page scripts load (hooks / Tampermonkey)

browser_remove_preload_script

Remove a previously registered preload script by identifier

browser_stealth_mode

Toggle anti-bot stealth overrides (navigator.webdriver, PluginArray with 5 PDF plugins, client hints, languages, permissions)

browser_network_throttling

Emulate network profiles (offline, slow3g, fast3g, 4g, none) or custom latency/bandwidth

browser_set_media_theme

Emulate color scheme on page: dark, light, no-preference

browser_set_page_zoom

Adjust page zoom scale (e.g. 0.75, 1.0, 1.25, 1.5)

browser_mute_tab

Mute or unmute all audio/video media playback on the active tab

browser_set_ignore_certificate_errors

Bypass or enforce SSL/TLS certificate warnings on HTTPS websites

browser_system_info

Inspect Chrome version, V8 engine, User-Agent, environment readiness, and memory metrics

browser_set_download_path

Set download folder and allow downloads without browser dialogs

browser_grant_permissions

Grant or reset permissions (clipboardReadWrite, notifications, geolocation)

browser_set_geolocation

Override device GPS coordinates (latitude, longitude, accuracy)

browser_set_timezone

Emulate local timezone (e.g. Europe/Kyiv, America/New_York)

browser_emulate_environment

Emulate geolocation coordinates and/or timezone simultaneously in a single call

browser_console_logs

View captured console logs (console.log, error, warn, unhandled exceptions)

browser_set_viewport

Configure viewport dimensions and mobile device emulation

browser_set_user_agent

Override User-Agent header

browser_set_headers

Inject custom HTTP headers into all outgoing requests


📦 Built-in MCP Resources & Prompts

Fast Browser MCP provides native Model Context Protocol (MCP) Resources and Prompts for seamless integration with MCP clients (Antigravity, Claude Desktop, Cursor, etc.).

📑 MCP Resources

Directly read live browser state as structured MCP resources without executing tool calls:

Resource URI

MIME Type

Description

browser://tabs

application/json

Real-time list of all open browser tabs (ID, title, URL, WebSocket debugger URL)

browser://active/snapshot

text/plain

Token-efficient formatted accessibility snapshot of the currently focused tab

browser://active/dom

text/html

Complete raw HTML document of the active page

browser://console

application/json

Captured browser console output (logs, warnings, errors, exceptions)

browser://network

application/json

Ring-buffer captured HTTP/XHR network requests and traffic summary

💡 MCP Prompts

Pre-configured agent workflows:

Prompt Name

Description

web-research

Systematic web browsing workflow: search, navigate, snapshot, and extract information

form-automation

Structured guide for safely inspecting, validating, and filling multi-step web forms

network-debugger

Guided workflow to inspect network API requests and WebSocket frames for reverse engineering


💻 CLI Usage

Fast Browser MCP also includes a complete standalone CLI for manual operations and shell scripting:

# List open tabs (optionally with a persistent profile)
python3 -m fast_browser.cli --profile my_session list-tabs

# Take a snapshot of a tab
python3 -m fast_browser.cli --tab mmobitva snapshot

# Navigate history (Back & Forward)
python3 -m fast_browser.cli back
python3 -m fast_browser.cli forward
python3 -m fast_browser.cli history

# Activate stealth mode (hide automation markers)
python3 -m fast_browser.cli stealth

# Emulate network conditions (Slow 3G, Offline, or reset)
python3 -m fast_browser.cli throttling slow3g
python3 -m fast_browser.cli throttling none

# Emulate dark mode theme
python3 -m fast_browser.cli theme dark

# Adjust page zoom level (125%)
python3 -m fast_browser.cli zoom 1.25

# Mute tab audio
python3 -m fast_browser.cli mute

# Search text on page (Ctrl+F)
python3 -m fast_browser.cli find "SearchQuery"

# Read/write clipboard
python3 -m fast_browser.cli clipboard --write "Hello from Fast Browser"
python3 -m fast_browser.cli clipboard

# Inspect IndexedDB databases
python3 -m fast_browser.cli indexeddb

# Inspect browser window geometry
python3 -m fast_browser.cli window

# Maximize browser window
python3 -m fast_browser.cli window --state maximized

# Open Chrome Settings or Extensions
python3 -m fast_browser.cli system-page settings
python3 -m fast_browser.cli extensions

# Send raw Chrome DevTools Protocol command ("God Mode")
python3 -m fast_browser.cli cdp-send Page.getNavigationHistory

# Inspect computed CSS styles of an element
python3 -m fast_browser.cli css-styles --ref @1
python3 -m fast_browser.cli css-styles --selector "button.primary"

# Create a tab in an isolated incognito browser context
python3 -m fast_browser.cli isolated-tab https://example.com

# Emulate 4x CPU slowdown
python3 -m fast_browser.cli cpu-throttling 4.0

# Configure JavaScript dialog handling
python3 -m fast_browser.cli dialog --action accept

# Run high-speed batch actions
python3 -m fast_browser.cli --tab mytab batch '[
  {"action": "stealth", "enabled": True},
  {"action": "theme", "theme": "dark"},
  {"action": "snapshot"},
  {"action": "click", "ref": "@2"},
  {"action": "wait", "ms": 200},
  {"action": "snapshot"}
]'

🧪 Testing

The automated test suite runs in a 100% isolated headless background process on an ephemeral dynamic port with a temporary user data directory. It never touches your personal browser session (port 9222), never opens or closes visible desktop tabs, and never steals mouse or keyboard focus:

PYTHONPATH=. python3 -m unittest discover -s tests

(Optional: To explicitly run tests against an existing custom port, set the CDP_PORT environment variable: CDP_PORT=9222 python3 -m unittest discover -s tests).


📄 License

This project is licensed under the MIT License.

Available Tools

81 tools
browser_add_preload_scriptA

Inject custom JavaScript to run on every new document before page scripts load (hooks / Tampermonkey).

Inputs: source (required).

browser_backB

Navigate backward in browser history (back button).

Inputs: delta.

browser_batchB

ULTRA-FAST MULTI-ACTION BATCH EXECUTION: Execute a sequence of browser actions in a single round-trip without model latency. Supports: 'navigate', 'click', 'double_click', 'right_click', 'drag_and_drop', 'mouse_move', 'fill', 'press_key', 'scroll', 'select_option', 'hover', 'wait', 'eval', 'extract', 'snapshot', 'screenshot' (with full_page and clip selector support), 'pdf', 'get_html', 'set_viewport', 'set_user_agent', 'set_headers', 'block_urls', 'set_geolocation', 'set_timezone', 'get_storage', 'clear_cache', 'clear_cookies', 'set_cookie', 'export_traffic', 'console_logs', 'upload_file', 'window', 'system_page', 'extensions', 'extension_action', 'set_download_path', 'grant_permissions', 'system_info'.

Inputs: steps (required).

browser_block_resourcesB

Block heavy resources (images, video/audio media, web fonts, tracking scripts/ads) or custom URLs to dramatically accelerate page load speed (up to 10x).

Inputs: block_ads, block_fonts, block_media, block_images, +1 more.

browser_block_urlsB

Block specific URL patterns (e.g. *.png, analytics, ads) to speed up page loading.

Inputs: patterns (required).

browser_cdp_sendB

UNIVERSAL RAW CDP (GOD MODE): Send any raw Chrome DevTools Protocol command directly with custom parameters (e.g. 'DOM.getBoxModel', 'CSS.enable', 'Memory.getDOMCounters', 'Tracing.start', 'Fetch.enable').

Inputs: method (required), params, timeout, session_id.

browser_cleanup_tabsA

Automatically close stale, blank (about:blank), or pattern-matching tabs to free browser memory and maintain cleanliness.

Inputs: close_blank, keep_current, url_patterns.

browser_clear_storageB

Clear browser cache and/or cookies.

Inputs: clear_cache, clear_cookies.

browser_clickC

Click an element by its snapshot reference (@1, @2, ...) or CSS selector.

Inputs: ref, trusted, selector, wait_for.

browser_clipboardC

Read or write to the system clipboard.

Inputs: text, action.

browser_close_browserB

Terminate the managed browser instance if one was launched via browser_launch.

Inputs: no named parameters.

browser_close_tabA

Close a browser tab by target ID, or close current tab if ID is omitted.

Inputs: target_id.

browser_compare_screenshotsA

Deterministic visual comparison of two screenshots or PNG images. Calculates changed pixel count, changed ratio, and bounding box without Vision LLM overhead.

Inputs: image1 (required), image2 (required), diff_output_path, channel_threshold.

browser_connectA

Dynamically switch or reconnect CDP connection to a specified host and port (e.g. switch between Chrome on 9222 and Antigravity IDE on 43275).

Inputs: port (required), host.

browser_console_logsB

View captured JavaScript console logs (console.log, console.error, console.warn) and unhandled page exceptions.

Inputs: limit, log_type.

browser_emulate_environmentC

Emulate geolocation coordinates and/or timezone.

Inputs: latitude, longitude, timezone_id.

browser_evalB

Evaluate arbitrary JavaScript in the active page context and return the result.

Inputs: script (required).

browser_execute_webmcp_toolC

Execute a WebMCP tool exposed by the current webpage.

Inputs: name (required), arguments.

browser_export_sessionA

Export current session state (all cookies, localStorage, sessionStorage) as structured JSON.

Inputs: save_path.

browser_export_trafficB

Export all captured network requests, responses, headers, POST data, and WebSocket frames to a structured JSON file or standards-compliant HAR 1.2 file.

Inputs: file_path (required), format, redact_sensitive_headers.

browser_extension_actionB

Perform management action on a Chrome extension: enable, disable, reload, open options, or open popup.

Inputs: action (required), extension_id (required).

browser_fillB

Fill text into an input element by its snapshot reference (@1, @2, ...) or CSS selector. Auto-detects contenteditable and rich text editors.

Inputs: text (required), ref, clear, paste, +2 more.

browser_fill_formA

Fill out multiple form elements (inputs, selects, checkboxes, radios) at once. Prefer this tool over multiple individual 'fill' or 'click' calls when interacting with forms. It is significantly faster and reduces turn count.

Inputs: elements (required).

browser_find_in_pageA

Find text on page (Ctrl+F): count matches, extract context snippets, and scroll to first match.

Inputs: query (required), scroll_to_first.

browser_forwardC

Navigate forward in browser history (forward button).

Inputs: delta.

browser_get_cache_storageC

Inspect Service Worker and PWA CacheStorage caches, cached endpoints, and responses via CDP.

Inputs: limit, cache_name, include_response_body.

browser_get_cookiesB

Retrieve all cookies for the current tab (auth tokens, session IDs).

Inputs: no named parameters.

browser_get_css_stylesB

Inspect element computed CSS styles and matched stylesheet rules by selector or @ref.

Inputs: ref, selector.

browser_get_event_listenersB

Inspect native DOM event listeners (click, submit, keydown, change, etc.) attached to an element via CDP DOMDebugger without invoking handlers.

Inputs: ref, depth, selector, ancestors.

browser_get_htmlB

Extract full outerHTML of the entire document or save to file.

Inputs: save_path.

browser_get_indexeddbB

Inspect all IndexedDB databases and object stores for current origin.

Inputs: no named parameters.

browser_get_storageB

Inspect and dump all items from localStorage, sessionStorage, and optionally CacheStorage for the current origin.

Inputs: storage_type.

browser_grant_permissionsC

Grant or reset browser permissions (e.g. notifications, clipboardReadWrite, geolocation) for an origin.

Inputs: reset, origin, permissions.

browser_handle_dialogB

Handle or configure behavior for JavaScript dialogs (alert, confirm, prompt) or dismiss DOM modal overlays and cookie banners.

Inputs: action, prompt_text.

browser_historyB

Retrieve tab navigation history entries and current index.

Inputs: no named parameters.

browser_import_sessionC

Import session state (cookies, localStorage, sessionStorage) into the browser.

Inputs: path, session_data.

browser_launchC

Launch an isolated Chrome or Chromium browser instance with CDP remote debugging enabled.

Inputs: port, headless, profile_name, user_data_dir.

browser_list_extensionsA

List all installed Chrome extensions with their IDs, names, versions, enabled status, and options URLs.

Inputs: no named parameters.

browser_list_tabsA

List all open browser pages/tabs with their title, URL, and ID.

Inputs: no named parameters.

browser_list_webmcp_toolsA

List all WebMCP tools exposed by the current webpage via navigator.modelContext.getTools().

Inputs: no named parameters.

browser_mouseC

Advanced mouse operations: right-click, double-click, move, or drag-and-drop.

Inputs: action (required), x, y, ref, +3 more.

browser_mute_tabA

Mute or unmute all media audio playback in the active tab.

Inputs: muted.

browser_navigateC

Navigate active tab to a URL.

Inputs: url (required).

browser_network_get_responseA

Retrieve full request details (headers, POST payload) and response body (JSON/HTML) for a specific request ID.

Inputs: request_id (required).

browser_network_requestsA

List captured HTTP/XHR/Fetch/WebSocket network requests for reverse engineering. Filter by type or URL pattern.

Inputs: limit, filter_type, url_pattern.

browser_network_throttlingC

Emulate network profiles ('offline', 'slow3g', 'fast3g', '4g', 'none') or custom bandwidth and latency.

Inputs: latency, offline, profile, upload_throughput, +1 more.

browser_new_isolated_tabA

Open a new tab in a fresh, completely isolated browser context (incognito mode: zero shared cookies, clean session storage).

Inputs: url.

browser_new_tabC

Open a new browser tab with the specified URL.

Inputs: url.

browser_observe_coverageC

Measure and observe precise V8 JavaScript code coverage during execution to discover which scripts and functions actually ran.

Inputs: detailed, call_count, url_filter, duration_ms, +1 more.

browser_open_system_pageA

Open or switch to a Chrome system page: 'settings', 'extensions', 'downloads', 'history', 'bookmarks', 'flags', 'version', 'gpu', 'net-internals'.

Inputs: page (required).

browser_performance_metricsA

Retrieve real-time browser performance metrics: JS heap memory usage (MB), DOM node count, layout count, and task duration.

Inputs: no named parameters.

browser_press_keyB

Press a keyboard key (e.g. Enter, Escape, Tab, Backspace, ArrowDown, ArrowUp, Space).

Inputs: key (required).

browser_print_to_pdfC

Print the current page to a PDF file.

Inputs: save_path (required), landscape.

browser_reloadB

Reload the current page.

Inputs: ignore_cache.

browser_remove_preload_scriptA

Remove a previously registered preload script by its identifier.

Inputs: identifier (required).

browser_screencast_startC

Starts recording a screencast (video) of the target page and saves it as an MP4 file.

Inputs: file_path (required).

browser_screencast_stopB

Stops the active screencast recording.

Inputs: no named parameters.

browser_screenshotB

Capture screenshot of current page, entire scrollable page, or a specific element.

Inputs: selector, full_page, save_path.

browser_scrollC

Scroll the page or scroll an element into view.

Inputs: ref, delta_x, delta_y, selector.

browser_select_tabB

Select and connect to an open browser tab by query (matching URL or title).

Inputs: query.

browser_set_cpu_throttlingB

Emulate slower CPU speeds (1.0 = normal, 2.0 = 2x slowdown, 4.0 = 4x slowdown).

Inputs: rate (required).

browser_set_download_pathB

Set browser download directory and behavior (automatically allow downloads without popup prompt).

Inputs: download_path (required), behavior.

browser_set_geolocationC

Override device GPS geolocation coordinates (latitude, longitude, accuracy).

Inputs: latitude (required), longitude (required), accuracy.

browser_set_headersC

Inject custom HTTP headers into all outgoing requests from the browser.

Inputs: headers (required).

browser_set_ignore_certificate_errorsC

Bypass or enforce SSL/TLS certificate warnings on HTTPS websites.

Inputs: ignore.

browser_set_media_themeC

Emulate system color scheme on page: 'dark', 'light', or 'no-preference'.

Inputs: theme (required).

browser_set_page_zoomB

Adjust page zoom level (e.g. 0.5 for 50%, 1.0 for 100%, 1.5 for 150%).

Inputs: scale (required).

browser_set_timezoneC

Override browser timezone (e.g. 'America/New_York', 'Europe/Kyiv', 'UTC').

Inputs: timezone (required).

browser_set_user_agentC

Override User-Agent string for the browser tab.

Inputs: user_agent (required).

browser_set_viewportC

Set browser viewport dimensions and mobile device emulation.

Inputs: width (required), height (required), mobile, device_scale_factor.

browser_snapshotB

Capture a compact, token-efficient snapshot of the active page showing interactive elements with numbered references (@1, @2, ...), smart labels (icons/images/CSS backgrounds), headings, and accessible iframes. Supports scoping to a CSS selector and viewport-only filtering.

Inputs: selector, in_viewport, max_elements.

browser_start_coverageA

Start precise V8 code coverage measurement across subsequent browser interactions.

Inputs: detailed, call_count.

browser_stealth_modeB

Enable or disable comprehensive anti-detection stealth overrides (masks navigator.webdriver, plugins, languages).

Inputs: enabled.

browser_stop_coverageB

Stop active V8 code coverage measurement and return executed scripts and functions.

Inputs: url_filter, only_executed.

browser_system_infoB

Get comprehensive browser information: Chrome version, V8 version, User-Agent, protocol version, environment validation, and memory performance metrics.

Inputs: no named parameters.

browser_upload_fileC

Upload one or more files to an element via CDP.

Inputs: files (required), selector (required).

browser_wait_for_downloadB

Wait for a file download to complete in the download directory without .crdownload extension.

Inputs: directory (required), timeout, filename_pattern.

browser_wait_for_network_idleA

Wait until network is completely idle (no active in-flight requests) for the specified duration.

Inputs: timeout, idle_time.

browser_websocket_messagesB

List captured WebSocket frames (sent/received messages in real-time). Essential for game battle packets and real-time reverse engineering.

Inputs: limit, direction.

browser_windowB

Manage browser window: inspect bounds or set state ('normal', 'minimized', 'maximized', 'fullscreen') and dimensions/position.

Inputs: top, left, state, width, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 81 tools

    Disambiguation3/5

    Most tools have clearly distinct browser-specific purposes, but there are notable overlaps: browser_batch duplicates dozens of individual actions, browser_emulate_environment overlaps with browser_set_geolocation and browser_set_timezone, and browser_block_urls overlaps with browser_block_resources. Tab cleanup/close and storage inspection tools also have fuzzy boundaries, though descriptions generally help.

    Naming Consistency4/5

    All 81 tools use the browser_ prefix with snake_case, which is highly consistent. A few tools deviate from the strict verb_noun pattern (e.g., browser_window, browser_history, browser_console_logs), but the overall convention is clear and predictable.

    Tool Count1/5

    With 81 tools, the surface is extremely large for a browser automation server. The count far exceeds a well-scoped set, and the mega browser_batch tool plus many granular duplicates make the surface unwieldy rather than focused.

    Completeness5/5

    The tool set covers an exceptionally broad browser automation lifecycle: navigation, tabs, DOM interaction, network inspection, storage, cookies, screenshots, PDF, CDP, extensions, WebMCP, coverage, and performance. There are no obvious gaps for the stated browser-automation purpose.

    Maintenance

    ActivityMaintained
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers