Selenium MCP Server 是一个使用 Selenium 与 WebDriver 实例进行交互的 MCP 服务器,它基于 MCP-Server-Starter 模板构建,可让 AI 代理通过 Selenium WebDriver 控制浏览器会话。
git clone selenium-mcp-server
cd selenium-mcp-server
npm install
chromedriver)已安装并在系统的 PATH 中。src/seleniumService.ts(你需要创建此文件)以指定浏览器选项或 WebDriver 路径。npm run build
npm start
或者,将其与 MCP 主机(如 Cursor 或 Claude Desktop)集成(请参阅下面的集成部分)。此服务器允许 AI 代理通过 Model Context Protocol 控制 Web 浏览器会话,支持网页抓取、自动化测试和表单填充等任务。
安装步骤请参考快速开始部分。
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();
此服务器将提供以下工具:
selenium_navigate:将浏览器导航到指定的 URL。selenium_findElement:使用 CSS 选择器在页面上查找元素。selenium_click:点击元素。selenium_sendKeys:向元素发送按键。selenium_getPageSource:检索当前页面的源 HTML。npm run buildnpm start(执行 node build/index.js)npm run lintnpm run format可以使用 MCP Inspector 或标准的 Node.js 调试技术进行调试。
npm run build设置 > 功能 > MCP:添加新的 MCP 服务器。stdio 作为传输类型。Selenium Server(或类似名称)。node /path/to/selenium-mcp-server/build/index.js。npm run buildclaude_desktop_config.json:{
"mcpServers": {
"selenium-mcp-server": {
"command": "node",
"args": [
"/path/to/selenium-mcp-server/build/index.js"
]
}
}
}
src/tools/ 中每个工具一个文件)。driver.quit())。此服务器使用 @modelcontextprotocol/sdk 和 selenium-webdriver 库实现,通过将 Selenium WebDriver 操作暴露为 MCP 工具,实现 AI 代理对浏览器会话的控制。
文档未提及相关信息。
基于 Seth Rose 创建的模板: