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
} |
| experimental | {} |
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. |
| navigateC | Navigate the browser to a URL. |
| take_screenshotB | Take a screenshot and return it as base64. |
| get_page_sourceA | Return the current page HTML source. |
| get_page_titleA | 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. |
| go_forwardB | Navigate forward in browser history. |
| refreshA | Refresh the current page. |
| execute_scriptD | Execute JavaScript in the browser. |
| switch_to_windowC | Switch to a browser window/tab by index. |
| open_new_tabA | Open a new browser tab, optionally navigating to a URL. |
| close_current_tabA | Close the currently active tab and switch to the previous one. |
| list_windowsA | List all open browser tabs/windows with their index, title, and URL. |
| scroll_to_topA | Scroll the page to the very top. |
| scroll_to_bottomA | Scroll the page to the very bottom. |
| scroll_byA | Scroll the page by a given number of pixels (positive = down/right). |
| emulate_deviceB | Emulate a mobile device using Chrome DevTools Protocol. Adjusts viewport, pixel ratio, and touch. |
| get_console_logsB | Return browser console logs (errors, warnings, info). Chrome only. |
| get_cookiesA | Return all cookies for the current page, or a single cookie by name. |
| set_cookieC | Set a cookie on the current page. |
| delete_cookieB | Delete a specific cookie by name. |
| delete_all_cookiesA | Delete all cookies for the current session. |
| get_local_storageA | Get a value from localStorage, or return all keys if no key is given. |
| set_local_storageC | Set a localStorage key-value pair. |
| get_session_storageC | Get a value from sessionStorage, or return all keys if no key is given. |
| set_session_storageC | Set a sessionStorage key-value pair. |
| 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. |
| get_network_logsA | Return captured XHR/fetch network requests (method, URL, status, timing). Chrome only. |
| mock_responseA | Intercept fetch/XHR requests matching a URL pattern and return a canned response. Useful for testing without a real backend. Injection survives until the page is reloaded. |
| clear_mock_responsesA | Remove all active mock response rules injected by mock_response. |
| compare_screenshotA | Compare the current page screenshot against a saved baseline. On first run (or with update_baseline=true) saves the baseline. Returns the pixel diff percentage. Install Pillow for accurate pixel comparison. |
| check_accessibilityB | Run a built-in accessibility audit on the current page. Checks for missing alt text, unlabelled inputs, empty buttons/links, missing page title, HTML lang, heading structure, and keyboard accessibility. |
| wait_for_network_idleA | Wait until there are no active XHR/fetch requests for a quiet period. Essential for SPAs and pages that load data asynchronously. Also waits for document.readyState to be 'complete'. |
| find_elementB | Find an element and return its text, tag, and attributes. |
| find_elementsC | Find all matching elements and return their texts. |
| clickC | Click on an element. |
| type_textC | Clear and type text into an input field. |
| get_textB | Get the visible text content of an element. |
| get_attributeB | Get an attribute value from an element. |
| select_optionA | Select an option from a dropdown by visible text, value, or index. |
| hoverC | Hover the mouse over an element. |
| double_clickC | Double-click on an element. |
| right_clickB | Right-click (context menu) on an element. |
| drag_and_dropC | Drag one element and drop it onto another. |
| is_displayedB | Check if an element is visible on the page. |
| is_enabledB | Check if an element is enabled (not disabled). |
| 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_fieldB | 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. |
| get_healed_locatorsA | Return all self-healed locator mappings from this session. Shows which selectors were automatically repaired and what they were replaced with. |
| clear_healed_locatorsA | Clear the self-healing locator cache so all selectors are re-evaluated from scratch. |
| accept_alertB | Accept (OK) a JavaScript alert, confirm, or prompt dialog. |
| dismiss_alertC | Dismiss (Cancel) a JavaScript confirm or prompt dialog. |
| get_alert_textA | Return the text message of a currently open JavaScript alert/confirm/prompt. |
| type_in_alertA | Type text into a JavaScript prompt dialog, then accept it. |
| switch_to_frameB | 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. |
| find_shadow_elementA | Find an element inside a shadow DOM. Provide the host element selector and then the selector for the element inside the shadow root. |
| get_table_dataC | Extract data from an HTML table as a formatted text grid. |
| assert_titleC | Assert the page title equals or contains expected text. |
| assert_urlA | Assert the current URL equals or contains expected value. |
| assert_textC | 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_countC | Assert number of elements matching selector equals expected count. |
| generate_python_testA | Generate a pytest + Selenium test script from the current browser session. Captures all recorded actions (navigate, click, type, hover, drag, select, etc.) into a runnable test. |
| generate_java_testngA | Generate a Java TestNG test class from the current browser session. framework='testng' (default) emits standalone Selenium with a ChromeDriver setUp/tearDown; framework='selenium_boot' emits a Selenium Boot test (extends BaseTest, framework-managed driver, accessibility-first getByRole/getByLabel/getByTestId locators and web-first assertThat assertions — no driver lifecycle boilerplate). In a Selenium Boot project, use framework='selenium_boot'. |
| generate_java_junit5A | Generate a Java JUnit 5 test class from the current browser session. framework='junit5' (default) emits standalone Selenium with a ChromeDriver setUp/tearDown; framework='selenium_boot' emits a Selenium Boot test (extends BaseJUnit5Test, framework-managed driver, accessibility-first locators and web-first assertThat assertions). In a Selenium Boot project, use framework='selenium_boot'. |
| detect_selenium_bootA | Detect whether the current working directory is inside a Selenium Boot project (looks for selenium-boot.yml or the io.github.seleniumboot dependency in pom.xml / build.gradle, walking up parent directories). Call this BEFORE generating Java code: if it reports detected=true, generate with framework="selenium_boot" so the output uses the framework's accessibility-first locators and managed driver. |
| get_session_logB | Return the raw list of recorded actions in the current session. |
| clear_session_logA | Clear the recorded action log and start fresh. |
| generate_gherkinA | Generate a Cucumber Gherkin .feature file + Java step definitions class from the recorded browser session. Steps are written in plain English and wired to Java code. framework='raw' (default) emits standalone Selenium with a ChromeDriver @Before/@After; framework='selenium_boot' emits steps extending BaseCucumberSteps with framework-managed driver and accessibility-first locators. Use 'selenium_boot' in a Selenium Boot project. |
| generate_csharp_nunitB | Generate a C# NUnit + Selenium test class from the current browser session. |
| generate_github_actionsC | Generate a GitHub Actions CI workflow YAML for running the recorded test session. |
| generate_jenkins_pipelineA | Generate a declarative Jenkinsfile for running the recorded test session (Maven, Gradle, or pytest). |
| generate_gitlab_ciA | Generate a .gitlab-ci.yml pipeline for running the recorded test session (Maven, Gradle, or pytest). |
| generate_playwright_hintsC | Generate equivalent Playwright (TypeScript) code hints from the recorded browser session. |
| generate_java_page_objectA | Generate a Java Page Object class + matching test class from the recorded session. USE THIS INSTEAD OF WRITING JAVA BY HAND — the output compiles as-is and contains only the elements/actions actually performed, so it never invents fields or uses non-existent framework APIs. Produces two files: a Page Object (locators + fluent action methods) and a Test class that uses it. Supports raw Selenium (TestNG / JUnit 5) and the Selenium Boot framework (selenium_boot): Page Object extends BasePage, Test extends BaseTest, no manual driver lifecycle — the framework manages it — with accessibility-first locators. For any Java test in a Selenium Boot repo, use framework="selenium_boot". |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/seleniumboot/selenium-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server