{"_id":"@dhivakaranthonydoss/mcp-selenium","_rev":"5-b8559ebf17e0691221a6e93d2b0f2b05","name":"@dhivakaranthonydoss/mcp-selenium","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.1":{"name":"@dhivakaranthonydoss/mcp-selenium","version":"0.1.1","keywords":["mcp","model-context-protocol","selenium","webdriver","browser-automation","testing","web-scraping","chrome","firefox","edge","automation","alerts","web-testing"],"author":{"name":"Dhivakaran Anthony Doss"},"license":"ISC","_id":"@dhivakaranthonydoss/mcp-selenium@0.1.1","maintainers":[{"name":"dhivakaranthonydoss","email":"dhivakar.anthonydoss7@gmail.com"}],"homepage":"https://github.com/dhivakaranthonydoss/mcp-selenium#readme","bugs":{"url":"https://github.com/dhivakaranthonydoss/mcp-selenium/issues"},"bin":{"mcp-selenium":"src/lib/server.js"},"dist":{"shasum":"c427d6eb602a715ebedb2296ae3f3efb2e04b276","tarball":"https://registry.npmjs.org/@dhivakaranthonydoss/mcp-selenium/-/mcp-selenium-0.1.1.tgz","fileCount":5,"integrity":"sha512-ADln9tByYtyoEc3HkKSddJThtnKagJ3l60TH/Ovca2ChDl3b8mkOfvZZyNzcdLY9NsIfJoTjhpBOBXymXGSVMQ==","signatures":[{"sig":"MEQCIFjzmG0sCH4Ej6es7igJMPjPwnDzQgJOKllTfsSb4dAXAiBuCiWOzQm7Yi5t81Ex3m3iji25ROeNFfiCCjtTrXdnQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31935},"main":"src/lib/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9c1d066f041fae68b350e12ce50d7905891e4670","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node src/lib/server.js","prepublishOnly":"echo 'Running pre-publish checks...'"},"_npmUser":{"name":"dhivakaranthonydoss","email":"dhivakar.anthonydoss7@gmail.com"},"repository":{"url":"git+https://github.com/dhivakaranthonydoss/mcp-selenium.git","type":"git"},"_npmVersion":"10.8.2","description":"A Model Context Protocol (MCP) server for Selenium WebDriver automation with support for Chrome, Firefox, and Edge browsers","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","selenium-webdriver":"^4.18.1","@modelcontextprotocol/sdk":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-selenium_0.1.1_1761456620145_0.4192966281334376","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dhivakaranthonydoss/mcp-selenium","version":"0.1.2","keywords":["mcp","model-context-protocol","selenium","webdriver","browser-automation","testing","web-scraping","chrome","firefox","edge","automation","alerts","web-testing"],"author":{"name":"Dhivakaran Anthony Doss"},"license":"ISC","_id":"@dhivakaranthonydoss/mcp-selenium@0.1.2","maintainers":[{"name":"dhivakaranthonydoss","email":"dhivakar.anthonydoss7@gmail.com"}],"homepage":"https://github.com/dhivakaranthonydoss/mcp-selenium#readme","bugs":{"url":"https://github.com/dhivakaranthonydoss/mcp-selenium/issues"},"bin":{"mcp-selenium":"src/lib/server.js"},"dist":{"shasum":"0bda3959afbf3f2904bd3a7556f9c1b6c44359a7","tarball":"https://registry.npmjs.org/@dhivakaranthonydoss/mcp-selenium/-/mcp-selenium-0.1.2.tgz","fileCount":5,"integrity":"sha512-VZRM0lGWZAmIS+7gQBrbFZx3uCZa1DYZbLgRs9TMYsdMQVEoUzE6Ccjg4PkI+GlDa+Z1F0SZdkTlrvp5iWeIPA==","signatures":[{"sig":"MEQCIDMKRAYwUPNwHY4ePSghQGGw/YaD8gsErg5R71gh7TMgAiAM3QclAaZEDYfoE5nzEZzzwP4gtpCVY+XFMkduL0eccA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30733},"main":"src/lib/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9c1d066f041fae68b350e12ce50d7905891e4670","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node src/lib/server.js","prepublishOnly":"echo 'Running pre-publish checks...'"},"_npmUser":{"name":"dhivakaranthonydoss","email":"dhivakar.anthonydoss7@gmail.com"},"repository":{"url":"git+https://github.com/dhivakaranthonydoss/mcp-selenium.git","type":"git"},"_npmVersion":"10.8.2","description":"A Model Context Protocol (MCP) server for Selenium WebDriver automation with support for Chrome, Firefox, and Edge browsers","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","selenium-webdriver":"^4.18.1","@modelcontextprotocol/sdk":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-selenium_0.1.2_1761456887281_0.5893927884438033","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@dhivakaranthonydoss/mcp-selenium","version":"0.1.3","keywords":["mcp","model-context-protocol","selenium","webdriver","browser-automation","testing","web-scraping","chrome","firefox","edge","automation","alerts","web-testing"],"author":{"name":"Dhivakaran Anthony Doss"},"license":"ISC","_id":"@dhivakaranthonydoss/mcp-selenium@0.1.3","maintainers":[{"name":"dhivakaranthonydoss","email":"dhivakar.anthonydoss7@gmail.com"}],"homepage":"https://github.com/dhivakaranthonydoss/mcp-selenium#readme","bugs":{"url":"https://github.com/dhivakaranthonydoss/mcp-selenium/issues"},"bin":{"mcp-selenium":"src/lib/server.js"},"dist":{"shasum":"aa4b0fa025e40702a1da816ce43283c5cbfa5279","tarball":"https://registry.npmjs.org/@dhivakaranthonydoss/mcp-selenium/-/mcp-selenium-0.1.3.tgz","fileCount":5,"integrity":"sha512-Kav/6urlay2gnemr28UzGyc52cYqnRK6Gd8WwVgoVnb/PThYAXtTFfvNESyAHf7bO2RCieM4OvCuJmGarVY9+w==","signatures":[{"sig":"MEUCIGLWBrEz/dwDuENc/zc2miYXHrJ0gxtiExvY4hq+XGVLAiEArirm41eaIouNGIvgQDeumERfMgy3j8+5DMFUmdBCVZw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22934},"main":"src/lib/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9c1d066f041fae68b350e12ce50d7905891e4670","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node src/lib/server.js","prepublishOnly":"echo 'Running pre-publish checks...'"},"_npmUser":{"name":"dhivakaranthonydoss","email":"dhivakar.anthonydoss7@gmail.com"},"repository":{"url":"git+https://github.com/dhivakaranthonydoss/mcp-selenium.git","type":"git"},"_npmVersion":"10.8.2","description":"A Model Context Protocol (MCP) server for Selenium WebDriver automation with support for Chrome, Firefox, and Edge browsers","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","selenium-webdriver":"^4.18.1","@modelcontextprotocol/sdk":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-selenium_0.1.3_1761457181698_0.5495028447365098","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@dhivakaranthonydoss/mcp-selenium","version":"0.1.4","keywords":["mcp","model-context-protocol","selenium","webdriver","browser-automation","testing","web-scraping","chrome","firefox","edge","automation","alerts","web-testing"],"author":{"name":"Dhivakaran Anthony Doss"},"license":"ISC","_id":"@dhivakaranthonydoss/mcp-selenium@0.1.4","maintainers":[{"name":"dhivakaranthonydoss","email":"dhivakar.anthonydoss7@gmail.com"}],"homepage":"https://github.com/dhivakaranthonydoss/mcp-selenium#readme","bugs":{"url":"https://github.com/dhivakaranthonydoss/mcp-selenium/issues"},"bin":{"mcp-selenium":"src/lib/server.js"},"dist":{"shasum":"ea5536ce353678fdb853e78cdbc38c7e14f5fa7b","tarball":"https://registry.npmjs.org/@dhivakaranthonydoss/mcp-selenium/-/mcp-selenium-0.1.4.tgz","fileCount":5,"integrity":"sha512-EgxP2AfvkorIuepLoCxxOGSon/Drw8/JSO3+OSAzPlvPvzXfUjqJ5ddSRuuhD6vdFOAnjzjeULnVlSicH6rPAQ==","signatures":[{"sig":"MEUCIQCGlIK6Mu0C22FaSzWA9NQWnVH02NPZgD8CKMW5EALUDQIgMML6iBf25ttpRBHMc7kZy/zhraaKqiQLgzb81dTmzv4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32709},"main":"src/lib/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9c1d066f041fae68b350e12ce50d7905891e4670","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node src/lib/server.js","prepublishOnly":"echo 'Running pre-publish checks...'"},"_npmUser":{"name":"dhivakaranthonydoss","email":"dhivakar.anthonydoss7@gmail.com"},"repository":{"url":"git+https://github.com/dhivakaranthonydoss/mcp-selenium.git","type":"git"},"_npmVersion":"10.8.2","description":"A Model Context Protocol (MCP) server for Selenium WebDriver automation with support for Chrome, Firefox, and Edge browsers","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","selenium-webdriver":"^4.18.1","@modelcontextprotocol/sdk":"^1.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mcp-selenium_0.1.4_1761471859296_0.07364907519155128","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@dhivakaranthonydoss/mcp-selenium","version":"0.1.5","description":"A Model Context Protocol (MCP) server for Selenium WebDriver automation with support for Chrome, Firefox, and Edge browsers","type":"module","main":"src/lib/server.js","bin":{"mcp-selenium":"src/lib/server.js"},"scripts":{"start":"node src/lib/server.js","test":"echo \"Error: no test specified\" && exit 1","prepublishOnly":"echo 'Running pre-publish checks...'"},"keywords":["mcp","model-context-protocol","selenium","webdriver","browser-automation","testing","web-scraping","chrome","firefox","edge","automation","alerts","web-testing"],"author":{"name":"Dhivakaran Anthony Doss"},"license":"ISC","homepage":"https://github.com/dhivakaranthonydoss/mcp-selenium#readme","repository":{"type":"git","url":"git+https://github.com/dhivakaranthonydoss/mcp-selenium.git"},"bugs":{"url":"https://github.com/dhivakaranthonydoss/mcp-selenium/issues"},"engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.7.0","selenium-webdriver":"^4.18.1","zod":"^3.22.0"},"publishConfig":{"access":"public"},"_id":"@dhivakaranthonydoss/mcp-selenium@0.1.5","gitHead":"9c1d066f041fae68b350e12ce50d7905891e4670","_nodeVersion":"20.18.3","_npmVersion":"10.8.2","dist":{"integrity":"sha512-AqLH/BwnHgD7shwzuP9+JGMUjSkkeCgAGb+S/OQ+9R+PU1Lgpp+jJqGQc91UXWImTQtY2nnrTfLyEmRRGh1Bkw==","shasum":"865f1c5efecc7b56227384f5c08bb1b0f6575dca","tarball":"https://registry.npmjs.org/@dhivakaranthonydoss/mcp-selenium/-/mcp-selenium-0.1.5.tgz","fileCount":5,"unpackedSize":33458,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCav2S/enwALcoDFpdiExzgmw9t7sAormZZsEc1TOrc0QIgXLCh6UQnsGyRdRJMQjS4wVtsxUeUNBktVQd+rSr7/7I="}]},"_npmUser":{"name":"dhivakaranthonydoss","email":"dhivakar.anthonydoss7@gmail.com"},"directories":{},"maintainers":[{"name":"dhivakaranthonydoss","email":"dhivakar.anthonydoss7@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-selenium_0.1.5_1761542899104_0.9338091159265323"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-26T05:30:20.054Z","modified":"2025-10-27T05:28:19.510Z","0.1.1":"2025-10-26T05:30:20.382Z","0.1.2":"2025-10-26T05:34:47.466Z","0.1.3":"2025-10-26T05:39:41.880Z","0.1.4":"2025-10-26T09:44:19.481Z","0.1.5":"2025-10-27T05:28:19.284Z"},"bugs":{"url":"https://github.com/dhivakaranthonydoss/mcp-selenium/issues"},"author":{"name":"Dhivakaran Anthony Doss"},"license":"ISC","homepage":"https://github.com/dhivakaranthonydoss/mcp-selenium#readme","keywords":["mcp","model-context-protocol","selenium","webdriver","browser-automation","testing","web-scraping","chrome","firefox","edge","automation","alerts","web-testing"],"repository":{"type":"git","url":"git+https://github.com/dhivakaranthonydoss/mcp-selenium.git"},"description":"A Model Context Protocol (MCP) server for Selenium WebDriver automation with support for Chrome, Firefox, and Edge browsers","maintainers":[{"name":"dhivakaranthonydoss","email":"dhivakar.anthonydoss7@gmail.com"}],"readme":"<div align=\"center\">\r\n\r\n# 🚀 MCP Selenium Server\r\n\r\n<p align=\"center\">\r\n  <strong>A powerful Model Context Protocol (MCP) server for seamless browser automation</strong>\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <a href=\"#-features\">Features</a> •\r\n  <a href=\"#-quick-start\">Quick Start</a> •\r\n  <a href=\"#-installation\">Installation</a> •\r\n  <a href=\"#-api-reference\">API Reference</a> •\r\n  <a href=\"#-examples\">Examples</a>\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <img src=\"https://img.shields.io/npm/v/@dhivakaranthonydoss/mcp-selenium?style=flat-square&color=blue\" alt=\"npm version\" />\r\n  <img src=\"https://img.shields.io/npm/dt/@dhivakaranthonydoss/mcp-selenium?style=flat-square&color=green\" alt=\"downloads\" />\r\n  <img src=\"https://img.shields.io/github/license/dhivakaranthonydoss/mcp-selenium?style=flat-square&color=orange\" alt=\"license\" />\r\n  <img src=\"https://img.shields.io/node/v/@dhivakaranthonydoss/mcp-selenium?style=flat-square&color=brightgreen\" alt=\"node version\" />\r\n</p>\r\n\r\n</div>\r\n\r\n---\r\n\r\n## ✨ What is MCP Selenium Server?\r\n\r\nMCP Selenium Server bridges the gap between AI assistants and web browser automation. Built on the **Model Context Protocol (MCP)**, it enables AI agents to interact with web browsers just like humans do - clicking buttons, filling forms, taking screenshots, and handling complex web interactions.\r\n\r\nPerfect for:\r\n- 🤖 **AI-driven web automation**\r\n- 🧪 **Automated testing workflows**  \r\n- 📊 **Web scraping and data extraction**\r\n- 🔍 **Browser-based monitoring**\r\n- 📱 **Cross-browser compatibility testing**\r\n\r\n## 🎯 Features\r\n\r\n### 🌐 Browser Management\r\n- **Multi-browser support**: Chrome, Firefox, Microsoft Edge\r\n- **Headless mode**: Run browsers invisibly in the background\r\n- **Custom options**: Configure browser arguments and preferences\r\n- **Session management**: Handle multiple browser instances\r\n\r\n### 🎮 Element Interactions\r\n- **Smart element finding**: ID, CSS, XPath, name, tag, class selectors\r\n- **User actions**: Click, type, hover, drag & drop\r\n- **Advanced gestures**: Double-click, right-click, keyboard shortcuts\r\n- **File operations**: Upload files with ease\r\n\r\n### 🚨 Alert Handling\r\n- **JavaScript alerts**: Accept or dismiss alert dialogs\r\n- **Confirmations**: Handle confirm dialogs programmatically  \r\n- **Prompts**: Send text to prompt dialogs\r\n- **Text extraction**: Get alert message content\r\n\r\n### 📸 Visual Capture\r\n- **Screenshots**: Capture full-page or element-specific images\r\n- **Base64 support**: Get images as data URIs\r\n- **File saving**: Save screenshots to disk\r\n\r\n### ⚡ Advanced Capabilities\r\n- **Wait strategies**: Smart waiting for elements and conditions\r\n- **Error handling**: Robust error management and reporting\r\n- **Timeout controls**: Configurable timeouts for all operations\r\n\r\n## 🚀 Quick Start\r\n\r\n### 1. Install the Package\r\n\r\n```bash\r\nnpm install -g @dhivakaranthonydoss/mcp-selenium\r\n```\r\n\r\n### 2. Configure Your MCP Client\r\n\r\nAdd to your MCP configuration (e.g., Claude Desktop):\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"selenium\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@dhivakaranthonydoss/mcp-selenium\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### 3. Start Automating!\r\n\r\nYour AI assistant can now control browsers:\r\n\r\n```\r\n🤖 \"Please open Chrome, navigate to example.com, and take a screenshot\"\r\n```\r\n\r\n## 📦 Installation\r\n\r\n### Option 1: Global Installation\r\n```bash\r\nnpm install -g @dhivakaranthonydoss/mcp-selenium\r\n```\r\n\r\n### Option 2: Use with NPX (Recommended)\r\n```bash\r\nnpx @dhivakaranthonydoss/mcp-selenium\r\n```\r\n\r\n### Option 3: Local Project Installation\r\n```bash\r\nnpm install @dhivakaranthonydoss/mcp-selenium\r\n```\r\n\r\n## 🛠️ Supported Browsers\r\n\r\n| Browser | Version | Status | Notes |\r\n|---------|---------|--------|-------|\r\n| **Chrome** | 70+ | ✅ Full Support | Recommended for best performance |\r\n| **Firefox** | 60+ | ✅ Full Support | Good alternative to Chrome |\r\n| **Microsoft Edge** | 79+ | ✅ Full Support | Chromium-based versions |\r\n\r\n> **Note**: Make sure you have the browsers installed on your system. WebDriver will be managed automatically.\r\n\r\n## 📚 API Reference\r\n\r\n### Browser Management\r\n\r\n#### `start_browser`\r\nLaunch a new browser session\r\n\r\n```json\r\n{\r\n  \"tool\": \"start_browser\",\r\n  \"parameters\": {\r\n    \"browser\": \"chrome\",\r\n    \"options\": {\r\n      \"headless\": true,\r\n      \"arguments\": [\"--no-sandbox\", \"--disable-dev-shm-usage\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n#### `navigate`\r\nNavigate to a URL\r\n\r\n```json\r\n{\r\n  \"tool\": \"navigate\",\r\n  \"parameters\": {\r\n    \"url\": \"https://example.com\"\r\n  }\r\n}\r\n```\r\n\r\n#### `close_session`\r\nClose the current browser session\r\n\r\n```json\r\n{\r\n  \"tool\": \"close_session\",\r\n  \"parameters\": {}\r\n}\r\n```\r\n\r\n### Element Interactions\r\n\r\n#### `find_element`\r\nLocate an element on the page\r\n\r\n```json\r\n{\r\n  \"tool\": \"find_element\",\r\n  \"parameters\": {\r\n    \"by\": \"id\",\r\n    \"value\": \"search-box\",\r\n    \"timeout\": 10000\r\n  }\r\n}\r\n```\r\n\r\n#### `click_element`\r\nClick on an element\r\n\r\n```json\r\n{\r\n  \"tool\": \"click_element\",\r\n  \"parameters\": {\r\n    \"by\": \"css\",\r\n    \"value\": \".submit-button\"\r\n  }\r\n}\r\n```\r\n\r\n#### `send_keys`\r\nType text into an element\r\n\r\n```json\r\n{\r\n  \"tool\": \"send_keys\",\r\n  \"parameters\": {\r\n    \"by\": \"name\",\r\n    \"value\": \"username\",\r\n    \"text\": \"myusername\"\r\n  }\r\n}\r\n```\r\n\r\n#### `get_element_text`\r\nExtract text from an element\r\n\r\n```json\r\n{\r\n  \"tool\": \"get_element_text\",\r\n  \"parameters\": {\r\n    \"by\": \"css\",\r\n    \"value\": \".status-message\"\r\n  }\r\n}\r\n```\r\n\r\n### Mouse Actions\r\n\r\n#### `hover`\r\nHover over an element\r\n\r\n```json\r\n{\r\n  \"tool\": \"hover\",\r\n  \"parameters\": {\r\n    \"by\": \"css\",\r\n    \"value\": \".dropdown-trigger\"\r\n  }\r\n}\r\n```\r\n\r\n#### `drag_and_drop`\r\nDrag one element to another\r\n\r\n```json\r\n{\r\n  \"tool\": \"drag_and_drop\",\r\n  \"parameters\": {\r\n    \"by\": \"id\",\r\n    \"value\": \"draggable-item\",\r\n    \"targetBy\": \"id\",\r\n    \"targetValue\": \"drop-zone\"\r\n  }\r\n}\r\n```\r\n\r\n#### `double_click`\r\nPerform a double-click\r\n\r\n```json\r\n{\r\n  \"tool\": \"double_click\",\r\n  \"parameters\": {\r\n    \"by\": \"css\",\r\n    \"value\": \".file-item\"\r\n  }\r\n}\r\n```\r\n\r\n#### `right_click`\r\nPerform a right-click (context menu)\r\n\r\n```json\r\n{\r\n  \"tool\": \"right_click\",\r\n  \"parameters\": {\r\n    \"by\": \"css\",\r\n    \"value\": \".context-menu-trigger\"\r\n  }\r\n}\r\n```\r\n\r\n### Alert Handling\r\n\r\n#### `accept_alert`\r\nAccept a JavaScript alert\r\n\r\n```json\r\n{\r\n  \"tool\": \"accept_alert\",\r\n  \"parameters\": {}\r\n}\r\n```\r\n\r\n#### `dismiss_alert`\r\nDismiss/cancel an alert\r\n\r\n```json\r\n{\r\n  \"tool\": \"dismiss_alert\",\r\n  \"parameters\": {}\r\n}\r\n```\r\n\r\n#### `get_alert_text`\r\nGet the text from an alert\r\n\r\n```json\r\n{\r\n  \"tool\": \"get_alert_text\",\r\n  \"parameters\": {}\r\n}\r\n```\r\n\r\n#### `send_alert_text`\r\nSend text to a prompt dialog\r\n\r\n```json\r\n{\r\n  \"tool\": \"send_alert_text\",\r\n  \"parameters\": {\r\n    \"text\": \"My response\"\r\n  }\r\n}\r\n```\r\n\r\n### Keyboard & File Operations\r\n\r\n#### `press_key`\r\nPress a keyboard key\r\n\r\n```json\r\n{\r\n  \"tool\": \"press_key\",\r\n  \"parameters\": {\r\n    \"key\": \"Enter\"\r\n  }\r\n}\r\n```\r\n\r\n#### `upload_file`\r\nUpload a file using a file input\r\n\r\n```json\r\n{\r\n  \"tool\": \"upload_file\",\r\n  \"parameters\": {\r\n    \"by\": \"css\",\r\n    \"value\": \"input[type='file']\",\r\n    \"filePath\": \"/path/to/file.pdf\"\r\n  }\r\n}\r\n```\r\n\r\n#### `take_screenshot`\r\nCapture a screenshot\r\n\r\n```json\r\n{\r\n  \"tool\": \"take_screenshot\",\r\n  \"parameters\": {\r\n    \"outputPath\": \"/path/to/screenshot.png\"\r\n  }\r\n}\r\n```\r\n\r\n## 🎨 Examples\r\n\r\n### Example 1: Basic Web Automation\r\n\r\n```javascript\r\n// Start browser and navigate\r\nawait startBrowser({ browser: \"chrome\", options: { headless: false }});\r\nawait navigate({ url: \"https://example.com\" });\r\n\r\n// Find and interact with elements\r\nawait clickElement({ by: \"css\", value: \".login-button\" });\r\nawait sendKeys({ by: \"id\", value: \"username\", text: \"testuser\" });\r\nawait sendKeys({ by: \"id\", value: \"password\", text: \"password123\" });\r\nawait clickElement({ by: \"css\", value: \".submit-btn\" });\r\n\r\n// Take a screenshot\r\nawait takeScreenshot({ outputPath: \"./login-success.png\" });\r\n```\r\n\r\n### Example 2: Form Automation with Alerts\r\n\r\n```javascript\r\n// Fill out a contact form\r\nawait sendKeys({ by: \"name\", value: \"email\", text: \"test@example.com\" });\r\nawait sendKeys({ by: \"name\", value: \"message\", text: \"Hello World!\" });\r\nawait clickElement({ by: \"css\", value: \".send-button\" });\r\n\r\n// Handle confirmation alert\r\nconst alertText = await getAlertText();\r\nconsole.log(\"Alert says:\", alertText);\r\nawait acceptAlert();\r\n```\r\n\r\n### Example 3: E-commerce Automation\r\n\r\n```javascript\r\n// Product search and selection\r\nawait sendKeys({ by: \"css\", value: \".search-input\", text: \"laptop\" });\r\nawait pressKey({ key: \"Enter\" });\r\n\r\n// Hover over product to see details\r\nawait hover({ by: \"css\", value: \".product-item:first-child\" });\r\n\r\n// Add to cart\r\nawait clickElement({ by: \"css\", value: \".add-to-cart\" });\r\n\r\n// Drag product to wishlist\r\nawait dragAndDrop({ \r\n  by: \"css\", value: \".product-item\",\r\n  targetBy: \"css\", targetValue: \".wishlist-area\"\r\n});\r\n```\r\n\r\n## 🔧 Configuration\r\n\r\n### Browser Options\r\n\r\n| Option | Type | Description | Example |\r\n|--------|------|-------------|---------|\r\n| `headless` | boolean | Run browser without GUI | `true` |\r\n| `arguments` | string[] | Custom browser arguments | `[\"--no-sandbox\"]` |\r\n\r\n### Locator Strategies\r\n\r\n| Strategy | Description | Example |\r\n|----------|-------------|---------|\r\n| `id` | Find by element ID | `\"submit-button\"` |\r\n| `css` | Find by CSS selector | `\".btn.primary\"` |\r\n| `xpath` | Find by XPath expression | `\"//button[@type='submit']\"` |\r\n| `name` | Find by name attribute | `\"username\"` |\r\n| `tag` | Find by tag name | `\"button\"` |\r\n| `class` | Find by class name | `\"submit-btn\"` |\r\n\r\n## 🤝 Contributing\r\n\r\nWe welcome contributions! Here's how you can help:\r\n\r\n1. **Fork** the repository\r\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\r\n3. **Commit** your changes (`git commit -m 'Add some amazing feature'`)\r\n4. **Push** to the branch (`git push origin feature/amazing-feature`)\r\n5. **Open** a Pull Request\r\n\r\n### Development Setup\r\n\r\n```bash\r\n# Clone the repository\r\ngit clone https://github.com/dhivakaranthonydoss/mcp-selenium.git\r\n\r\n# Install dependencies\r\nnpm install\r\n\r\n# Start development\r\nnpm run start\r\n```\r\n\r\n## 📄 License\r\n\r\nThis project is licensed under the **ISC License** - see the [LICENSE](LICENSE) file for details.\r\n\r\n## 👨‍💻 Author\r\n\r\n**Dhivakaran Anthony Doss**\r\n\r\n- GitHub: [@dhivakaranthonydoss](https://github.com/dhivakaranthonydoss)\r\n- Package: [@dhivakaranthonydoss/mcp-selenium](https://www.npmjs.com/package/@dhivakaranthonydoss/mcp-selenium)\r\n\r\n## 🙏 Acknowledgments\r\n\r\n- Built on the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/)\r\n- Powered by [Selenium WebDriver](https://selenium.dev/)\r\n- Inspired by the need for AI-driven browser automation\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n\r\n**⭐ Star this repo if you find it useful! ⭐**\r\n\r\n[Report Bug](https://github.com/dhivakaranthonydoss/mcp-selenium/issues) • [Request Feature](https://github.com/dhivakaranthonydoss/mcp-selenium/issues) • [Contribute](https://github.com/dhivakaranthonydoss/mcp-selenium/blob/main/CONTRIBUTING.md)\r\n\r\n</div>","readmeFilename":"README.md"}