MCP Selenium Server
A Model Context Protocol (MCP) server implementation for Selenium WebDriver, enabling browser automation through standardized MCP clients.
Video Demo (Click to Watch)
Features
- Start browser sessions with customizable options
- Find elements using various locator strategies
- Click, type, and interact with elements
- Perform mouse actions (hover, drag and drop)
- Support for headless mode
Supported Browsers
Use with Goose
Option 1: One-click install
Copy and paste the link below into a browser address bar to add this extension to goose desktop:
Option 2: Add manually to desktop or CLI
- Description:
automates browser interactions
- Command:
npx -y @angiejones/mcp-selenium
Use with other MCP clients (e.g. Claude Desktop, etc)
Development
To work on this project:
- Clone the repository
- Install dependencies:
npm install
- Run the server:
npm start
Installation
Installing via Smithery
To install MCP Selenium for Claude Desktop automatically via
Smithery:
Manual Installation
Usage
Start the server by running:
Or use with NPX in your MCP configuration:
Tools
start_browser
Launches a browser session.
Parameters:
browser
(required): Browser to launch
options
: Browser configuration options
Example:
navigate
Navigates to a URL.
Parameters:
url
(required): URL to navigate to
Example:
find_element
Finds an element on the page.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
click_element
Clicks an element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
send_keys
Sends keys to an element (typing).
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
text
(required): Text to enter into the element
timeout
: Maximum time to wait for element in milliseconds
Example:
get_element_text
Gets the text() of an element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
hover
Moves the mouse to hover over an element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
drag_and_drop
Drags an element and drops it onto another element.
Parameters:
by
(required): Locator strategy for source element
value
(required): Value for the source locator strategy
targetBy
(required): Locator strategy for target element
targetValue
(required): Value for the target locator strategy
timeout
: Maximum time to wait for elements in milliseconds
Example:
double_click
Performs a double click on an element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
right_click
Performs a right click (context click) on an element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
press_key
Simulates pressing a keyboard key.
Parameters:
key
(required): Key to press (e.g., 'Enter', 'Tab', 'a', etc.)
Example:
upload_file
Uploads a file using a file input element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
filePath
(required): Absolute path to the file to upload
timeout
: Maximum time to wait for element in milliseconds
Example:
take_screenshot
Captures a screenshot of the current page.
Parameters:
outputPath
(optional): Path where to save the screenshot. If not provided, returns base64 data.
Example:
close_session
Closes the current browser session and cleans up resources.
Parameters:
None required
Example:
License
MIT
MCP Selenium Server
A Model Context Protocol (MCP) server implementation for Selenium WebDriver, enabling browser automation through standardized MCP clients.
Video Demo (Click to Watch)
Features
- Start browser sessions with customizable options
- Find elements using various locator strategies
- Click, type, and interact with elements
- Perform mouse actions (hover, drag and drop)
- Support for headless mode
Supported Browsers
Use with Goose
Option 1: One-click install
Copy and paste the link below into a browser address bar to add this extension to goose desktop:
Option 2: Add manually to desktop or CLI
- Description:
automates browser interactions
- Command:
npx -y @angiejones/mcp-selenium
Use with other MCP clients (e.g. Claude Desktop, etc)
Development
To work on this project:
- Clone the repository
- Install dependencies:
npm install
- Run the server:
npm start
Installation
Installing via Smithery
To install MCP Selenium for Claude Desktop automatically via
Smithery:
Manual Installation
Usage
Start the server by running:
Or use with NPX in your MCP configuration:
Tools
start_browser
Launches a browser session.
Parameters:
browser
(required): Browser to launch
options
: Browser configuration options
Example:
navigate
Navigates to a URL.
Parameters:
url
(required): URL to navigate to
Example:
find_element
Finds an element on the page.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
click_element
Clicks an element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
send_keys
Sends keys to an element (typing).
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
text
(required): Text to enter into the element
timeout
: Maximum time to wait for element in milliseconds
Example:
get_element_text
Gets the text() of an element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
hover
Moves the mouse to hover over an element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
drag_and_drop
Drags an element and drops it onto another element.
Parameters:
by
(required): Locator strategy for source element
value
(required): Value for the source locator strategy
targetBy
(required): Locator strategy for target element
targetValue
(required): Value for the target locator strategy
timeout
: Maximum time to wait for elements in milliseconds
Example:
double_click
Performs a double click on an element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
right_click
Performs a right click (context click) on an element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
timeout
: Maximum time to wait for element in milliseconds
Example:
press_key
Simulates pressing a keyboard key.
Parameters:
key
(required): Key to press (e.g., 'Enter', 'Tab', 'a', etc.)
Example:
upload_file
Uploads a file using a file input element.
Parameters:
by
(required): Locator strategy
value
(required): Value for the locator strategy
filePath
(required): Absolute path to the file to upload
timeout
: Maximum time to wait for element in milliseconds
Example:
take_screenshot
Captures a screenshot of the current page.
Parameters:
outputPath
(optional): Path where to save the screenshot. If not provided, returns base64 data.
Example:
close_session
Closes the current browser session and cleans up resources.
Parameters:
None required
Example:
License
MIT