Package Exports
- selenium-mcp-server
- selenium-mcp-server/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (selenium-mcp-server) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Selenium MCP Server
A Model Context Protocol (MCP) server that provides browser automation capabilities using Selenium WebDriver. This server enables LLMs to interact with web pages through structured accessibility snapshots and browser automation tools.
Features
- 🌐 Multi-browser support: Chrome, Firefox, Edge, Safari
- 🤖 LLM-friendly: Provides structured accessibility snapshots for LLMs
- 🔧 Comprehensive tools: Navigate, click, type, screenshot, and more
- 📱 Tab management: Open, close, and switch between browser tabs
- 🎯 Element interaction: Click, hover, drag, type into elements
- 📸 Screenshots and PDFs: Capture page content
- ⚡ Fast and reliable: Built on Selenium WebDriver
Installation
Method 1: Local Installation (Recommended - Like Playwright MCP)
npm install selenium-mcp-server
Method 2: Global Installation
npm install -g selenium-mcp-server
Quick Start
Option A: Local Installation (Like Microsoft's Playwright MCP)
1. Install in your project
npm install selenium-mcp-server
2. Configure Cursor
Create .cursor/mcp.json
in your project root:
{
"mcpServers": {
"selenium": {
"command": "node",
"args": ["./node_modules/selenium-mcp-server/dist/index.js", "--browser", "chrome", "--headless"]
}
}
}
Option B: Global Installation
1. Install globally
npm install -g selenium-mcp-server
2. Configure Cursor
Add to your Cursor MCP configuration (~/.cursor/mcp.json
):
{
"mcpServers": {
"selenium": {
"command": "selenium-mcp",
"args": ["--browser", "chrome", "--headless"]
}
}
}
3. Use in Cursor
Ask Cursor to perform browser automation:
- "Navigate to google.com and take a screenshot"
- "Fill out the contact form on example.com"
- "Extract all links from the current page"
Configuration Options
selenium-mcp [options]
Options:
--browser <browser> Browser to use (chrome, firefox, edge, safari) (default: "chrome")
--headless Run browser in headless mode
--executable-path <path> Path to browser executable
--user-data-dir <path> Path to user data directory
--isolated Keep browser profile in memory
--viewport-size <size> Browser viewport size (e.g., 1280,720)
--output-dir <path> Path to directory for output files
-h, --help Display help for command
Available Tools
Navigation
browser_navigate
- Navigate to URLsbrowser_navigate_back
- Go back in historybrowser_navigate_forward
- Go forward in history
Page Interaction
browser_click
- Click on elementsbrowser_type
- Type text into inputsbrowser_hover
- Hover over elementsbrowser_drag
- Drag and drop elementsbrowser_select_option
- Select dropdown optionsbrowser_press_key
- Press keyboard keys
Information Gathering
browser_snapshot
- Capture accessibility treebrowser_take_screenshot
- Take screenshotsbrowser_network_requests
- List network requestsbrowser_console_messages
- Get console messages
Tab Management
browser_tab_list
- List open tabsbrowser_tab_new
- Open new tabsbrowser_tab_select
- Switch tabsbrowser_tab_close
- Close tabs
Utilities
browser_wait_for
- Wait for elements/textbrowser_file_upload
- Upload filesbrowser_handle_dialog
- Handle alerts/dialogsbrowser_resize
- Resize browser windowbrowser_pdf_save
- Save page as PDF
Usage Examples
Basic Navigation and Screenshot
// In Cursor, ask:
"Navigate to https://example.com and take a screenshot"
Form Interaction
// In Cursor, ask:
"Go to the contact page and fill out the form with name 'John Doe' and email 'john@example.com'"
Data Extraction
// In Cursor, ask:
"Visit the product page and extract all product names and prices"
Requirements
- Node.js 18+
- Java 11+ (for Selenium WebDriver)
- Browser drivers (automatically managed by WebDriverManager)
Configuration Examples
Local Development
{
"mcpServers": {
"selenium": {
"command": "selenium-mcp",
"args": ["--browser", "chrome"]
}
}
}
Headless Production
{
"mcpServers": {
"selenium": {
"command": "selenium-mcp",
"args": [
"--browser", "chrome",
"--headless",
"--viewport-size", "1920,1080"
]
}
}
}
Custom Browser Path
{
"mcpServers": {
"selenium": {
"command": "selenium-mcp",
"args": [
"--browser", "chrome",
"--executable-path", "/path/to/chrome"
]
}
}
}
Troubleshooting
Browser Not Found
If you get browser not found errors:
- Install the browser (Chrome, Firefox, etc.)
- Use
--executable-path
to specify browser location - Check that Java is installed and accessible
Permission Issues
On macOS, you might need to grant accessibility permissions:
- Go to System Preferences > Security & Privacy > Privacy
- Select "Accessibility"
- Add your terminal application
Memory Issues
For large pages or long-running sessions:
{
"mcpServers": {
"selenium": {
"command": "selenium-mcp",
"args": ["--isolated", "--headless"]
}
}
}
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
License
MIT License - see LICENSE file for details.
Related Projects
- Playwright MCP - Similar server using Playwright
- Model Context Protocol - The protocol specification
- Selenium WebDriver - The underlying browser automation framework