Seleniumboot MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| start_browserA | Start a browser session. Optional — any tool will auto-start Chrome if no browser is open. Use this to choose Firefox, enable headless mode, or set a custom window size. |
| navigateB | Navigate the browser to a URL. |
| take_screenshotA | Take a screenshot and return it as base64. |
| get_page_sourceA | Return the current page HTML source. |
| get_page_titleB | Return the current page title. |
| get_current_urlA | Return the current URL. |
| close_browserA | Close and quit the browser session. |
| go_backA | Navigate back in browser history. |
| refreshB | Refresh the current page. |
| execute_scriptC | Execute JavaScript in the browser. |
| inspect_pageA | Discover all interactive elements on the current page — inputs, buttons, selects, checkboxes, textareas, and links — with their best CSS selectors and labels. Use this before writing locators so the AI knows exactly what's on the page. |
| find_elementB | Find an element and return its text, tag, and attributes. |
| find_elementsB | Find all matching elements and return their texts. |
| clickC | Click on an element. |
| type_textC | Clear and type text into an input field. |
| get_textC | Get the visible text content of an element. |
| get_attributeC | Get an attribute value from an element. |
| select_optionB | Select an option from a dropdown by visible text, value, or index. |
| hoverC | Hover the mouse over an element. |
| is_displayedC | Check if an element is visible on the page. |
| wait_for_elementC | Wait until an element is visible on the page. |
| scroll_to_elementC | Scroll the page to bring an element into view. |
| clear_fieldC | Clear the text in an input field. |
| fill_formA | Fill multiple form fields in a single call. Pass a map of CSS selector → value. Automatically handles text inputs, textareas, checkboxes (true/false), radio buttons, and dropdowns. Optionally clicks a submit button at the end. |
| accept_alertB | Accept (OK) a JavaScript alert, confirm, or prompt dialog. |
| dismiss_alertC | Dismiss (Cancel) a JavaScript confirm or prompt dialog. |
| switch_to_frameA | Switch focus into an iframe. Provide index (integer), name/id (string), or a CSS/XPath selector. |
| switch_to_default_contentA | Switch back to the main page content from inside a frame. |
| send_keysA | Send a key or key combination to the focused element (or a specific element if selector is given). Use key names like 'tab', 'enter', 'escape', 'up', 'down', 'f5', or combos like 'ctrl+a', 'shift+tab'. |
| upload_fileA | Upload a file by sending its absolute path to an element. |
| assert_titleA | Assert the page title equals or contains expected text. |
| assert_urlB | Assert the current URL equals or contains expected value. |
| assert_textB | Assert element text equals or contains expected value. |
| assert_element_visibleC | Assert an element is visible on the page. |
| assert_element_not_visibleB | Assert an element is NOT visible (hidden or absent). |
| assert_attributeC | Assert an element attribute has the expected value. |
| assert_page_containsC | Assert the full page source or visible text contains a string. |
| assert_element_countB | Assert number of elements matching selector equals expected count. |
| generateA | Generate test code or CI config from the recorded session. language: python (pytest) | java | csharp (NUnit) | gherkin (.feature + Java steps) | playwright (TS hints) | github_actions | jenkins | gitlab_ci. In a Selenium Boot project (see detect_selenium_boot) use language=java|gherkin, framework=selenium_boot. |
| detect_selenium_bootA | Detect whether the working directory is a Selenium Boot project. Call BEFORE generating Java; if detected=true use framework='selenium_boot'. |
| get_session_logA | Return the raw list of recorded actions in the current session. |
| clear_session_logA | Clear the recorded action log and start fresh. |
| migrateA | Analyze an existing Selenium Java project for migration to Selenium Boot (read-only, via selenium-boot-migrator). Returns the JSON report: what maps cleanly and what needs manual work. |
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 43 tools
Most tools have clearly distinct purposes: navigation, element interaction, assertions, alerts, frames, and code generation are well separated. There is minor overlap among visibility-related tools like is_displayed, wait_for_element, assert_element_visible, and assert_element_not_visible, but descriptions make the intended use distinguishable.
The set is consistently snake_case and mostly follows verb_noun conventions such as get_page_title, wait_for_element, and assert_element_visible. Minor deviations exist with single-verb names like click, hover, refresh, generate, and migrate, but the overall pattern remains readable and predictable.
At 43 tools, the surface is very large for a browser automation server and exceeds the threshold where tool selection becomes costly. Many operations are granular and useful, but the count is high enough that the set feels heavier than necessary for its apparent scope.
The server covers core browser automation, assertions, alerts, frames, file upload, JavaScript execution, form filling, session logging, and test/code generation. Minor gaps remain around window/tab switching, cookie management, drag-and-drop, and richer wait conditions, but most workflows are fully supported.