MCP Selenium

by angiejones
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Supports launching and controlling Firefox browser sessions with customizable options through Selenium WebDriver.

  • Allows AI agents to control web browsers through the Selenium WebDriver. Supports starting browser sessions, navigating to URLs, finding elements, clicking, typing, and performing various mouse and keyboard actions.

Servidor de selenio MCP

Una implementación de servidor de Protocolo de contexto de modelo (MCP) para Selenium WebDriver, que permite la automatización del navegador a través de clientes MCP estandarizados.

Características

  • Iniciar sesiones de navegador con opciones personalizables
  • Navegar a las URL
  • Encuentre elementos utilizando diversas estrategias de localización
  • Haga clic, escriba e interactúe con los elementos
  • Realizar acciones del mouse (pasar el mouse, arrastrar y soltar)
  • Manejar la entrada del teclado
  • Tomar capturas de pantalla
  • Subir archivos
  • Soporte para modo sin cabeza
  • Cromo
  • Firefox

Usar con Goose

Opción 1: Instalación con un solo clic

Copie y pegue el siguiente enlace en la barra de direcciones de un navegador para agregar esta extensión a Goose Desktop:

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

Opción 2: Agregar manualmente al escritorio o CLI

  • Nombre: Selenium MCP
  • Descripción: automates browser interactions
  • Comando: npx -y @angiejones/mcp-selenium

Úselo con otros clientes MCP (por ejemplo, Claude Desktop, etc.)

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

Desarrollo

Para trabajar en este proyecto:

  1. Clonar el repositorio
  2. Instalar dependencias: npm install
  3. Ejecute el servidor: npm start

Instalación

Instalación mediante herrería

Para instalar MCP Selenium para Claude Desktop automáticamente a través de Smithery :

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

Instalación manual

npm install -g @angiejones/mcp-selenium

Uso

Inicie el servidor ejecutando:

mcp-selenium

O úselo con NPX en su configuración MCP:

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

Herramientas

iniciar_navegador

Inicia una sesión del navegador.

Parámetros:

  • browser (obligatorio): Navegador a iniciar
    • Tipo: cadena
    • Enumeración: ["chrome", "firefox"]
  • options : Opciones de configuración del navegador
    • Tipo: objeto
    • Propiedades:
      • headless : ejecuta el navegador en modo sin cabeza
        • Tipo: booleano
      • arguments : argumentos adicionales del navegador
        • Tipo: matriz de cadenas

Ejemplo:

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

Navega a una URL.

Parámetros:

  • url (obligatorio): URL a la que navegar
    • Tipo: cadena

Ejemplo:

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

elemento_buscar

Encuentra un elemento en la página.

Parámetros:

  • by (obligatorio): Estrategia de localización
    • Tipo: cadena
    • Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
  • value (obligatorio): Valor para la estrategia de localización
    • Tipo: cadena
  • timeout : Tiempo máximo de espera del elemento en milisegundos
    • Tipo: número
    • Predeterminado: 10000

Ejemplo:

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

elemento_clic

Hace clic en un elemento.

Parámetros:

  • by (obligatorio): Estrategia de localización
    • Tipo: cadena
    • Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
  • value (obligatorio): Valor para la estrategia de localización
    • Tipo: cadena
  • timeout : Tiempo máximo de espera del elemento en milisegundos
    • Tipo: número
    • Predeterminado: 10000

Ejemplo:

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

enviar_claves

Envía claves a un elemento (escritura).

Parámetros:

  • by (obligatorio): Estrategia de localización
    • Tipo: cadena
    • Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
  • value (obligatorio): Valor para la estrategia de localización
    • Tipo: cadena
  • text (obligatorio): Texto a introducir en el elemento
    • Tipo: cadena
  • timeout : Tiempo máximo de espera del elemento en milisegundos
    • Tipo: número
    • Predeterminado: 10000

Ejemplo:

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

obtener_texto_del_elemento

Obtiene el texto() de un elemento.

Parámetros:

  • by (obligatorio): Estrategia de localización
    • Tipo: cadena
    • Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
  • value (obligatorio): Valor para la estrategia de localización
    • Tipo: cadena
  • timeout : Tiempo máximo de espera del elemento en milisegundos
    • Tipo: número
    • Predeterminado: 10000

Ejemplo:

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

flotar

Mueve el mouse para colocarlo sobre un elemento.

Parámetros:

  • by (obligatorio): Estrategia de localización
    • Tipo: cadena
    • Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
  • value (obligatorio): Valor para la estrategia de localización
    • Tipo: cadena
  • timeout : Tiempo máximo de espera del elemento en milisegundos
    • Tipo: número
    • Predeterminado: 10000

Ejemplo:

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

arrastrar y soltar

Arrastra un elemento y lo suelta sobre otro elemento.

Parámetros:

  • by (obligatorio): Estrategia de localización para el elemento fuente
    • Tipo: cadena
    • Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
  • value (obligatorio): Valor para la estrategia de localización de origen
    • Tipo: cadena
  • targetBy (obligatorio): Estrategia de localización para el elemento objetivo
    • Tipo: cadena
    • Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
  • targetValue (obligatorio): Valor para la estrategia de localización de objetivos
    • Tipo: cadena
  • timeout : Tiempo máximo de espera de elementos en milisegundos
    • Tipo: número
    • Predeterminado: 10000

Ejemplo:

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

doble clic

Realiza un doble clic en un elemento.

Parámetros:

  • by (obligatorio): Estrategia de localización
    • Tipo: cadena
    • Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
  • value (obligatorio): Valor para la estrategia de localización
    • Tipo: cadena
  • timeout : Tiempo máximo de espera del elemento en milisegundos
    • Tipo: número
    • Predeterminado: 10000

Ejemplo:

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

clic derecho

Realiza un clic derecho (clic contextual) en un elemento.

Parámetros:

  • by (obligatorio): Estrategia de localización
    • Tipo: cadena
    • Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
  • value (obligatorio): Valor para la estrategia de localización
    • Tipo: cadena
  • timeout : Tiempo máximo de espera del elemento en milisegundos
    • Tipo: número
    • Predeterminado: 10000

Ejemplo:

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

presionar_tecla

Simula presionar una tecla del teclado.

Parámetros:

  • key (obligatoria): Tecla a presionar (ej., 'Enter', 'Tab', 'a', etc.)
    • Tipo: cadena

Ejemplo:

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

subir_archivo

Carga un archivo utilizando un elemento de entrada de archivo.

Parámetros:

  • by (obligatorio): Estrategia de localización
    • Tipo: cadena
    • Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
  • value (obligatorio): Valor para la estrategia de localización
    • Tipo: cadena
  • filePath (obligatorio): Ruta absoluta al archivo a cargar
    • Tipo: cadena
  • timeout : Tiempo máximo de espera del elemento en milisegundos
    • Tipo: número
    • Predeterminado: 10000

Ejemplo:

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

tomar captura de pantalla

Captura una captura de pantalla de la página actual.

Parámetros:

  • outputPath (opcional): Ruta donde se guardará la captura de pantalla. Si no se proporciona, devuelve datos base64.
    • Tipo: cadena

Ejemplo:

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

cerrar sesión

Cierra la sesión actual del navegador y limpia los recursos.

Parámetros: No se requiere ninguno

Ejemplo:

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

Licencia

Instituto Tecnológico de Massachusetts (MIT)

-
security - not tested
A
license - permissive license
-
quality - not tested

Permite la automatización del navegador mediante Selenium WebDriver a través de MCP, lo que admite la administración del navegador, la ubicación de elementos y las interacciones del usuario básicas y avanzadas.

  1. Features
    1. Supported Browsers
      1. Use with Goose
        1. Option 1: One-click install
        2. Option 2: Add manually to desktop or CLI
      2. Use with other MCP clients (e.g. Claude Desktop, etc)
        1. Development
          1. Installation
          2. Usage
        2. Tools
          1. start_browser
          2. navigate
          3. find_element
          4. click_element
          5. send_keys
          6. get_element_text
          7. hover
          8. drag_and_drop
          9. double_click
          10. right_click
          11. press_key
          12. upload_file
          13. take_screenshot
          14. close_session
        3. License
          ID: s2em7b2kwf