MCP server enabling AI agents to automate web browsing via Selenium WebDriver with navigation, interaction, and scripting tools.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Selenium MCP Server.
A Model Context Protocol (MCP) server that provides web automation capabilities through Selenium WebDriver. This server allows AI assistants to interact with web pages by providing tools for navigation, element interaction, taking screenshots, and more.
The default compact profile is documented in Compact Profile (Default).
The explicit --tool-profile legacy compatibility fallback provides the following 24
tools with their original names and call contracts.
navigate(url, timeout) - Navigate to a specified URL with Chrome browsercheck_page_ready(wait_seconds) - Check if the current page is fully loaded with optional waitlist_tabs() - List all browser tabs and identify the active tabopen_tab(url=None) - Open a new tab and optionally navigate it to a URLswitch_tab(handle) - Switch to a tab using a handle returned by list_tabsclose_tab(handle=None) - Close a specific tab, or the active tab when no handle is providedtake_screenshot(file_name, directory="tmp/selenium-screenshot") - Take a screenshot of the active tab. A descriptive file_name is required; .png is added when omitted. When the Agent knows its current workspace path, it should prefer an absolute directory inside that workspace so the destination does not depend on the MCP server cwd. Otherwise, omit directory to use the configured workspace default. Existing files receive a numeric suffix instead of being overwritten.record_video(action, file_name="", directory="tmp/selenium-video", include_address=false, window_handle="", max_duration_seconds=600, window_handles=[]) - start records one fixed window_handle, one MP4 following switches among 2-4 window_handles, or the active tab when both are omitted. The selectors are mutually exclusive. Always call stop immediately after the final browser action; the finite deadline auto-finalizes only as a fallback. Paths follow screenshot rules and include_address=true adds a synthetic URL header.get_an_element(text, class_name, id, attributes, element_type, in_iframe_id, in_iframe_name, return_html, xpath) - Get an element identified by various criteriaget_elements(text, class_name, id, attributes, element_type, in_iframe_id, in_iframe_name, page, page_size, return_html, xpath) - Get multiple elements with pagination supportget_direct_children(text, class_name, id, attributes, element_type, in_iframe_id, in_iframe_name, return_html, xpath, page, page_size) - Get all direct child nodes of an element with paginationclick_to_element(text, class_name, id, attributes, element_type, in_iframe_id, in_iframe_name, element_index, xpath) - Click on an element identified by various criteriaset_value_to_input_element(text, class_name, id, attributes, element_type, input_value, in_iframe_id, in_iframe_name, xpath) - Set a value to an input elementget_style_an_element(text, class_name, id, attributes, element_type, in_iframe_id, in_iframe_name, return_html, xpath, all_styles, computed_style) - Get style information for an elementrun_javascript_in_console(javascript_code) - Execute JavaScript without intentionally reading buffered console logsrun_javascript_and_get_console_output(javascript_code) - Drain old console logs, execute JavaScript, then return its value and newly captured console outputget_console_logs(log_level) - Read and consume browser console logs with optional level filteringget_network_logs(filter_url_by_text, only_errors_log) - Read and consume performance logs as network events with optional filteringget_response(request_id) - Retrieve a response body using a request ID from get_network_logslocal_storage_add(key, string_value, object_value, create_empty_string, create_empty_object) - Add or update a key-value pair in browser's local storagelocal_storage_read(key) - Read a value from browser's local storage by keylocal_storage_read_all() - Read all key-value pairs from browser's local storagelocal_storage_remove(key) - Remove a key-value pair from browser's local storagelocal_storage_remove_all() - Remove all key-value pairs from browser's local storageThe compact profile is the default and exposes the same browser capabilities through 11
tools and a smaller tools/list payload. It remains under evaluation; use
--tool-profile legacy when an existing client still depends on the original 24 names.
Legacy removal, if ever planned, will be announced as a separate breaking lifecycle
change. Legacy names are not advertised as compact aliases because aliases would keep
their schemas in Agent context.
Start it with:
All compact calls share one browser session and global active tab. A reliable default workflow is:
Use only fields relevant to an action. The 24 legacy names map to compact as follows:
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/phungxuananh-selenium-mcp-server)<a href="https://allmcps.com/mcp/phungxuananh-selenium-mcp-server"><img src="https://allmcps.com/api/badge/phungxuananh-selenium-mcp-server?style=directory" alt="Selenium MCP Server on AllMCPs" /></a>