MCP Selenium Server

MCP Selenium Server

Enables AI agents to automate browser interactions using Selenium WebDriver, supporting multiple browsers and tools for navigation, clicking, typing, screenshots, and more.

Category
Visit Server

README

MCP Selenium Server

A Model Context Protocol (MCP) server for Selenium WebDriver — browser automation for AI agents.

Watch the video

<a href="https://glama.ai/mcp/servers/@angiejones/mcp-selenium"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@angiejones/mcp-selenium/badge" alt="Selenium MCP server" /> </a>

Setup

<details open> <summary><strong>Goose (Desktop)</strong></summary>

Paste into your browser address bar:

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

</details>

<details> <summary><strong>Goose (CLI)</strong></summary>

goose session --with-extension "npx -y @angiejones/mcp-selenium@latest"

</details>

<details> <summary><strong>Claude Code</strong></summary>

claude mcp add selenium -- npx -y @angiejones/mcp-selenium@latest

</details>

<details> <summary><strong>Cursor / Windsurf / other MCP clients</strong></summary>

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

</details>

Example Usage

Tell the AI agent of your choice:

Open Chrome, go to github.com/angiejones, and take a screenshot.

The agent will call Selenium's APIs to start_browser, navigate, and take_screenshot. No manual scripting or explicit directions needed.

Supported Browsers

Chrome, Firefox, Edge, and Safari.

Safari note: Requires macOS. Run sudo safaridriver --enable once and enable "Allow Remote Automation" in Safari → Settings → Developer. No headless mode.


<details> <summary><strong>Tools</strong></summary>

start_browser

Launches a browser session.

Parameter Type Required Description
browser string Yes chrome, firefox, edge, or safari
options object No { headless: boolean, arguments: string[] }

navigate

Navigates to a URL.

Parameter Type Required Description
url string Yes URL to navigate to

interact

Performs a mouse action on an element.

Parameter Type Required Description
action string Yes click, doubleclick, rightclick, or hover
by string Yes Locator strategy: id, css, xpath, name, tag, class
value string Yes Value for the locator strategy
timeout number No Max wait in ms (default: 10000)

send_keys

Types text into an element. Clears the field first.

Parameter Type Required Description
by string Yes Locator strategy
value string Yes Locator value
text string Yes Text to enter
timeout number No Max wait in ms (default: 10000)

get_element_text

Gets the text content of an element.

Parameter Type Required Description
by string Yes Locator strategy
value string Yes Locator value
timeout number No Max wait in ms (default: 10000)

get_element_attribute

Gets an attribute value from an element.

Parameter Type Required Description
by string Yes Locator strategy
value string Yes Locator value
attribute string Yes Attribute name (e.g., href, value, class)
timeout number No Max wait in ms (default: 10000)

press_key

Presses a keyboard key.

Parameter Type Required Description
key string Yes Key to press (e.g., Enter, Tab, a)

upload_file

Uploads a file via a file input element.

Parameter Type Required Description
by string Yes Locator strategy
value string Yes Locator value
filePath string Yes Absolute path to the file
timeout number No Max wait in ms (default: 10000)

take_screenshot

Captures a screenshot of the current page.

Parameter Type Required Description
outputPath string No Save path. If omitted, returns base64 image data.

close_session

Closes the current browser session. No parameters.

execute_script

Executes JavaScript in the browser. Use for advanced interactions not covered by other tools (e.g., drag and drop, scrolling, reading computed styles, DOM manipulation).

Parameter Type Required Description
script string Yes JavaScript code to execute
args array No Arguments accessible via arguments[0], etc.

window

Manages browser windows and tabs.

Parameter Type Required Description
action string Yes list, switch, switch_latest, or close
handle string No Window handle (required for switch)

frame

Switches focus to a frame or back to the main page.

Parameter Type Required Description
action string Yes switch or default
by string No Locator strategy (for switch)
value string No Locator value (for switch)
index number No Frame index, 0-based (for switch)
timeout number No Max wait in ms (default: 10000)

alert

Handles browser alert, confirm, or prompt dialogs.

Parameter Type Required Description
action string Yes accept, dismiss, get_text, or send_text
text string No Text to send (required for send_text)
timeout number No Max wait in ms (default: 5000)

add_cookie

Adds a cookie. Browser must be on a page from the cookie's domain.

Parameter Type Required Description
name string Yes Cookie name
value string Yes Cookie value
domain string No Cookie domain
path string No Cookie path
secure boolean No Secure flag
httpOnly boolean No HTTP-only flag
expiry number No Unix timestamp

get_cookies

Gets cookies. Returns all or a specific one by name.

Parameter Type Required Description
name string No Cookie name. Omit for all cookies.

delete_cookie

Deletes cookies. Deletes all or a specific one by name.

Parameter Type Required Description
name string No Cookie name. Omit to delete all.

diagnostics

Gets browser diagnostics captured via WebDriver BiDi (auto-enabled when supported).

Parameter Type Required Description
type string Yes console, errors, or network
clear boolean No Clear buffer after returning (default: false)

</details>

<details> <summary><strong>Resources</strong></summary>

MCP resources provide read-only data that clients can access without calling a tool.

browser-status://current

Returns the current browser session status (active session ID or "no active session").

Property Value
MIME type text/plain
Requires browser No

accessibility://current

Returns an accessibility tree snapshot of the current page — a compact, structured JSON representation of interactive elements and text content. Much smaller than full HTML. Useful for understanding page layout and finding elements to interact with.

Property Value
MIME type application/json
Requires browser Yes

</details>


<details> <summary><strong>Development</strong></summary>

Setup

git clone https://github.com/angiejones/mcp-selenium.git
cd mcp-selenium
npm install

Run Tests

npm test

Requires Chrome + chromedriver on PATH. Tests run headless.

Install via Smithery

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

Install globally

npm install -g @angiejones/mcp-selenium
mcp-selenium

</details>

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured