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.
Related MCP server: Selenium MCP Server
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
Clonar el repositorio:
git clone <your-repo-url> selenium-mcp-server cd selenium-mcp-serverInstalar dependencias:
npm installConfigurar 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.
Construir el servidor:
npm run buildEjecutar el servidor:
npm startAlternativamente, 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 buildEjecutar:
npm start(ejecutanode build/index.js)Pelusa:
npm run lintFormato:
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
Construye tu servidor :
npm run buildEn el cursor:
Settings>Features>MCP: agregar un nuevo servidor MCP.Registra tu servidor :
Seleccione
stdiocomo tipo de transporte.Nombre:
Selenium Server(o similar).Comando:
node /path/to/selenium-mcp-server/build/index.js.
Ahorrar .
Integración de escritorio de Claude
Construye tu servidor :
npm run buildModificar
claude_desktop_config.json:{ "mcpServers": { "selenium-mcp-server": { "command": "node", "args": [ "/path/to/selenium-mcp-server/build/index.js" ] } } }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 :
Sitio web : https://www.sethrose.dev
𝕏 (Twitter) : https://x.com/TheSethRose
🦋 (Cielo azul) : https://bsky.app/profile/sethrose.dev
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/themindmod/selenium-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
