A Python MCP server that brings Selenium WebDriver automation to Claude and other AI assistants — with built-in code generation for Python (pytest), Java TestNG, and JUnit 5 test scripts.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
tools
-
assert_attribute
Element attribute has expected value
-
assert_element_count
Count of matching elements equals expected
-
assert_element_not_visible
Element is hidden or absent
-
assert_element_visible
Element is visible
-
assert_page_contains
Page body contains a string
-
assert_text
Element text equals/contains
-
assert_title
Page title equals/contains
-
assert_url
URL equals/contains
-
check_accessibility
Built-in WCAG audit — alt text, labels, headings, keyboard access
-
clear_field
Clear input field
-
clear_healed_locators
Reset the self-healing cache
-
clear_mock_responses
Remove all active mock rules
-
click
Click with explicit wait
-
close_browser
Quit the browser
-
close_current_tab
Close the active tab and switch to the previous
-
compare_screenshot
Pixel diff against a saved baseline — visual regression
-
double_click
Double click
-
drag_and_drop
Drag source → target
-
emulate_device
Emulate a mobile device (iPhone, iPad, Pixel, Galaxy) via CDP
-
execute_script
Run JavaScript
-
fill_form
Fill multiple fields at once — auto-detects input/select/checkbox/radio
-
find_element
Find element, return tag/text/state
-
find_elements
Find all matching elements
-
find_shadow_element
Find element inside a shadow DOM
-
get_alert_text
Read the message from an alert
-
get_attribute
Get any attribute value
-
get_console_logs
Get browser console errors/warnings/info (Chrome)
-
get_current_url
Return current URL
-
get_healed_locators
View all self-healed selector mappings for the session
-
get_network_logs
Captured XHR/fetch requests — method, URL, status, timing
-
get_page_source
Return full HTML source
-
get_page_title
Return page title
-
get_table_data
Extract an HTML table as a formatted text grid
-
get_text
Get visible text
-
hover
Mouse hover
-
inspect_page
Discover all inputs, buttons, selects, links with best-fit CSS selectors
-
is_displayed
Check visibility
-
is_enabled
Check enabled state
-
list_windows
List all open tabs with index, title, and URL
-
mock_response
Stub fetch/XHR by URL pattern with a canned response
-
navigate
Go to a URL
-
open_new_tab
Open a new browser tab, optionally at a URL
-
refresh
Reload page
-
right_click
Context menu click
-
scroll_by
Scroll page by x/y pixels
-
scroll_to_bottom
Scroll page to the bottom
-
scroll_to_element
Scroll element into view
-
scroll_to_top
Scroll page to the top
-
select_option
Select from <select> by text, value, or index
-
send_keys
Send special keys (Tab, Enter, Escape, Ctrl+A, F5, …)
-
start_browser
Optional — Chrome auto-starts on first use. Use this to pick Firefox, enable headless, or set window size
-
switch_to_default_content
Return to the main page from a frame
-
switch_to_frame
Focus into an iframe by index, name, or selector
-
switch_to_window
Switch between tabs by index
-
take_screenshot
Capture page as an inline image
-
type_in_alert
Type into a JS prompt and accept
-
type_text
Clear + type into input
-
upload_file
Upload a file via <input type="file">
-
wait_for_element
Wait: visible / clickable / present / invisible
-
wait_for_network_idle
Wait until XHR/fetch traffic is quiet — essential for SPAs
code files: 17
filesystem 4
- fs seleniumboot-selenium-mcp-744bf57/src/selenium_mcp/server.py :10
from pathlib import Path - fs seleniumboot-selenium-mcp-744bf57/src/selenium_mcp/tools/_detect.py :15
from pathlib import Path - fs seleniumboot-selenium-mcp-744bf57/src/selenium_mcp/tools/browser_tools.py :542
driver.execute_script("window.open(arguments[0]);", url) - fs seleniumboot-selenium-mcp-744bf57/src/selenium_mcp/tools/codegen_tools.py :452
lines.append(f'{indent}self.driver.execute_script("window.open(\'{url}\');")')
network 1
- net seleniumboot-selenium-mcp-744bf57/src/selenium_mcp/tools/codegen_tools.py :7
from urllib.parse import urlparse
declared dependencies 2
- mcp@>=1.0.0
- selenium@>=4.6.0
jetbrains-plugin 1
- opaque (low) seleniumboot-selenium-mcp-744bf57/jetbrains-plugin/src/main/resources/META-INF/plugin.xml
bundled JetBrains plugin "io.github.seleniumboot.mcp" (seleniumboot-selenium-mcp-744bf57/jetbrains-plugin/src/main/resources/META-INF/plugin.xml) — presence-detected; review the plugin descriptor