diff --git a/CHANGELOG.md b/CHANGELOG.md index 03894bd..31f2859 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,21 @@ All notable changes to MCP Selenium will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.0.1] - 2025-06-12 + +### Added +- Added Windows installer (`install.bat`) +- Fixed path handling in bash script for Windows +- Proper JSON escaping for Windows paths +- Updated documentation with platform-specific instructions + ## [1.0.0] - 2025-06-11 ### Added **Core MCP Server** -- Full MCP 2024-11-05 protocol implementation +- Full MCP protocol implementation - JSON-RPC communication over stdin/stdout - Comprehensive tool discovery and validation - Graceful error handling and recovery diff --git a/README.md b/README.md index 8d19a6a..e1cd7c2 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,10 @@ # MCP Selenium - The Industry Standard [![Maven Central](https://img.shields.io/maven-central/v/io.github.abarrac/mcp-selenium.svg)](https://search.maven.org/artifact/io.github.abarrac/mcp-selenium) -[![Build Status](https://github.com/abarrac/mcp-selenium/workflows/CI/badge.svg)](https://github.com/abarrac/mcp-selenium/actions) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Java](https://img.shields.io/badge/Java-11%2B-orange.svg)](https://openjdk.java.net/) -> The professional-grade Selenium WebDriver MCP server for AI agents and automation tools, trusted by developers worldwide. +> The professional-grade Selenium WebDriver MCP server for AI agents and automation tools. MCP Selenium provides a comprehensive Model Context Protocol (MCP) implementation for browser automation, making it effortless for **any AI agent or automation tool** to interact with web applications. Built with enterprise-grade reliability and performance in mind. @@ -14,7 +13,7 @@ MCP Selenium provides a comprehensive Model Context Protocol (MCP) implementatio Before installing MCP Selenium, ensure you have: - **Java 11+** -- **Chrome Browser** - [Download here](https://www.google.com/chrome/) (recommended) +- **Chrome Browser** - [Download here](https://www.google.com/chrome/) - **Claude Desktop** - [Download here](https://claude.ai/download) (for Claude integration) ### Quick Check @@ -32,9 +31,11 @@ google-chrome --version # Linux ## 🚀 Quick Start ### For Claude Desktop Users -1. **Install & Configure:** `curl -sSL https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.sh | bash` +1. **Install & Configure:** + - **Windows**: `powershell -Command "Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.bat' -OutFile 'install.bat'; .\install.bat"` + - **macOS/Linux**: `curl -sSL https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.sh | bash` 2. **Restart:** Claude Desktop -3. **Test:** Ask Claude to "take a screenshot of google.com" +3. **Test:** Ask Claude to "using selenium MCP tools, navigate to google.com and take a screenshot" For detailed installation options, see [Configuration](#-configuration). @@ -123,19 +124,26 @@ MCP Selenium Core Choose one of these installation methods: **Option A: Quick Install (Recommended)** + +**Windows:** +```powershell +powershell -Command "Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.bat' -OutFile 'install.bat'; .\install.bat" +``` + +**macOS/Linux:** ```bash curl -sSL https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.sh | bash ``` -*This script automatically handles Step 2 configuration. Skip to Step 3 after installation.* +*These scripts automatically handle Step 2 configuration. Skip to Step 3 after installation.* **Option B: Manual Download** ```bash # Download the latest release -wget https://github.com/abarrac/mcp-selenium/releases/latest/download/mcp-selenium-1.0.0.jar +wget https://github.com/abarrac/mcp-selenium/releases/latest/download/mcp-selenium-1.0.1.jar # Move to a permanent location mkdir -p ~/.mcp-selenium -mv mcp-selenium-1.0.0.jar ~/.mcp-selenium/mcp-selenium.jar +mv mcp-selenium-1.0.1.jar ~/.mcp-selenium/mcp-selenium.jar ``` **Option C: Build from Source** @@ -143,7 +151,7 @@ mv mcp-selenium-1.0.0.jar ~/.mcp-selenium/mcp-selenium.jar git clone https://github.com/abarrac/mcp-selenium.git cd mcp-selenium mvn clean package -cp target/mcp-selenium-1.0.0.jar ~/.mcp-selenium/mcp-selenium.jar +cp target/mcp-selenium-1.0.1.jar ~/.mcp-selenium/mcp-selenium.jar ``` #### Step 2: Configure Claude Desktop (Manual Installation Only) @@ -172,7 +180,7 @@ Restart Claude Desktop for the changes to take effect. #### Step 4: Verify Installation Open Claude Desktop and try asking: ``` -"Take a screenshot of google.com" +"Take a screenshot of google.com using selenium MCP tools" ``` If you see browser automation happening, you're all set! 🎉 @@ -227,27 +235,6 @@ MCP Selenium supports all major selector strategies: | Class | `class=value` | `class=btn-primary` | | Tag | `tag=value` | `tag=button` | -## 🚢 Installation Options - -### Option 1: Quick Install Script -```bash -curl -sSL https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.sh | bash -``` - -### Option 2: Maven/Gradle -```xml - - io.github.abarrac - mcp-selenium - 1.0.0 - -``` - -### Option 3: GitHub Releases -```bash -wget https://github.com/abarrac/mcp-selenium/releases/latest/download/mcp-selenium-1.0.0.jar -``` - ## 📋 Requirements - **Java**: 11 or higher diff --git a/README_es.md b/README_es.md index 972dfaf..1a3ed65 100644 --- a/README_es.md +++ b/README_es.md @@ -1,11 +1,10 @@ # MCP Selenium - El Estándar de la Industria [![Maven Central](https://img.shields.io/maven-central/v/io.github.abarrac/mcp-selenium.svg)](https://search.maven.org/artifact/io.github.abarrac/mcp-selenium) -[![Build Status](https://github.com/abarrac/mcp-selenium/workflows/CI/badge.svg)](https://github.com/abarrac/mcp-selenium/actions) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Java](https://img.shields.io/badge/Java-11%2B-orange.svg)](https://openjdk.java.net/) -> El servidor MCP de Selenium WebDriver de nivel profesional para agentes de IA y herramientas de automatización, en el que confían desarrolladores de todo el mundo. +> El servidor MCP de Selenium WebDriver de nivel profesional para agentes de IA y herramientas de automatización. MCP Selenium proporciona una implementación completa del Protocolo de Contexto de Modelo (MCP) para automatización de navegadores, haciendo que sea muy fácil para **cualquier agente de IA o herramienta de automatización** interactuar con aplicaciones web. Construido pensando en la fiabilidad y el rendimiento de nivel empresarial. @@ -14,7 +13,7 @@ MCP Selenium proporciona una implementación completa del Protocolo de Contexto Antes de instalar MCP Selenium, asegúrate de tener: - **Java 11+** -- **Navegador Chrome** - [Descargar aquí](https://www.google.com/chrome/) (recomendado) +- **Navegador Chrome** - [Descargar aquí](https://www.google.com/chrome/) - **Claude Desktop** - [Descargar aquí](https://claude.ai/download) (para integración con Claude) ### Verificación Rápida @@ -32,9 +31,11 @@ google-chrome --version # Linux ## 🚀 Inicio Rápido ### Para Usuarios de Claude Desktop -1. **Instalar y Configurar:** `curl -sSL https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.sh | bash` +1. **Instalar y Configurar:** + - **Windows**: `powershell -Command "Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.bat' -OutFile 'install.bat'; .\install.bat"` + - **macOS/Linux**: `curl -sSL https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.sh | bash` 2. **Reiniciar:** Claude Desktop -3. **Probar:** Pregunta a Claude "toma una captura de pantalla de google.com" +3. **Probar:** Pregunta a Claude "utilizando las herramientas de selenium MCP, navega a google.com y toma una captura de pantalla" Para opciones de instalación detalladas, consulta [Configuración](#-configuración). @@ -123,19 +124,26 @@ MCP Selenium Core Elige uno de estos métodos de instalación: **Opción A: Instalación Rápida (Recomendada)** + +**Windows:** +```powershell +powershell -Command "Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.bat' -OutFile 'install.bat'; .\install.bat" +``` + +**macOS/Linux:** ```bash curl -sSL https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.sh | bash ``` -*Este script maneja automáticamente la configuración del Paso 2. Salta al Paso 3 después de la instalación.* +*Estos scripts manejan automáticamente la configuración del Paso 2. Salta al Paso 3 después de la instalación.* **Opción B: Descarga Manual** ```bash # Descargar la última versión -wget https://github.com/abarrac/mcp-selenium/releases/latest/download/mcp-selenium-1.0.0.jar +wget https://github.com/abarrac/mcp-selenium/releases/latest/download/mcp-selenium-1.0.1.jar # Mover a una ubicación permanente mkdir -p ~/.mcp-selenium -mv mcp-selenium-1.0.0.jar ~/.mcp-selenium/mcp-selenium.jar +mv mcp-selenium-1.0.1.jar ~/.mcp-selenium/mcp-selenium.jar ``` **Opción C: Compilar desde el Código Fuente** @@ -143,7 +151,7 @@ mv mcp-selenium-1.0.0.jar ~/.mcp-selenium/mcp-selenium.jar git clone https://github.com/abarrac/mcp-selenium.git cd mcp-selenium mvn clean package -cp target/mcp-selenium-1.0.0.jar ~/.mcp-selenium/mcp-selenium.jar +cp target/mcp-selenium-1.0.1.jar ~/.mcp-selenium/mcp-selenium.jar ``` #### Paso 2: Configurar Claude Desktop (Solo Instalación Manual) @@ -174,7 +182,7 @@ Reinicia Claude Desktop para que los cambios surtan efecto. #### Paso 4: Verificar la Instalación Abre Claude Desktop y prueba preguntando: ``` -"Toma una captura de pantalla de google.com" +"Toma una captura de pantalla de google.com utilizando las herramientas de selenium MCP" ``` ¡Si ves que la automatización del navegador está funcionando, ya está todo listo! 🎉 @@ -229,27 +237,6 @@ MCP Selenium soporta todas las estrategias principales de selectores: | Class | `class=value` | `class=btn-primary` | | Tag | `tag=value` | `tag=button` | -## 🚢 Opciones de Instalación - -### Opción 1: Script de Instalación Rápida -```bash -curl -sSL https://raw.githubusercontent.com/abarrac/mcp-selenium/main/install.sh | bash -``` - -### Opción 2: Maven/Gradle -```xml - - io.github.abarrac - mcp-selenium - 1.0.0 - -``` - -### Opción 3: Releases de GitHub -```bash -wget https://github.com/abarrac/mcp-selenium/releases/latest/download/mcp-selenium-1.0.0.jar -``` - ## 📋 Requisitos - **Java**: 11 o superior diff --git a/install.bat b/install.bat new file mode 100644 index 0000000..91dd4f1 --- /dev/null +++ b/install.bat @@ -0,0 +1,87 @@ +@echo off +setlocal enabledelayedexpansion + +echo Installing MCP Selenium for Windows... +echo. + +REM Check if Java is installed +java -version >nul 2>&1 +if errorlevel 1 ( + echo ERROR: Java is not installed or not in PATH + echo Please install Java 11+ + echo. + pause + exit /b 1 +) + +echo Java found +echo. + +REM Create installation directory +set INSTALL_DIR=%USERPROFILE%\.mcp-selenium +if not exist "%INSTALL_DIR%" mkdir "%INSTALL_DIR%" + +echo Downloading MCP Selenium... + +REM Download using PowerShell (built into Windows) +powershell -Command "try { Invoke-WebRequest -Uri 'https://github.com/abarrac/mcp-selenium/releases/latest/download/mcp-selenium-1.0.1.jar' -OutFile '%INSTALL_DIR%\mcp-selenium.jar' -UseBasicParsing; Write-Host 'Download completed' } catch { Write-Host 'Download failed'; exit 1 }" + +if not exist "%INSTALL_DIR%\mcp-selenium.jar" ( + echo ERROR: Failed to download MCP Selenium JAR + pause + exit /b 1 +) + +echo Download successful +echo. + +REM Claude Desktop config path for Windows +set CONFIG_DIR=%APPDATA%\Claude +set CONFIG_FILE=%CONFIG_DIR%\claude_desktop_config.json + +echo Config location: %CONFIG_FILE% +echo. + +REM Create Claude config directory if it doesn't exist +if not exist "%CONFIG_DIR%" mkdir "%CONFIG_DIR%" + +REM Prepare JAR path with escaped backslashes for JSON +set JAR_PATH=%INSTALL_DIR%\mcp-selenium.jar +set JAR_PATH_JSON=!JAR_PATH:\=\\! + +REM Check if config file exists +if exist "%CONFIG_FILE%" ( + echo WARNING: Claude Desktop config already exists. + echo Please manually add MCP Selenium to: %CONFIG_FILE% + echo. + echo Add this configuration to the mcpServers section: + echo "selenium": { + echo "command": "java", + echo "args": ["-jar", "!JAR_PATH_JSON!"] + echo } + echo. +) else ( + echo Creating Claude Desktop config... + ( + echo { + echo "mcpServers": { + echo "selenium": { + echo "command": "java", + echo "args": ["-jar", "!JAR_PATH_JSON!"] + echo } + echo } + echo } + ) > "%CONFIG_FILE%" + echo Config created successfully + echo. +) + +echo Installation completed! +echo. +echo Next steps: +echo 1. Restart Claude Desktop +echo 2. Test with: 'Using selenium MCP tools, navigate to google.com and take a screenshot' +echo. +echo For support, visit: https://github.com/abarrac/mcp-selenium +echo. +pause diff --git a/install.sh b/install.sh index 895a5dc..9525d3d 100644 --- a/install.sh +++ b/install.sh @@ -9,10 +9,7 @@ echo "🚀 Installing MCP Selenium..." # Check if Java is installed if ! command -v java &> /dev/null; then - echo "❌ Java is not installed. Please install Java 11+ first:" - echo " macOS: brew install openjdk@11" - echo " Ubuntu: sudo apt install openjdk-11-jdk" - echo " Or download from: https://adoptium.net/" + echo "❌ Java is not installed. Please install Java 11+ first" exit 1 fi @@ -32,7 +29,7 @@ mkdir -p "$INSTALL_DIR" echo "📦 Downloading MCP Selenium..." # Download the latest release -JAR_URL="https://github.com/abarrac/mcp-selenium/releases/latest/download/mcp-selenium-1.0.0.jar" +JAR_URL="https://github.com/abarrac/mcp-selenium/releases/latest/download/mcp-selenium-1.0.1.jar" JAR_PATH="$INSTALL_DIR/mcp-selenium.jar" # Download the JAR file @@ -60,8 +57,11 @@ elif [[ "$OSTYPE" == "linux-gnu"* ]]; then CONFIG_DIR="$HOME/.config/Claude" OS_NAME="Linux" elif [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then + # Windows (Git Bash, MSYS2, Cygwin) CONFIG_DIR="$APPDATA/Claude" OS_NAME="Windows" + # Convert Windows path to Unix style for this script + CONFIG_DIR=$(cygpath -u "$CONFIG_DIR" 2>/dev/null || echo "$CONFIG_DIR") else CONFIG_DIR="$HOME/.config/Claude" OS_NAME="Unknown" @@ -80,14 +80,37 @@ if [ -f "$CONFIG_FILE" ]; then echo "⚠️ Claude Desktop config already exists." echo " Please manually add MCP Selenium to: $CONFIG_FILE" echo "" - echo " Add this configuration:" - echo ' "selenium": {' - echo ' "command": "java",' - echo ' "args": ["-jar", "'"$JAR_PATH"'"]' - echo ' }' + echo " Add this configuration to the mcpServers section:" + if [[ "$OS_NAME" == "Windows" ]]; then + # For Windows, use escaped backslashes in JSON + WIN_JAR_PATH=$(echo "$JAR_PATH" | sed 's|/|\\\\|g') + echo ' "selenium": {' + echo ' "command": "java",' + echo " \"args\": [\"-jar\", \"$WIN_JAR_PATH\"]" + echo ' }' + else + echo ' "selenium": {' + echo ' "command": "java",' + echo ' "args": ["-jar", "'"$JAR_PATH"'"]' + echo ' }' + fi else echo "📝 Creating Claude Desktop config..." - cat > "$CONFIG_FILE" << EOF + if [[ "$OS_NAME" == "Windows" ]]; then + # For Windows, escape backslashes for JSON + WIN_JAR_PATH=$(echo "$JAR_PATH" | sed 's|/|\\\\|g') + cat > "$CONFIG_FILE" << EOF +{ + "mcpServers": { + "selenium": { + "command": "java", + "args": ["-jar", "$WIN_JAR_PATH"] + } + } +} +EOF + else + cat > "$CONFIG_FILE" << EOF { "mcpServers": { "selenium": { @@ -97,6 +120,7 @@ else } } EOF + fi echo "✅ Config created at: $CONFIG_FILE" fi @@ -105,6 +129,6 @@ echo "🎉 Installation completed!" echo "" echo "Next steps:" echo "1. Restart Claude Desktop" -echo "2. Test with: 'Take a screenshot of google.com'" +echo "2. Test with: 'Using selenium MCP tools, navigate to google.com and take a screenshot'" echo "" echo "For support, visit: https://github.com/abarrac/mcp-selenium" diff --git a/pom.xml b/pom.xml index a8bc85c..ad168cf 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.mcp mcp-selenium - 1.0.0 + 1.0.1 jar