Stealth Browser MCP
Stealth browser automation for AI agents over MCP and the Chrome DevTools Protocol: navigation, network hooks, DOM extraction, and pixel-accurate UI cloning.
Stealth Browser MCP is an open-source mcp server by vibheksoni, written mainly in Python, with 3,309 GitHub stars and the MIT license. Its code was last updated Oct 26, 2026.
Scan summary: scanned Nov 5, 2026 at commit f14dce3. Seen able to run shell commands, run dynamic code, read environment and secrets, control a web browser. Scan policy
What Stealth Browser MCP can touch
- The server lists a tool that does this.Run shell commandsListed as a tool: execute_script
- The server lists a tool that does this.Run dynamic codeListed as a tool: add_script_to_evaluate_on_new_document
- Our checks did not find this. The tool may still do it.Read or write filesNot seen in this scan
- The server lists a tool that does this.Read environment and secretsListed as a tool: validate_browser_environment_tool
- The server lists a tool that does this.Control a web browserListed as a tool: spawn_browser
- The server lists a tool that does this.Connect to databasesListed as a tool: query_elements
- Our checks did not find this. The tool may still do it.Read or send messagesNot seen in this scan
- Our checks did not find this. The tool may still do it.Touch money or tradingNot seen in this scan
- Our checks did not find this. The tool may still do it.Connect to the internetNo connections seen while running
"Not seen" means our checks did not find it, and the tool may still do it. Covers commit f14dce3, Nov 5, 2026. See the scan policy.
Before you install Stealth Browser MCP
AgenticMart scanned Stealth Browser MCP on Nov 5, 2026 with automated checks for hidden code, known-malicious packages, leaked secrets and vulnerable dependencies. The result covers one commit under our scan policy, so review what access you give it and check any advisories shown here.
What it can access
- An MCP server is a program your AI app starts and talks to. A local one runs with your user's permissions: it can see the files, environment variables and network your account can.
- Based on its description and topics, it likely needs to control a web browser (visit sites, fill in and submit forms).
- Based on its description and topics, it likely needs to act on cloud infrastructure.
Before you install
- Run it in a separate browser profile without your logged-in accounts.
- Use a role with only the permissions it needs, never an admin key.
- Pin the version you reviewed instead of always installing the latest release.
- Read the tool list or scripts before the first run, and keep approval prompts on for actions that write, send or delete.
- Maintained by vibheksoni on GitHub, 3,309 stars and 409 forks. Popularity is not proof of safety.
- Last code change: Oct 26, 2026.
- Open-source license: MIT.
Tools Stealth Browser MCP exposes (101)
Listed by the server itself during our scan of commit f14dce3.
spawn_browserSpawn a new browser instance. Args: headless (bool): Run in headless mode. user_agent (Optional[str]): Custom user agent string. viewport_width (int): Viewport width in pixels. viewport_height (int): Viewport height in pixels. proxy (Optional[str]): Proxy server URL. browser
list_instancesList all active browser instances. Returns: List[Dict[str, Any]]: List of browser instances with their current state.
close_instanceClose a browser instance. Args: instance_id (str): Browser instance ID. Returns: bool: True if closed successfully.
get_instance_stateGet detailed state of a browser instance. Args: instance_id (str): Browser instance ID. Returns: Optional[Dict[str, Any]]: Complete state information.
navigateNavigate to a URL. Args: instance_id (str): Browser instance ID. url (str): URL to navigate to. wait_until (str): Wait condition - 'load', 'domcontentloaded', or 'networkidle'. timeout (int): Navigation timeout in milliseconds. referrer (Optional[str]): Referrer URL. Returns:
go_backNavigate back in history. Args: instance_id (str): Browser instance ID. Returns: bool: True if navigation was successful.
go_forwardNavigate forward in history. Args: instance_id (str): Browser instance ID. Returns: bool: True if navigation was successful.
reload_pageReload the current page. Args: instance_id (str): Browser instance ID. ignore_cache (bool): Whether to ignore cache when reloading. Returns: bool: True if reload was successful.
query_elementsQuery DOM elements. Args: instance_id (str): Browser instance ID. selector (str): CSS selector or XPath (starts with '//'). text_filter (Optional[str]): Filter by text content. visible_only (bool): Only return visible elements. limit (Optional[Any]): Maximum number of elements t
click_elementClick an element. Args: instance_id (str): Browser instance ID. selector (str): CSS selector or XPath. text_match (Optional[str]): Click element with matching text. timeout (int): Timeout in milliseconds. Returns: bool: True if clicked successfully.
type_textType text into an input field with trusted keyboard events. Every character produces keydown, keypress, input, and keyup events. Args: instance_id (str): Browser instance ID. selector (str): CSS selector. text (str): Text to type. clear_first (bool): Clear fiel
paste_textPaste text instantly into an input field. Args: instance_id (str): Browser instance ID. selector (str): CSS selector or XPath. text (str): Text to paste. clear_first (bool): Clear field before pasting. Returns: bool: True if pasted successfully.
press_keyPress a real key using trusted CDP key events. Sends Input.dispatchKeyEvent keyDown/keyUp pairs, so the page sees trusted events. Use this for control keys such as Enter, Tab, Escape, and the arrow keys in React-select, typeahead, and combobox widgets. Args: instance_id (str): Browser instance
file_uploadUpload allowed local files to a <input type="file"> element via CDP DOM.setFileInputFiles. Resolves the actual file input even if the selector matches a wrapper element (Workday/Ashby/LinkedIn often hide the real input behind a styled button). Refuses multi-file upload when the input lacks the `mul
select_optionSelect an option from a dropdown. Args: instance_id (str): Browser instance ID. selector (str): CSS selector for the select element. value (Optional[str]): Option value attribute. text (Optional[str]): Option text content. index (Optional[Any]): Option index (0-based). Can be st
get_element_stateGet complete state of an element. Args: instance_id (str): Browser instance ID. selector (str): CSS selector or XPath. Returns: Dict[str, Any]: Element state including attributes, style, position, etc.
wait_for_elementWait for an element to appear. Args: instance_id (str): Browser instance ID. selector (str): CSS selector or XPath. timeout (int): Timeout in milliseconds. visible (bool): Wait for element to be visible. text_content (Optional[str]): Wait for specific text content. Returns:
scroll_pageScroll the page. Args: instance_id (str): Browser instance ID. direction (str): 'down', 'up', 'left', 'right', 'top', or 'bottom'. amount (int): Pixels to scroll (ignored for 'top' and 'bottom'). smooth (bool): Use smooth scrolling. Returns: bool: True if scrolled successfully.
execute_scriptExecute JavaScript in page context. Args: instance_id (str): Browser instance ID. script (str): JavaScript code to execute. args (Optional[List[Any]]): Arguments to pass to the script. Returns: Dict[str, Any]: Script execution result.
get_page_contentGet page HTML and text content. Args: instance_id (str): Browser instance ID. include_frames (bool): Include iframe information. Returns: Dict[str, Any]: Page content including HTML, text, and metadata.
take_screenshotTake a screenshot of the page. The image is returned as MCP image content with metadata. It is scaled down, keeping its aspect ratio, when it is wider than max_width, longer than 8000 pixels on a side, or too large to send inline. The metadata reports the original size and the scale used. Args:
list_network_requestsList captured network requests. Args: instance_id (str): Browser instance ID. filter_type (Optional[str]): Filter by resource type (e.g., 'image', 'script', 'xhr'). Returns: Union[List[Dict[str, Any]], Dict[str, Any]]: List of network requests, or file metadata if response too large.
get_request_detailsGet detailed information about a network request. Args: request_id (str): Network request ID. Returns: Optional[Dict[str, Any]]: Request details including headers, cookies, and body.
get_response_detailsGet response details for a network request. Args: request_id (str): Network request ID. Returns: Optional[Dict[str, Any]]: Response details including status, headers, and metadata.
get_response_contentGet response body content. Args: instance_id (str): Browser instance ID. request_id (str): Network request ID. Returns: Optional[str]: Response body as text (base64 encoded for binary).
search_network_requestsSearch network requests with advanced filters and pagination. Args: instance_id (str): Browser instance ID. url_pattern (Optional[str]): Filter by URL pattern (substring match). method (Optional[str]): Filter by HTTP method. status_code (Optional[int]): Filter by response status cod
export_network_dataExport network data to JSON file. Args: instance_id (str): Browser instance ID. filepath (str): Path to save JSON file. Returns: bool: True if successful.
import_network_dataImport network data from JSON file. Args: instance_id (str): Browser instance ID. filepath (str): Path to JSON file. Returns: bool: True if successful.
set_network_capture_filtersSet resource type filters for network capture to reduce memory usage. Args: instance_id (str): Browser instance ID. include_types (Optional[List[str]]): Only capture these types (e.g., ['XHR', 'Fetch', 'Document']). exclude_types (Optional[List[str]]): Exclude these types (e.g., ['Image
get_network_capture_filtersGet current network capture filters. Args: instance_id (str): Browser instance ID. Returns: Dict[str, List[str]]: Current filters with 'include' and 'exclude' lists.
modify_headersModify request headers for future requests. Args: instance_id (str): Browser instance ID. headers (Dict[str, str]): Headers to add/modify. Returns: bool: True if modified successfully.
get_cookiesGet cookies for current page or specific URLs. Args: instance_id (str): Browser instance ID. urls (Optional[List[str]]): Optional list of URLs to get cookies for. Returns: List[Dict[str, Any]]: List of cookies.
set_cookieSet a cookie. Args: instance_id (str): Browser instance ID. name (str): Cookie name. value (str): Cookie value. url (Optional[str]): The request-URI to associate with the cookie. domain (Optional[str]): Cookie domain. path (str): Cookie path. secure (bool): Secure flag.
clear_cookiesClear cookies. Args: instance_id (str): Browser instance ID. url (Optional[str]): Optional URL to clear cookies for (clears all if not specified). Returns: bool: True if cleared successfully.
get_debug_viewGet comprehensive debug view with all logged errors and statistics. Args: max_errors (int): Maximum number of errors to include (default: 50). max_warnings (int): Maximum number of warnings to include (default: 50). max_info (int): Maximum number of info logs to include (default: 50).
clear_debug_viewClear all debug logs and statistics with timeout protection. Returns: bool: True if cleared successfully.
export_debug_logsExport debug logs to a file using the fastest available method with timeout protection. Args: filename (str): Name of the file to export to. max_errors (int): Maximum number of errors to export (default: 100). max_warnings (int): Maximum number of warnings to export (default: 100).
get_debug_lock_statusGet current debug logger lock status for debugging hanging exports. Returns: Dict[str, Any]: Lock status information.
list_tabsList all tabs for a browser instance. Args: instance_id (str): Browser instance ID. Returns: List[Dict[str, str]]: List of tabs with their details.
switch_tabSwitch to a specific tab by bringing it to front. Args: instance_id (str): Browser instance ID. tab_id (str): Target tab ID to switch to. Returns: bool: True if switched successfully.
Stealth Browser MCP is an open-source mcp server by vibheksoni, written mainly in Python. Stealth browser automation for AI agents over MCP and the Chrome DevTools Protocol: navigation, network hooks, DOM extraction, and pixel-accurate UI cloning.
At a glance
- Stars
- 3.3k
- Forks
- 409
- Language
- Python
- License
- MIT
- Created
- Aug 2025
- Last update
- Oct 26, 2026
- Type
- MCP Server
- Price
- Free
Topics
Questions about Stealth Browser MCP
What is Stealth Browser MCP?
Stealth browser automation for AI agents over MCP and the Chrome DevTools Protocol: navigation, network hooks, DOM extraction, and pixel-accurate UI cloning.
Who maintains Stealth Browser MCP?
Stealth Browser MCP is maintained by vibheksoni on GitHub (vibheksoni/stealth-browser-mcp). AgenticMart lists it from public repository data.
Is Stealth Browser MCP safe to use?
AgenticMart scanned Stealth Browser MCP on Nov 5, 2026 with automated checks for hidden code, known-malicious packages, leaked secrets and vulnerable dependencies. The result covers one commit under our scan policy, so review what access you give it and check any advisories shown here.
What license does Stealth Browser MCP use?
It is published under the MIT license.
Stealth Browser MCP alternatives
View more →Similar mcp servers in Browser Automation, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.
| Name | Stars | Licence | Last updated | Scan |
|---|---|---|---|---|
| Stealth Browser MCP (this page) vibheksoni | 3.3k | MIT | Oct 26, 2026 | Scanned, no flagged issues |
| Chrome Devtools MCP ChromeDevTools | 55k | Apache-2.0 | Nov 1, 2026 | Scanned, no flagged issues |
| Playwright MCP microsoft | 39k | Apache-2.0 | Oct 31, 2026 | Scanned, no flagged issues |
| MCP Chrome hangwin | 13k | MIT | Jan 6, 2026 | Scanned, no flagged issues |
| Browser Tools MCP AgentDeskAI | 7.3k | MIT | Oct 28, 2026 | Scanned, no flagged issues |
| MCP BrowserMCP | 7.3k | Apache-2.0 | Oct 30, 2026 | Scanned, no flagged issues |