Selenium Tools for MCP
Valid MCP server (4 strong, 4 medium validity signals). 3 known CVEs in dependencies (0 critical, 3 high severity) Package registry verified. Imported from the Official MCP Registry.
5 files analyzed ยท 4 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: YOUR_API_KEY
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-pshivapr-selenium-mcp": {
"env": {
"YOUR_API_KEY": "your-your-api-key-here"
},
"args": [
"-y",
"selenium-webdriver-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
This is a server implementation that bridges the gap between MCP clients (AI assistants) and Selenium WebDriver. It exposes Selenium WebDriver's functionalities as MCP tools, allowing AI models to utilize them for tasks like:
In essence, the selenium webdriver mcp setup allows AI assistants to leverage the power of Selenium Webdriver for web automation, by communicating with a dedicated Selenium MCP server via the Model Context Protocol. This facilitates tasks such as automated web interactions, testing, and data extraction, all controlled by AI.
A Model Context Protocol (MCP) server for Selenium that provides comprehensive Selenium WebDriver automation tools for AI assistants and applications. This server enables automated web browser interactions, testing, and scraping through a standardized interface.
Built with TypeScript and modern ES modules, it offers type-safe browser automation capabilities through the Model Context Protocol.
Configure your MCP client to connect to the Selenium server:
{
"servers": {
"selenium-mcp": {
"command": "npx",
"args": ["-y", "selenium-webdriver-mcp@latest"]
}
}
}
Update your mcp.json in VS Code with below configuration
NOTE: If you're new to MCP servers, follow this link Use MCP servers in VS Code
{
"servers": {
"selenium-mcp": {
"command": "npx",
"args": [
"-y",
"selenium-webdriver-mcp@latest"
],
"type": "stdio"
}
},
"inputs": []
}
{
"servers": {
"Selenium": {
"url": "https://smithery.ai/server/@pshivapr/selenium-mcp",
"type": "http"
}
},
"inputs": []
}
After installation, the Selenium MCP server will be available for use with your GitHub Copilot agent in VS Code.
# For VS Code
code --add-mcp '{\"name\":\"selenium-mcp\",\"command\": \"npx\",\"args\": [\"selenium-webdriver-mcp@latest\"]}'
# For VS Code Insiders
vscode-insiders --add-mcp '{\"name\":\"selenium-mcp\",\"command\": \"npx\",\"args\": [\"selenium-webdriver-mcp@latest\"]}'
Using npm:
npm install -g selenium-webdriver-mcp@latest
Using Smithery
To install Selenium MCP for Claude Desktop automatically via
npx @smithery/cli install @pshivapr/selenium-mcp --client claude
Add to your Claude Desktop configuration:
{
"mcpServers": {
"selenium-mcp": {
"command": "npx",
"args": ["-y", "selenium-webdriver-mcp@latest"]
}
}
}

An example prompt to start AI Agent interaction:
Using selenium mcp tools, navigate to <https://parabank.parasoft.com/> click the 'Register' link and signup using dynamic test data and click register. Then generate selenium tests in <YOUR_FAVOURITE_PROGRAMMING_LANGUAGE> using pom, create tests using cucumber features, steps and execute the tests.
Note: For more prompts, look at examples directory of the project
| Tool | Description | Parameters |
|---|---|---|
browser_open | Open a new browser session | browser, options |
browser_navigate | Navigate to a URL | url |
browser_navigate_back | Navigate back in history | None |
browser_navigate_forward | Navigate forward in history | None |
browser_title | Get the current page title | None |
browser_refresh | Refresh the current page | None |
browser_get_url | Get the current page URL | None |
browser_get_page_source | Get the current page HTML source | None |
browser_maximize | Maximize the browser window | None |
browser_resize | Resize browser window | width, height |
browser_close | Close current browser session | None |
| Tool | Description | Parameters |
|---|---|---|
browser_get_cookies | Get all cookies from the current browser session | None |
browser_get_cookie_by_name | Get a specific cookie by name | cookie (cookie name) |
browser_add_cookie_by_name | Add a new cookie to the browser | cookie (cookie name), value |
browser_set_cookie_object | Set a cookie object in the browser | cookie (cookie object as string) |
browser_delete_cookie | Delete a specific cookie by name | value (cookie name to delete) |
browser_delete_cookies | Delete all cookies from the current browser session | None |
| Tool | Description | Parameters |
|---|---|---|
browser_switch_to_window | Switch to a different browser window by handle | windowHandle |
browser_switch_to_original_window | Switch back to the original browser window | None |
browser_switch_to_window_by_title | Switch to a window by its page title | title |
browser_switch_window_by_index | Switch to a window by its index position | index |
browser_switch_to_window_by_url | Switch to a window by its URL | url |
| Tool | Description | Parameters |
|---|---|---|
browser_find_element | Find an element on the page | by, value, timeout |
browser_find_elements | Find multiple elements on the page | by, value, timeout |
browser_click | Click on an element | by, value, timeout |
browser_type | Type text into an element | by, value, text, timeout |
browser_get_element_text | Get text content of element | by, value, timeout |
browser_file_upload | Upload file via input element | by, value, filePath, timeout |
browser_clear | Clear text from an element | by, value, timeout |
browser_get_attribute | Get element attribute value | by, value, attribute, timeout |
| Tool | Description | Parameters |
|---|---|---|
browser_element_is_displayed | Check if an element is visible on the page | by, value, timeout |
browser_element_is_enabled | Check if an element is enabled for interaction | by, value, timeout |
browser_element_is_selected | Check if an element is selected (checkboxes, radio buttons) | by, value, timeout |
| Tool | Description | Parameters |
|---|---|---|
browser_switch_to_frame | Switch to an iframe element | by, value, timeout |
browser_switch_to_parent_frame | Switch to the parent frame (from nested iframe) | None |
browser_switch_to_default_content | Switch back to the main page content | None |
| Tool | Description | Parameters |
|---|---|---|
browser_hover | Hover over an element | by, value, timeout |
browser_double_click | Double-click on an element | by, value, timeout |
browser_right_click | Right-click (context menu) | by, value, timeout |
browser_drag_and_drop | Drag from source to target | by, value, targetBy, targetValue, timeout |
browser_wait_for_element | Wait for element to appear | by, value, timeout |
browser_execute_script | Execute JavaScript code | script, args |
browser_screenshot | Take a screenshot | filename (optional) |
browser_select_dropdown_by_text | Select dropdown option by visible text | by, value, text, timeout |
browser_select_dropdown_by_value | Select dropdown option by value | by, value, dropdownValue, timeout |
browser_key_press | Press a keyboard key in the browser | key, timeout |
| Tool | Description | Parameters |
|---|---|---|
browser_scroll_to_element | Scroll to bring an element into view | by, value, timeout |
browser_scroll_to_top | Scroll to the top of the page | None |
browser_scroll_to_bottom | Scroll to the bottom of the page | None |
browser_scroll_to_coordinates | Scroll to specific coordinates | x, y |
browser_scroll_by_pixels | Scroll by specified number of pixels | x, y |
| Tool | Description | Parameters |
|---|---|---|
browser_select_checkbox | Select/check a checkbox | by, value, timeout |
browser_unselect_checkbox | Unselect/uncheck a checkbox | by, value, timeout |
browser_submit_form | Submit a form element | by, value, timeout |
browser_focus_element | Focus on a specific element | by, value, timeout |
browser_blur_element | Remove focus from a specific element | by, value, timeout |
id: Find by element IDcss: Find by CSS selectorxpath: Find by XPath expressionname: Find by name attributetag: Find by HTML tag nameclass: Find by CSS class namegit clone https://github.com/pshivapr/selenium-mcp.git
cd selenium-mcp
npm install
npm run build
npm start
npm run dev
node dist/index.js
After building, you can use the server as a global command:
npx selenium-webdriver-mcp@latest
MIT License - see LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Be the first to review this server!
by Toleno ยท Developer Tools
Toleno Network MCP Server โ Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace ยท Developer Tools
Create, build, and publish Python MCP servers to PyPI โ conversationally.
by Microsoft ยท Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace ยท Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm โ conversationally
by mcp-marketplace ยท Finance
Free stock data and market news for any MCP-compatible AI assistant.
by Taylorwilsdon ยท Productivity
Control Gmail, Calendar, Docs, Sheets, Drive, and more from your AI