MCP Selenium Server
Automatiza navegadores web usando Selenium WebDriver a través de MCP.
Documentación
MCP Selenium Server
Un servidor de Model Context Protocol (MCP) para Selenium WebDriver: automatización de navegador para agentes de IA.
Configuración
Goose (Desktop)
Pega esto en la barra de direcciones de tu navegador:
goose://extension?cmd=npx&arg=-y&arg=%40angiejones%2Fmcp-selenium%40latest&id=selenium-mcp&name=Selenium%20MCP&description=automates%20browser%20interactions
Goose (CLI)
goose session --with-extension "npx -y @angiejones/mcp-selenium@latest"
Claude Code
claude mcp add selenium -- npx -y @angiejones/mcp-selenium@latest
Cursor / Windsurf / otros clientes MCP
{
"mcpServers": {
"selenium": {
"command": "npx",
"args": ["-y", "@angiejones/mcp-selenium@latest"]
}
}
}
Ejemplo de uso
Dile al agente de IA que prefieras:
Abre Chrome, ve a github.com/angiejones y toma una captura de pantalla.
El agente llamará a las APIs de Selenium para start_browser, navigate y take_screenshot. No se necesitan scripts manuales ni instrucciones explícitas.
Navegadores compatibles
Chrome, Firefox, Edge y Safari.
Nota sobre Safari: Requiere macOS. Ejecuta
sudo safaridriver --enableuna vez y habilita "Permitir automatización remota" en Safari → Configuración → Desarrollo. No tiene modo headless.
Herramientas
start_browser
Inicia una sesión de navegador.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| browser | string | Sí | chrome, firefox, edge o safari |
| options | object | No | { headless: boolean, arguments: string[] } |
navigate
Navega a una URL.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| url | string | Sí | URL a la que navegar |
interact
Realiza una acción de mouse sobre un elemento.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| action | string | Sí | click, doubleclick, rightclick o hover |
| by | string | Sí | Estrategia de localización: id, css, xpath, name, tag, class |
| value | string | Sí | Valor para la estrategia de localización |
| timeout | number | No | Espera máxima en ms (predeterminado: 10000) |
send_keys
Escribe texto en un elemento. Primero limpia el campo.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| by | string | Sí | Estrategia de localización |
| value | string | Sí | Valor del localizador |
| text | string | Sí | Texto a ingresar |
| timeout | number | No | Espera máxima en ms (predeterminado: 10000) |
get_element_text
Obtiene el contenido de texto de un elemento.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| by | string | Sí | Estrategia de localización |
| value | string | Sí | Valor del localizador |
| timeout | number | No | Espera máxima en ms (predeterminado: 10000) |
get_element_attribute
Obtiene el valor de un atributo de un elemento.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| by | string | Sí | Estrategia de localización |
| value | string | Sí | Valor del localizador |
| attribute | string | Sí | Nombre del atributo (p. ej., href, value, class) |
| timeout | number | No | Espera máxima en ms (predeterminado: 10000) |
press_key
Presiona una tecla del teclado.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| key | string | Sí | Tecla a presionar (p. ej., Enter, Tab, a) |
upload_file
Sube un archivo mediante un elemento de entrada de archivo.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| by | string | Sí | Estrategia de localización |
| value | string | Sí | Valor del localizador |
| filePath | string | Sí | Ruta absoluta al archivo |
| timeout | number | No | Espera máxima en ms (predeterminado: 10000) |
take_screenshot
Captura una captura de pantalla de la página actual.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| outputPath | string | No | Ruta de guardado. Si se omite, devuelve datos de imagen en base64. |
close_session
Cierra la sesión de navegador actual. Sin parámetros.
execute_script
Ejecuta JavaScript en el navegador. Úsalo para interacciones avanzadas no cubiertas por otras herramientas (p. ej., arrastrar y soltar, desplazamiento, lectura de estilos calculados, manipulación del DOM).
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| script | string | Sí | Código JavaScript a ejecutar |
| args | array | No | Argumentos accesibles mediante arguments[0], etc. |
window
Gestiona ventanas y pestañas del navegador.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| action | string | Sí | list, switch, switch_latest o close |
| handle | string | No | Identificador de ventana (obligatorio para switch) |
frame
Cambia el enfoque a un frame o de vuelta a la página principal.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| action | string | Sí | switch o default |
| by | string | No | Estrategia de localización (para switch) |
| value | string | No | Valor del localizador (para switch) |
| index | number | No | Índice del frame, basado en 0 (para switch) |
| timeout | number | No | Espera máxima en ms (predeterminado: 10000) |
alert
Gestiona diálogos de alerta, confirmación o aviso del navegador.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| action | string | Sí | accept, dismiss, get_text o send_text |
| text | string | No | Texto a enviar (obligatorio para send_text) |
| timeout | number | No | Espera máxima en ms (predeterminado: 5000) |
add_cookie
Añade una cookie. El navegador debe estar en una página del dominio de la cookie.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| name | string | Sí | Nombre de la cookie |
| value | string | Sí | Valor de la cookie |
| domain | string | No | Dominio de la cookie |
| path | string | No | Ruta de la cookie |
| secure | boolean | No | Indicador de seguridad |
| httpOnly | boolean | No | Indicador de solo HTTP |
| expiry | number | No | Marca de tiempo Unix |
get_cookies
Obtiene cookies. Devuelve todas o una específica por nombre.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| name | string | No | Nombre de la cookie. Omítelo para todas las cookies. |
delete_cookie
Elimina cookies. Elimina todas o una específica por nombre.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| name | string | No | Nombre de la cookie. Omítelo para eliminar todas. |
diagnostics
Obtiene diagnósticos del navegador capturados mediante WebDriver BiDi (autoactivado cuando es compatible).
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| type | string | Sí | console, errors o network |
| clear | boolean | No | Limpiar el búfer después de devolver (predeterminado: false) |
Recursos
Los recursos MCP proporcionan datos de solo lectura a los que los clientes pueden acceder sin llamar a una herramienta.
browser-status://current
Devuelve el estado de la sesión de navegador actual (ID de sesión activa o "sin sesión activa").
| Propiedad | Valor |
|---|---|
| Tipo MIME | text/plain |
| Requiere navegador | No |
accessibility://current
Devuelve una instantánea del árbol de accesibilidad de la página actual: una representación JSON compacta y estructurada de elementos interactivos y contenido de texto. Mucho más pequeña que el HTML completo. Útil para comprender el diseño de la página y encontrar elementos con los que interactuar.
| Propiedad | Valor |
|---|---|
| Tipo MIME | application/json |
| Requiere navegador | Sí |
Desarrollo
Configuración
git clone https://github.com/angiejones/mcp-selenium.git
cd mcp-selenium
npm install
Ejecutar pruebas
npm test
Requiere Chrome + chromedriver en PATH. Las pruebas se ejecutan en modo headless.
Instalar mediante Smithery
npx -y @smithery/cli install @angiejones/mcp-selenium --client claude
Instalar globalmente
npm install -g @angiejones/mcp-selenium
mcp-selenium
Licencia
MIT
