Supports browser automation for Firefox, allowing navigation, element interaction, and other Selenium-based operations specifically in the Firefox browser.
Enables browser automation through Selenium WebDriver, with capabilities for launching browsers, navigating to URLs, finding elements, performing mouse and keyboard actions, taking screenshots, and uploading files.
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
Navigate to URLs
Find elements using various locator strategies
Click, type, and interact with elements
Perform mouse actions (hover, drag and drop)
Handle keyboard input
Take screenshots
Upload files
Support for headless mode
Supported Browsers
Chrome
Firefox
MS Edge
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
Name:
Selenium MCP
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 launchType: string
Enum: ["chrome", "firefox"]
options
: Browser configuration optionsType: object
Properties:
headless
: Run browser in headless modeType: boolean
arguments
: Additional browser argumentsType: array of strings
Example:
navigate
Navigates to a URL.
Parameters:
url
(required): URL to navigate toType: string
Example:
find_element
Finds an element on the page.
Parameters:
by
(required): Locator strategyType: string
Enum: ["id", "css", "xpath", "name", "tag", "class"]
value
(required): Value for the locator strategyType: string
timeout
: Maximum time to wait for element in millisecondsType: number
Default: 10000
Example:
click_element
Clicks an element.
Parameters:
by
(required): Locator strategyType: string
Enum: ["id", "css", "xpath", "name", "tag", "class"]
value
(required): Value for the locator strategyType: string
timeout
: Maximum time to wait for element in millisecondsType: number
Default: 10000
Example:
send_keys
Sends keys to an element (typing).
Parameters:
by
(required): Locator strategyType: string
Enum: ["id", "css", "xpath", "name", "tag", "class"]
value
(required): Value for the locator strategyType: string
text
(required): Text to enter into the elementType: string
timeout
: Maximum time to wait for element in millisecondsType: number
Default: 10000
Example:
get_element_text
Gets the text() of an element.
Parameters:
by
(required): Locator strategyType: string
Enum: ["id", "css", "xpath", "name", "tag", "class"]
value
(required): Value for the locator strategyType: string
timeout
: Maximum time to wait for element in millisecondsType: number
Default: 10000
Example:
hover
Moves the mouse to hover over an element.
Parameters:
by
(required): Locator strategyType: string
Enum: ["id", "css", "xpath", "name", "tag", "class"]
value
(required): Value for the locator strategyType: string
timeout
: Maximum time to wait for element in millisecondsType: number
Default: 10000
Example:
drag_and_drop
Drags an element and drops it onto another element.
Parameters:
by
(required): Locator strategy for source elementType: string
Enum: ["id", "css", "xpath", "name", "tag", "class"]
value
(required): Value for the source locator strategyType: string
targetBy
(required): Locator strategy for target elementType: string
Enum: ["id", "css", "xpath", "name", "tag", "class"]
targetValue
(required): Value for the target locator strategyType: string
timeout
: Maximum time to wait for elements in millisecondsType: number
Default: 10000
Example:
double_click
Performs a double click on an element.
Parameters:
by
(required): Locator strategyType: string
Enum: ["id", "css", "xpath", "name", "tag", "class"]
value
(required): Value for the locator strategyType: string
timeout
: Maximum time to wait for element in millisecondsType: number
Default: 10000
Example:
right_click
Performs a right click (context click) on an element.
Parameters:
by
(required): Locator strategyType: string
Enum: ["id", "css", "xpath", "name", "tag", "class"]
value
(required): Value for the locator strategyType: string
timeout
: Maximum time to wait for element in millisecondsType: number
Default: 10000
Example:
press_key
Simulates pressing a keyboard key.
Parameters:
key
(required): Key to press (e.g., 'Enter', 'Tab', 'a', etc.)Type: string
Example:
upload_file
Uploads a file using a file input element.
Parameters:
by
(required): Locator strategyType: string
Enum: ["id", "css", "xpath", "name", "tag", "class"]
value
(required): Value for the locator strategyType: string
filePath
(required): Absolute path to the file to uploadType: string
timeout
: Maximum time to wait for element in millisecondsType: number
Default: 10000
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.Type: string
Example:
close_session
Closes the current browser session and cleans up resources.
Parameters: None required
Example:
License
MIT
This server cannot be installed
A Model Context Protocol server implementation that enables browser automation through standardized MCP clients, supporting features like navigation, element interaction, and screenshots across Chrome, Firefox, and Edge browsers.
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server that provides browser automation capabilities using BrowserCat's cloud browser service. This server enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment without needing to install browsers locally.Last updated -124
- AsecurityAlicenseAqualityA Model Context Protocol server that enables LLMs to interact with web pages, take screenshots, generate test code, scrape web pages, and execute JavaScript in a real browser environment.Last updated -29913MIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that connects to Chrome debugging ports, enabling browser automation with persistent login sessions.Last updated -10188MIT License
Snowfort Circuit MCPofficial
-securityFlicense-qualityA comprehensive Model Context Protocol (MCP) server suite that enables AI coding agents to automate both web browsers and Electron desktop applications with auto-snapshots and element references.Last updated -45