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.

Selenium MCP 服务器

铁匠徽章

一个使用 Selenium 与 WebDriver 实例交互的 MCP 服务器。使用MCP-Server-Starter模板构建。

概述

该服务器允许 AI 代理通过 Selenium WebDriver 控制 Web 浏览器会话,从而通过模型上下文协议实现 Web 抓取、自动化测试和表单填写等任务。

核心组件

  • MCP 服务器:将 Selenium WebDriver 操作作为 MCP 工具公开。
  • Selenium WebDriver :与浏览器交互。
  • MCP 客户端:可以利用公开工具的 AI 主机(如 Cursor、Claude Desktop)。

先决条件

  • Node.js(v18 或更高版本)
  • npm(v7 或更高版本)
  • 已安装WebDriver 可执行文件(例如 ChromeDriver、GeckoDriver)并可在系统 PATH 中使用。
  • 兼容的网络浏览器(例如 Chrome、Firefox)。

入门

  1. 克隆存储库:
    git clone <your-repo-url> selenium-mcp-server cd selenium-mcp-server
  2. 安装依赖项:
    npm install
  3. 配置WebDriver:
    • 确保您的 WebDriver (例如chromedriver ) 已安装并位于您的 PATH 中。
    • 如果需要指定浏览器选项或 WebDriver 路径,请修改src/seleniumService.ts (您将创建此文件)。
  4. 构建服务器:
    npm run build
  5. 运行服务器:
    npm start
    或者,将其与 Cursor 或 Claude Desktop 等 MCP 主机集成(请参阅下面的集成部分)。

工具

该服务器将提供以下工具:

  • selenium_navigate :将浏览器导航到特定的 URL。
  • selenium_findElement :使用 CSS 选择器在页面上查找元素。
  • selenium_click :点击一个元素。
  • selenium_sendKeys :向元素发送击键。
  • selenium_getPageSource :检索当前页面源 HTML。
  • (根据需要添加更多工具)

TypeScript 实现

服务器使用@modelcontextprotocol/sdkselenium-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();

发展

  • 构建: npm run build
  • 运行: npm start (执行node build/index.js
  • Lint: npm run lint
  • 格式: npm run format

调试

使用 MCP Inspector 或标准 Node.js 调试技术。

与 MCP 主机集成

(保留原始 README 中有关 Cursor、Claude Desktop、Smithery 等的相关部分,并根据需要更新路径和命令)

光标集成

  1. 构建你的服务器npm run build
  2. 在光标中: Settings > Features > MCP :添加新的 MCP 服务器。
  3. 注册您的服务器
    • 选择stdio作为传输类型。
    • 名称: Selenium Server (或类似名称)。
    • 命令: node /path/to/selenium-mcp-server/build/index.js
  4. 节省

Claude 桌面集成

  1. 构建你的服务器npm run build
  2. 修改claude_desktop_config.json
    { "mcpServers": { "selenium-mcp-server": { "command": "node", "args": [ "/path/to/selenium-mcp-server/build/index.js" ] } } }
  3. 重新启动 Claude Desktop

最佳实践

  • 使用 TypeScript 和 Zod 进行类型安全和验证。
  • 保持工具模块化(例如, src/tools/中每个工具一个文件)。
  • 优雅地处理 WebDriver 错误(例如,未找到元素、导航问题)。
  • 确保 WebDriver 正确关闭(例如,服务器退出时使用driver.quit() )。
  • 遵循 MCP 有关架构、错误处理和内容类型的最佳实践。

了解更多

致谢

根据 Seth Rose 创建的模板

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

允许 AI 代理通过 Selenium WebDriver 控制 Web 浏览器会话,从而通过模型上下文协议实现抓取、测试和表单填写等 Web 自动化任务。

  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