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.

Watch the video

Selenium MCP server

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 --enable una 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ámetroTipoObligatorioDescripción
browserstringSíchrome, firefox, edge o safari
optionsobjectNo{ headless: boolean, arguments: string[] }

navigate

Navega a una URL.

ParámetroTipoObligatorioDescripción
urlstringSíURL a la que navegar

interact

Realiza una acción de mouse sobre un elemento.

ParámetroTipoObligatorioDescripción
actionstringSíclick, doubleclick, rightclick o hover
bystringSíEstrategia de localización: id, css, xpath, name, tag, class
valuestringSíValor para la estrategia de localización
timeoutnumberNoEspera máxima en ms (predeterminado: 10000)

send_keys

Escribe texto en un elemento. Primero limpia el campo.

ParámetroTipoObligatorioDescripción
bystringSíEstrategia de localización
valuestringSíValor del localizador
textstringSíTexto a ingresar
timeoutnumberNoEspera máxima en ms (predeterminado: 10000)

get_element_text

Obtiene el contenido de texto de un elemento.

ParámetroTipoObligatorioDescripción
bystringSíEstrategia de localización
valuestringSíValor del localizador
timeoutnumberNoEspera máxima en ms (predeterminado: 10000)

get_element_attribute

Obtiene el valor de un atributo de un elemento.

ParámetroTipoObligatorioDescripción
bystringSíEstrategia de localización
valuestringSíValor del localizador
attributestringSíNombre del atributo (p. ej., href, value, class)
timeoutnumberNoEspera máxima en ms (predeterminado: 10000)

press_key

Presiona una tecla del teclado.

ParámetroTipoObligatorioDescripción
keystringSíTecla a presionar (p. ej., Enter, Tab, a)

upload_file

Sube un archivo mediante un elemento de entrada de archivo.

ParámetroTipoObligatorioDescripción
bystringSíEstrategia de localización
valuestringSíValor del localizador
filePathstringSíRuta absoluta al archivo
timeoutnumberNoEspera máxima en ms (predeterminado: 10000)

take_screenshot

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

ParámetroTipoObligatorioDescripción
outputPathstringNoRuta 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ámetroTipoObligatorioDescripción
scriptstringSíCódigo JavaScript a ejecutar
argsarrayNoArgumentos accesibles mediante arguments[0], etc.

window

Gestiona ventanas y pestañas del navegador.

ParámetroTipoObligatorioDescripción
actionstringSílist, switch, switch_latest o close
handlestringNoIdentificador de ventana (obligatorio para switch)

frame

Cambia el enfoque a un frame o de vuelta a la página principal.

ParámetroTipoObligatorioDescripción
actionstringSíswitch o default
bystringNoEstrategia de localización (para switch)
valuestringNoValor del localizador (para switch)
indexnumberNoÍndice del frame, basado en 0 (para switch)
timeoutnumberNoEspera máxima en ms (predeterminado: 10000)

alert

Gestiona diálogos de alerta, confirmación o aviso del navegador.

ParámetroTipoObligatorioDescripción
actionstringSíaccept, dismiss, get_text o send_text
textstringNoTexto a enviar (obligatorio para send_text)
timeoutnumberNoEspera 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ámetroTipoObligatorioDescripción
namestringSíNombre de la cookie
valuestringSíValor de la cookie
domainstringNoDominio de la cookie
pathstringNoRuta de la cookie
securebooleanNoIndicador de seguridad
httpOnlybooleanNoIndicador de solo HTTP
expirynumberNoMarca de tiempo Unix

get_cookies

Obtiene cookies. Devuelve todas o una específica por nombre.

ParámetroTipoObligatorioDescripción
namestringNoNombre de la cookie. Omítelo para todas las cookies.

delete_cookie

Elimina cookies. Elimina todas o una específica por nombre.

ParámetroTipoObligatorioDescripción
namestringNoNombre de la cookie. Omítelo para eliminar todas.

diagnostics

Obtiene diagnósticos del navegador capturados mediante WebDriver BiDi (autoactivado cuando es compatible).

ParámetroTipoObligatorioDescripción
typestringSíconsole, errors o network
clearbooleanNoLimpiar 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").

PropiedadValor
Tipo MIMEtext/plain
Requiere navegadorNo

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.

PropiedadValor
Tipo MIMEapplication/json
Requiere navegadorSí

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