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
Related MCP server: MCP Servers with Pyppeteer
Navegadores compatibles
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%20interactionsOpción 2: Agregar manualmente al escritorio o CLI
Nombre:
Selenium MCPDescripción:
automates browser interactionsComando:
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:
Clonar el repositorio
Instalar dependencias:
npm installEjecute 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 claudeInstalación manual
npm install -g @angiejones/mcp-seleniumUso
Inicie el servidor ejecutando:
mcp-seleniumO ú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 iniciarTipo: cadena
Enumeración: ["chrome", "firefox"]
options: Opciones de configuración del navegadorTipo: objeto
Propiedades:
headless: ejecuta el navegador en modo sin cabezaTipo: booleano
arguments: argumentos adicionales del navegadorTipo: matriz de cadenas
Ejemplo:
{
"tool": "start_browser",
"parameters": {
"browser": "chrome",
"options": {
"headless": true,
"arguments": ["--no-sandbox"]
}
}
}navegar por
Navega a una URL.
Parámetros:
url(obligatorio): URL a la que navegarTipo: 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ónTipo: cadena
Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
value(obligatorio): Valor para la estrategia de localizaciónTipo: cadena
timeout: Tiempo máximo de espera del elemento en milisegundosTipo: 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ónTipo: cadena
Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
value(obligatorio): Valor para la estrategia de localizaciónTipo: cadena
timeout: Tiempo máximo de espera del elemento en milisegundosTipo: 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ónTipo: cadena
Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
value(obligatorio): Valor para la estrategia de localizaciónTipo: cadena
text(obligatorio): Texto a introducir en el elementoTipo: cadena
timeout: Tiempo máximo de espera del elemento en milisegundosTipo: 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ónTipo: cadena
Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
value(obligatorio): Valor para la estrategia de localizaciónTipo: cadena
timeout: Tiempo máximo de espera del elemento en milisegundosTipo: 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ónTipo: cadena
Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
value(obligatorio): Valor para la estrategia de localizaciónTipo: cadena
timeout: Tiempo máximo de espera del elemento en milisegundosTipo: 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 fuenteTipo: cadena
Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
value(obligatorio): Valor para la estrategia de localización de origenTipo: cadena
targetBy(obligatorio): Estrategia de localización para el elemento objetivoTipo: cadena
Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
targetValue(obligatorio): Valor para la estrategia de localización de objetivosTipo: cadena
timeout: Tiempo máximo de espera de elementos en milisegundosTipo: 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ónTipo: cadena
Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
value(obligatorio): Valor para la estrategia de localizaciónTipo: cadena
timeout: Tiempo máximo de espera del elemento en milisegundosTipo: 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ónTipo: cadena
Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
value(obligatorio): Valor para la estrategia de localizaciónTipo: cadena
timeout: Tiempo máximo de espera del elemento en milisegundosTipo: 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ónTipo: cadena
Enumeración: ["id", "css", "xpath", "nombre", "etiqueta", "clase"]
value(obligatorio): Valor para la estrategia de localizaciónTipo: cadena
filePath(obligatorio): Ruta absoluta al archivo a cargarTipo: cadena
timeout: Tiempo máximo de espera del elemento en milisegundosTipo: 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)