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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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_clickB | 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. |
| 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 and sessionStorage for the current origin. |
| browser_export_trafficC | Export all captured network requests, responses, headers, POST data, and WebSocket frames to a structured JSON 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_infoA | Get comprehensive browser information: Chrome version, V8 version, User-Agent, protocol version, 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_dialogC | Handle or configure behavior for JavaScript dialogs (alert, confirm, prompt) with custom action and prompt text. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 64 tools
Several tools overlap significantly: browser_batch duplicates nearly every individual action, browser_block_urls and browser_block_resources both block resources, and browser_emulate_environment overlaps with browser_set_geolocation and browser_set_timezone. Descriptions help somewhat, but an agent could easily choose the wrong tool for a task.
All tools use the browser_ prefix with snake_case, which is highly consistent. Minor deviations exist (e.g., singular/plural mismatch in browser_get_cookies vs browser_set_cookie, and some tools are just nouns like browser_history).
64 tools is far too many for an MCP server; the rubric treats 50+ as an extreme mismatch. Many tools are redundant granular actions that could be consolidated, especially since browser_batch can perform most of them.
The surface covers navigation, tabs, interactions, network, storage, emulation, CDP, and extensions very thoroughly. A few gaps remain (e.g., no dedicated set_storage, wait_for_selector, or specific cookie deletion), but agents can work around them.