Fast Browser MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CDP_PORT | No | The Chrome DevTools Protocol port to connect to (default is 9222). | |
| PYTHONPATH | No | Path to the fast-browser-mcp directory (used to locate the Python module when not installed as a package). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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). |
| browser_launchC | Launch an isolated Chrome or Chromium browser instance with CDP remote debugging enabled. |
| browser_close_browserB | Terminate the managed browser instance if one was launched via browser_launch. |
| browser_wait_for_downloadB | Wait for a file download to complete in the download directory without .crdownload extension. |
| browser_export_sessionA | Export current session state (all cookies, localStorage, sessionStorage) as structured JSON. |
| browser_import_sessionC | Import session state (cookies, localStorage, sessionStorage) into the browser. |
| browser_list_tabsA | List all open browser pages/tabs with their title, URL, and ID. |
| browser_select_tabB | Select and connect to an open browser tab by query (matching URL or title). |
| browser_new_tabC | Open a new browser tab with the specified URL. |
| browser_close_tabA | Close a browser tab by target ID, or close current tab if ID is omitted. |
| browser_reloadB | Reload the current page. |
| 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. |
| 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'. |
| browser_evalB | Evaluate arbitrary JavaScript in the active page context and return the result. |
| browser_clickC | Click an element by its snapshot reference (@1, @2, ...) or CSS selector. |
| browser_fillB | Fill text into an input element by its snapshot reference (@1, @2, ...) or CSS selector. Auto-detects contenteditable and rich text editors. |
| browser_press_keyB | Press a keyboard key (e.g. Enter, Escape, Tab, Backspace, ArrowDown, ArrowUp, Space). |
| browser_scrollC | Scroll the page or scroll an element into view. |
| browser_mouseC | Advanced mouse operations: right-click, double-click, move, or drag-and-drop. |
| browser_get_htmlB | Extract full outerHTML of the entire document or save to file. |
| browser_print_to_pdfC | Print the current page to a PDF file. |
| browser_set_headersC | Inject custom HTTP headers into all outgoing requests from the browser. |
| browser_set_user_agentC | Override User-Agent string for the browser tab. |
| browser_block_urlsB | Block specific URL patterns (e.g. *.png, analytics, ads) to speed up page loading. |
| browser_set_cookieC | Set a cookie in the browser. |
| browser_clear_storageB | Clear browser cache and/or cookies. |
| browser_emulate_environmentC | Emulate geolocation coordinates and/or timezone. |
| browser_console_logsB | View captured JavaScript console logs (console.log, console.error, console.warn) and unhandled page exceptions. |
| browser_get_storageB | Inspect and dump all items from localStorage, sessionStorage, and optionally CacheStorage for the current origin. |
| 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. |
| browser_set_viewportC | Set browser viewport dimensions and mobile device emulation. |
| browser_upload_fileC | Upload one or more files to an element via CDP. |
| browser_network_requestsA | List captured HTTP/XHR/Fetch/WebSocket network requests for reverse engineering. Filter by type or URL pattern. |
| browser_network_get_responseA | Retrieve full request details (headers, POST payload) and response body (JSON/HTML) for a specific request ID. |
| browser_websocket_messagesB | List captured WebSocket frames (sent/received messages in real-time). Essential for game battle packets and real-time reverse engineering. |
| browser_get_cookiesB | Retrieve all cookies for the current tab (auth tokens, session IDs). |
| browser_navigateC | Navigate active tab to a URL. |
| browser_screenshotB | Capture screenshot of current page, entire scrollable page, or a specific element. |
| browser_windowB | Manage browser window: inspect bounds or set state ('normal', 'minimized', 'maximized', 'fullscreen') and dimensions/position. |
| browser_open_system_pageA | Open or switch to a Chrome system page: 'settings', 'extensions', 'downloads', 'history', 'bookmarks', 'flags', 'version', 'gpu', 'net-internals'. |
| browser_list_extensionsA | List all installed Chrome extensions with their IDs, names, versions, enabled status, and options URLs. |
| browser_extension_actionB | Perform management action on a Chrome extension: enable, disable, reload, open options, or open popup. |
| browser_system_infoB | Get comprehensive browser information: Chrome version, V8 version, User-Agent, protocol version, environment validation, and memory performance metrics. |
| browser_set_download_pathB | Set browser download directory and behavior (automatically allow downloads without popup prompt). |
| browser_grant_permissionsC | Grant or reset browser permissions (e.g. notifications, clipboardReadWrite, geolocation) for an origin. |
| browser_backB | Navigate backward in browser history (back button). |
| browser_forwardC | Navigate forward in browser history (forward button). |
| browser_historyB | Retrieve tab navigation history entries and current index. |
| browser_add_preload_scriptA | Inject custom JavaScript to run on every new document before page scripts load (hooks / Tampermonkey). |
| browser_remove_preload_scriptA | Remove a previously registered preload script by its identifier. |
| browser_stealth_modeB | Enable or disable comprehensive anti-detection stealth overrides (masks navigator.webdriver, plugins, languages). |
| browser_network_throttlingC | Emulate network profiles ('offline', 'slow3g', 'fast3g', '4g', 'none') or custom bandwidth and latency. |
| browser_set_media_themeC | Emulate system color scheme on page: 'dark', 'light', or 'no-preference'. |
| browser_set_page_zoomB | Adjust page zoom level (e.g. 0.5 for 50%, 1.0 for 100%, 1.5 for 150%). |
| browser_mute_tabA | Mute or unmute all media audio playback in the active tab. |
| browser_find_in_pageA | Find text on page (Ctrl+F): count matches, extract context snippets, and scroll to first match. |
| browser_clipboardC | Read or write to the system clipboard. |
| browser_get_indexeddbB | Inspect all IndexedDB databases and object stores for current origin. |
| browser_set_ignore_certificate_errorsC | Bypass or enforce SSL/TLS certificate warnings on HTTPS websites. |
| browser_wait_for_network_idleA | Wait until network is completely idle (no active in-flight requests) for the specified duration. |
| 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). |
| browser_cleanup_tabsA | Automatically close stale, blank (about:blank), or pattern-matching tabs to free browser memory and maintain cleanliness. |
| browser_performance_metricsA | Retrieve real-time browser performance metrics: JS heap memory usage (MB), DOM node count, layout count, and task duration. |
| browser_set_geolocationC | Override device GPS geolocation coordinates (latitude, longitude, accuracy). |
| browser_set_timezoneC | Override browser timezone (e.g. 'America/New_York', 'Europe/Kyiv', 'UTC'). |
| 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'). |
| browser_get_css_stylesB | Inspect element computed CSS styles and matched stylesheet rules by selector or @ref. |
| browser_new_isolated_tabA | Open a new tab in a fresh, completely isolated browser context (incognito mode: zero shared cookies, clean session storage). |
| browser_set_cpu_throttlingB | Emulate slower CPU speeds (1.0 = normal, 2.0 = 2x slowdown, 4.0 = 4x slowdown). |
| browser_handle_dialogB | Handle or configure behavior for JavaScript dialogs (alert, confirm, prompt) or dismiss DOM modal overlays and cookie banners. |
| browser_screencast_startC | Starts recording a screencast (video) of the target page and saves it as an MP4 file. |
| browser_screencast_stopB | Stops the active screencast recording. |
| browser_list_webmcp_toolsA | List all WebMCP tools exposed by the current webpage via navigator.modelContext.getTools(). |
| browser_execute_webmcp_toolC | Execute a WebMCP tool exposed by the current webpage. |
| 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. |
| browser_get_event_listenersB | Inspect native DOM event listeners (click, submit, keydown, change, etc.) attached to an element via CDP DOMDebugger without invoking handlers. |
| 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. |
| browser_observe_coverageC | Measure and observe precise V8 JavaScript code coverage during execution to discover which scripts and functions actually ran. |
| browser_start_coverageA | Start precise V8 code coverage measurement across subsequent browser interactions. |
| browser_stop_coverageB | Stop active V8 code coverage measurement and return executed scripts and functions. |
| browser_get_cache_storageC | Inspect Service Worker and PWA CacheStorage caches, cached endpoints, and responses via CDP. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| web-research | Systematic web browsing workflow: search, navigate, snapshot, and extract information. |
| form-automation | Guide for safely inspecting and filling complex multi-step web forms. |
| network-debugger | Inspect network API requests and WebSocket frames for reverse engineering. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Browser Tabs | List of all open tabs in the browser |
| Active Tab Snapshot | Token-efficient interactive element snapshot of the active page |
| Active Tab DOM | Raw HTML of the active page |
| Browser Console Logs | Console output logs from the active browser session |
| Browser Network Traffic | Captured HTTP/XHR network requests and traffic summary |
TDQS
Scored across 81 tools
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.
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.
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.
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.