Related MCP Server Resources

Explore more AI models, providers, and integration options:

  • Explore AI Models
  • Explore AI Providers
  • Explore MCP Servers
  • LangDB Pricing
  • Documentation
  • AI Industry Blog
  • Steel Puppeteer
  • MCP Web Browser Server
  • Safari Screenshot MCP Server
  • mcp-server-asana
  • Kubectl MCP Tool
Back to MCP Servers
MCP Selenium

MCP Selenium

Public
angiejones/mcp-selenium

Enables browser automation via Model Context Protocol with support for Chrome and Firefox, offering customizable sessions, element interaction, navigation, mouse and keyboard actions, screenshots, file uploads, and headless mode.

javascript
0 tools
May 29, 2025
Updated Jun 4, 2025

Supercharge Your AI with MCP Selenium

MCP Server

Unlock the full potential of MCP Selenium through LangDB's AI Gateway. Get enterprise-grade security, analytics, and seamless integration with zero configuration.

Unified API Access
Complete Tracing
Instant Setup
Get Started Now

Free tier available • No credit card required

Instant Setup
99.9% Uptime
10,000+Monthly Requests

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

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:

goose://extension?cmd=npx&arg=-y&arg=%40angiejones%2Fmcp-selenium&id=selenium-mcp&name=Selenium%20MCP&description=automates%20browser%20interactions

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)

{ "mcpServers": { "selenium": { "command": "npx", "args": ["-y", "@angiejones/mcp-selenium"] } } }

Development

To work on this project:

  1. Clone the repository
  2. Install dependencies: npm install
  3. Run the server: npm start

Installation

Installing via Smithery

To install MCP Selenium for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @angiejones/mcp-selenium --client claude

Manual Installation

npm install -g @angiejones/mcp-selenium

Usage

Start the server by running:

mcp-selenium

Or use with NPX in your MCP configuration:

{ "mcpServers": { "selenium": { "command": "npx", "args": [ "-y", "@angiejones/mcp-selenium" ] } } }

Tools

start_browser

Launches a browser session.

Parameters:

  • browser (required): Browser to launch
    • Type: string
    • Enum: ["chrome", "firefox"]
  • options: Browser configuration options
    • Type: object
    • Properties:
      • headless: Run browser in headless mode
        • Type: boolean
      • arguments: Additional browser arguments
        • Type: array of strings

Example:

{ "tool": "start_browser", "parameters": { "browser": "chrome", "options": { "headless": true, "arguments": ["--no-sandbox"] } } }

navigate

Navigates to a URL.

Parameters:

  • url (required): URL to navigate to
    • Type: string

Example:

{ "tool": "navigate", "parameters": { "url": "https://www.example.com" } }

find_element

Finds an element on the page.

Parameters:

  • by (required): Locator strategy
    • Type: string
    • Enum: ["id", "css", "xpath", "name", "tag", "class"]
  • value (required): Value for the locator strategy
    • Type: string
  • timeout: Maximum time to wait for element in milliseconds
    • Type: number
    • Default: 10000

Example:

{ "tool": "find_element", "parameters": { "by": "id", "value": "search-input", "timeout": 5000 } }

click_element

Clicks an element.

Parameters:

  • by (required): Locator strategy
    • Type: string
    • Enum: ["id", "css", "xpath", "name", "tag", "class"]
  • value (required): Value for the locator strategy
    • Type: string
  • timeout: Maximum time to wait for element in milliseconds
    • Type: number
    • Default: 10000

Example:

{ "tool": "click_element", "parameters": { "by": "css", "value": ".submit-button" } }

send_keys

Sends keys to an element (typing).

Parameters:

  • by (required): Locator strategy
    • Type: string
    • Enum: ["id", "css", "xpath", "name", "tag", "class"]
  • value (required): Value for the locator strategy
    • Type: string
  • text (required): Text to enter into the element
    • Type: string
  • timeout: Maximum time to wait for element in milliseconds
    • Type: number
    • Default: 10000

Example:

{ "tool": "send_keys", "parameters": { "by": "name", "value": "username", "text": "testuser" } }

get_element_text

Gets the text() of an element.

Parameters:

  • by (required): Locator strategy
    • Type: string
    • Enum: ["id", "css", "xpath", "name", "tag", "class"]
  • value (required): Value for the locator strategy
    • Type: string
  • timeout: Maximum time to wait for element in milliseconds
    • Type: number
    • Default: 10000

Example:

{ "tool": "get_element_text", "parameters": { "by": "css", "value": ".message" } }

hover

Moves the mouse to hover over an element.

Parameters:

  • by (required): Locator strategy
    • Type: string
    • Enum: ["id", "css", "xpath", "name", "tag", "class"]
  • value (required): Value for the locator strategy
    • Type: string
  • timeout: Maximum time to wait for element in milliseconds
    • Type: number
    • Default: 10000

Example:

{ "tool": "hover", "parameters": { "by": "css", "value": ".dropdown-menu" } }

drag_and_drop

Drags an element and drops it onto another element.

Parameters:

  • by (required): Locator strategy for source element
    • Type: string
    • Enum: ["id", "css", "xpath", "name", "tag", "class"]
  • value (required): Value for the source locator strategy
    • Type: string
  • targetBy (required): Locator strategy for target element
    • Type: string
    • Enum: ["id", "css", "xpath", "name", "tag", "class"]
  • targetValue (required): Value for the target locator strategy
    • Type: string
  • timeout: Maximum time to wait for elements in milliseconds
    • Type: number
    • Default: 10000

Example:

{ "tool": "drag_and_drop", "parameters": { "by": "id", "value": "draggable", "targetBy": "id", "targetValue": "droppable" } }

double_click

Performs a double click on an element.

Parameters:

  • by (required): Locator strategy
    • Type: string
    • Enum: ["id", "css", "xpath", "name", "tag", "class"]
  • value (required): Value for the locator strategy
    • Type: string
  • timeout: Maximum time to wait for element in milliseconds
    • Type: number
    • Default: 10000

Example:

{ "tool": "double_click", "parameters": { "by": "css", "value": ".editable-text" } }

right_click

Performs a right click (context click) on an element.

Parameters:

  • by (required): Locator strategy
    • Type: string
    • Enum: ["id", "css", "xpath", "name", "tag", "class"]
  • value (required): Value for the locator strategy
    • Type: string
  • timeout: Maximum time to wait for element in milliseconds
    • Type: number
    • Default: 10000

Example:

{ "tool": "right_click", "parameters": { "by": "css", "value": ".context-menu-trigger" } }

press_key

Simulates pressing a keyboard key.

Parameters:

  • key (required): Key to press (e.g., 'Enter', 'Tab', 'a', etc.)
    • Type: string

Example:

{ "tool": "press_key", "parameters": { "key": "Enter" } }

upload_file

Uploads a file using a file input element.

Parameters:

  • by (required): Locator strategy
    • Type: string
    • Enum: ["id", "css", "xpath", "name", "tag", "class"]
  • value (required): Value for the locator strategy
    • Type: string
  • filePath (required): Absolute path to the file to upload
    • Type: string
  • timeout: Maximum time to wait for element in milliseconds
    • Type: number
    • Default: 10000

Example:

{ "tool": "upload_file", "parameters": { "by": "id", "value": "file-input", "filePath": "/path/to/file.pdf" } }

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:

{ "tool": "take_screenshot", "parameters": { "outputPath": "/path/to/screenshot.png" } }

close_session

Closes the current browser session and cleans up resources.

Parameters: None required

Example:

{ "tool": "close_session", "parameters": {} }

License

MIT

Publicly Shared Threads0

Discover shared experiences

Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!

Share your threads to help others
Related MCPs5
  • Steel Puppeteer
    Steel Puppeteer

    Model Context Protocol server enabling advanced browser automation with Puppeteer, offering web navi...

    Added May 30, 2025
  • MCP Web Browser Server
    MCP Web Browser Server

    Advanced Model Context Protocol server enabling headless web browsing with multi-tab support, dynami...

    6 tools
    Added May 30, 2025
  • Safari Screenshot MCP Server
    Safari Screenshot MCP Server

    Capture high-quality, customizable Safari browser screenshots on macOS with support for various view...

    1 tools
    Added May 30, 2025
  • mcp-server-asana
    mcp-server-asana

    Enables seamless interaction with Asana API via Model Context Protocol, providing advanced task, pro...

    22 tools
    Added May 30, 2025
  • Kubectl MCP Tool
    Kubectl MCP Tool

    Enables AI assistants to interact with Kubernetes clusters via natural language using the Model Cont...

    Added May 30, 2025