Selenium MCP Server

Integrations

  • Supported as a compatible web browser for WebDriver interaction, allowing the MCP server to automate Firefox browser sessions.

  • Allows AI agents to control web browser sessions through Selenium WebDriver, enabling web scraping, automated testing, and form filling by providing tools for navigation, element finding, clicking, sending keystrokes, and retrieving page content.

Servidor Selenium MCP

insignia de herrería

Un servidor MCP que usa Selenium para interactuar con una instancia de WebDriver. Creado con la plantilla MCP-Server-Starter .

Descripción general

Este servidor permite que los agentes de IA controlen una sesión de navegador web a través de Selenium WebDriver, lo que habilita tareas como raspado web, pruebas automatizadas y llenado de formularios a través del Protocolo de contexto de modelo.

Componentes principales

  • Servidor MCP : expone las acciones de Selenium WebDriver como herramientas MCP.
  • Selenium WebDriver : interactúa con el navegador.
  • Clientes MCP : hosts de IA (como Cursor, Claude Desktop) que pueden utilizar las herramientas expuestas.

Prerrequisitos

  • Node.js (v18 o posterior)
  • npm (v7 o posterior)
  • Un ejecutable WebDriver (por ejemplo, ChromeDriver, GeckoDriver) instalado y disponible en la RUTA de su sistema.
  • Un navegador web compatible (por ejemplo, Chrome, Firefox).

Empezando

  1. Clonar el repositorio:
    git clone <your-repo-url> selenium-mcp-server cd selenium-mcp-server
  2. Instalar dependencias:
    npm install
  3. Configurar WebDriver:
    • Asegúrese de que su WebDriver (por ejemplo, chromedriver ) esté instalado y en su RUTA.
    • Modifique src/seleniumService.ts (creará este archivo) si es necesario para especificar las opciones del navegador o las rutas de WebDriver.
  4. Construir el servidor:
    npm run build
  5. Ejecutar el servidor:
    npm start
    Alternativamente, intégrelo con un host MCP como Cursor o Claude Desktop (consulte las secciones de Integración a continuación).

Herramientas

Este servidor proporcionará herramientas como:

  • selenium_navigate : navega el navegador a una URL específica.
  • selenium_findElement : encuentra un elemento en la página usando un selector CSS.
  • selenium_click : hace clic en un elemento.
  • selenium_sendKeys : envía pulsaciones de teclas a un elemento.
  • selenium_getPageSource : recupera el código HTML de la página actual.
  • (Agregue más herramientas según sea necesario)

Implementación de TypeScript

El servidor utiliza las bibliotecas @modelcontextprotocol/sdk y selenium-webdriver .

import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { Builder, By, Key, until, WebDriver } from 'selenium-webdriver'; // Basic server setup (details in src/index.ts) const server = new Server({ name: "selenium-mcp-server", version: "0.1.0", capabilities: { tools: {}, // Enable tools capability } }); // Selenium WebDriver setup (details in src/seleniumService.ts) let driver: WebDriver; async function initializeWebDriver() { driver = await new Builder().forBrowser('chrome').build(); // Or 'firefox', etc. } // Example tool implementation (details in src/tools/) server.registerTool('selenium_navigate', { description: 'Navigates the browser to a specific URL.', inputSchema: { /* ... zod schema ... */ }, outputSchema: { /* ... zod schema ... */ }, handler: async (params) => { await driver.get(params.url); return { success: true }; } }); // Connect transport async function startServer() { await initializeWebDriver(); const transport = new StdioServerTransport(); await server.connect(transport); console.log("Selenium MCP Server connected via stdio."); // Graceful shutdown process.on('SIGINT', async () => { console.log("Shutting down WebDriver..."); if (driver) { await driver.quit(); } process.exit(0); }); } startServer();

Desarrollo

  • Construir: npm run build
  • Ejecutar: npm start (ejecuta node build/index.js )
  • Pelusa: npm run lint
  • Formato: npm run format

Depuración

Utilice el Inspector MCP o las técnicas de depuración estándar de Node.js.

Integración con hosts MCP

(Conserve las secciones relevantes del README original para Cursor, Claude Desktop, Smithery, etc., actualizando rutas y comandos según sea necesario)

Integración del cursor

  1. Construye tu servidor : npm run build
  2. En el cursor: Settings > Features > MCP : agregar un nuevo servidor MCP.
  3. Registra tu servidor :
    • Seleccione stdio como tipo de transporte.
    • Nombre: Selenium Server (o similar).
    • Comando: node /path/to/selenium-mcp-server/build/index.js .
  4. Ahorrar .

Integración de escritorio de Claude

  1. Construye tu servidor : npm run build
  2. Modificar claude_desktop_config.json :
    { "mcpServers": { "selenium-mcp-server": { "command": "node", "args": [ "/path/to/selenium-mcp-server/build/index.js" ] } } }
  3. Reinicie Claude Desktop .

Mejores prácticas

  • Utilice TypeScript y Zod para la seguridad y validación de tipos.
  • Mantenga las herramientas modulares (por ejemplo, un archivo por herramienta en src/tools/ ).
  • Maneje los errores de WebDriver con elegancia (por ejemplo, elemento no encontrado, problemas de navegación).
  • Asegúrese de que WebDriver se apague correctamente (por ejemplo, driver.quit() al salir del servidor).
  • Siga las mejores prácticas de MCP para esquemas, manejo de errores y tipos de contenido.

Más información

Créditos

Basado en la plantilla creada por Seth Rose :

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

Permite que los agentes de IA controlen las sesiones del navegador web a través de Selenium WebDriver, lo que habilita tareas de automatización web como raspado, pruebas y llenado de formularios a través del Protocolo de contexto de modelo.

  1. Overview
    1. Core Components
      1. Prerequisites
        1. Getting Started
          1. Tools
            1. TypeScript Implementation
              1. Development
                1. Debugging
              2. Integration with MCP Hosts
                1. Cursor Integration
                2. Claude Desktop Integration
              3. Best Practices
                1. Learn More
                  1. Credits
                    ID: gfx4hnwnj9