使用说明
Selenium MCP 服务器
一个模型上下文协议(MCP)服务器,它实现了MCP客户端与Selenium WebDriver之间的无缝集成。该服务器支持通过自然语言与网页浏览器进行交互,用于自动化测试、网页抓取和页面分析。
文档
查看 docs/ 一个包含简洁API参考、使用示例和贡献说明的文件夹。
特点/功能
- 自然语言接口:使用对话命令控制浏览器
- 全面浏览器自动化:48种工具涵盖Selenium核心操作
- 多浏览器支持:Chrome、Firefox 和 Microsoft Edge
- AI优化发现:专门用于页面分析和测试生成的工具
- 灵活的工具控制:通过环境变量限制可用工具
- TypeScript 实现:全面的类型安全性和更优的错误处理
先决条件
- Node.js 18.0.0 或更高版本
- TypeScript 5.0.0 或更高版本
- 目标浏览器的浏览器驱动程序:
- Chrome:ChromeDriver(通常由selenium-webdriver自动管理)
- Firefox:GeckoDriver
- Edge:EdgeDriver
快速入门
零安装设置(推荐)
- 添加到您的MCP配置中(例如。,
.cursor/mcp.json或 VS Code 设置):
{
"servers": {
"selenium": {
"command": "npx",
"args": ["selenium-mcp-server-agbobli@latest"]
}
}
}
-
重启您的MCP客户端(Cursor、VS Code等)
-
开始在您的AI助手中使用浏览器自动化功能!
团队安装
对于希望在全球范围内安装的团队:
npm install -g selenium-mcp-server-agbobli
然后使用 "command": "selenium-mcp-server-agbobli" 在您的MCP配置中。
驱动程序设置
针对每种支持的浏览器的驱动程序安装与配置指南:
- Chrome(ChromeDriver)
- 建议:允许
selenium-webdriver自动管理ChromeDriver。 - 手动安装(本地项目):
- 建议:允许
# bash
npm install --save-dev chromedriver
- 在Windows(cmd.exe)上,你可以在启动包装器之前将驱动程序添加到PATH中:
# cmd.exe
set PATH=%PATH%;C:\path\to\chromedriver && node wrapper.cjs
-
或者在代码中创建 WebDriver 实例时提供驱动程序路径。
-
Firefox(GeckoDriver)
- 从Mozilla GeckoDriver发布页面下载或通过npm安装:
# bash
npm install --save-dev geckodriver
-
将geckodriver二进制文件添加到PATH环境变量中,或者将其位置传递给您的WebDriver构建器。
-
Edge(msedgedriver)
- 从 Microsoft Edge WebDriver 发布页面下载,或(如果可用)使用 npm 包。
- 将 msedgedriver 二进制文件添加到 PATH 环境变量中,或者在初始化驱动程序时指定其位置。
注释:
- 确保驱动程序版本与已安装浏览器的主要版本相匹配。
- 对于持续集成(CI)环境,请在构建镜像中安装相应的驱动程序二进制文件,或者使用能够自动管理驱动程序的工具。
使用示例
- 直接启动包装器(用于本地测试)
# bash
node wrapper.cjs
# You should see: Selenium MCP Server running on stdio
- 使用有限的工具集启动包装器(Linux/macOS)
# bash
export MCP_TOOLS='["start_browser","navigate","click_element","send_keys"]'
node wrapper.cjs
- 使用有限的工具集(Windows cmd.exe)启动包装器
# cmd.exe
set MCP_TOOLS=["start_browser","navigate","click_element","send_keys"] && node wrapper.cjs
- 示例MCP客户端服务器配置(Windows)
{
"servers": {
"selenium": {
"command": "node",
"args": ["C:\\absolute\\path\\to\\selenium-mcp-server\\wrapper.cjs"]
}
}
}
- 示例:通过MCP客户端启动浏览器
- 配置您的MCP客户端以连接到
wrapper.cjs处理(参见上面的配置)。 - 使用
start_browser从客户端使用工具打开Chrome/Firefox/Edge,然后navigate到一个URL,并且get_page_source或使用其他工具来检查页面。
MCP客户端使用代码片段
以下是简洁明了的示例,已准备好复制使用,展示了MCP(可能是指某种客户端协议或功能)客户端的典型工具调用以及一段简短的伪代码流程。
工具调用示例(JSON有效载荷——请根据您的MCP客户端库进行适配):
启动浏览器
{
"tool": "start_browser",
"args": {
"browser": "chrome",
"options": { "headless": false, "arguments": ["--no-sandbox"] }
}
}
导航到某一页
{
"tool": "navigate",
"args": { "url": "https://example.com" }
}
获取页面源代码
{
"tool": "get_page_source",
"args": {}
}
点击一个元素(示例:CSS 选择器)
{
"tool": "click_element",
"args": { "by": "css", "value": "button#submit" }
}
向输入发送键值
{
"tool": "send_keys",
"args": {
"by": "css",
"value": "input[name=email]",
"text": "user@example.com"
}
}
关闭浏览器
{
"tool": "close_browser",
"args": {}
}
示例序列(伪代码)
// JavaScript (pseudo-code; adapt to your MCP client library)
await mcpClient.callTool("start_browser", {
browser: "chrome",
options: { headless: true },
});
await mcpClient.callTool("navigate", { url: "https://example.com" });
const pageHtml = await mcpClient.callTool("get_page_source", {});
await mcpClient.callTool("click_element", { by: "css", value: "button#agree" });
await mcpClient.callTool("send_keys", {
by: "css",
value: "input#email",
text: "foo@bar.com",
});
await mcpClient.callTool("close_browser", {});
注释
- 工具的可用性可能会受到限制
MCP_TOOLS在您的MCP客户端配置中设置环境变量。 - 所有示例均为与协议无关的JSON有效载荷;请根据您所选的MCP客户端库的API进行适配。
- 在自动化处理长时间运行的流程时,处理来自服务器的错误和超时情况。
安装
选项1:通过npm全局安装(推荐给团队使用)
npm install -g selenium-mcp-server-agbobli
然后使用 selenium-mcp-server-agbobli 在您的MCP配置中。
选项2:使用npx(无需安装)
使用 npx selenium-mcp-server-agbobli@latest 在您的MCP(可能是指某种配置或平台)配置中,用于零安装设置。
选项3:本地开发环境设置
- 克隆该项目
git clone https://github.com/agbobli5373/selenium-mcp-server.git
cd selenium-mcp-server
- 安装依赖项
使用 pnpm
pnpm install
使用纱线
yarn install
- 构建项目
使用 pnpm
pnpm build
使用纱线
yarn build
- 测试服务器(可选)
node dist/index.js
你应该看到: Selenium MCP Server running on stdio
配置
MCP客户端配置
选项1:使用npm全局安装(推荐)
全局安装后使用 npm install -g selenium-mcp-server-agbobli:
Windows:
{
"servers": {
"selenium": {
"command": "selenium-mcp-server-agbobli"
}
}
}
macOS / Linux:
{
"servers": {
"selenium": {
"command": "selenium-mcp-server-agbobli"
}
}
}
选项2:使用npx(零安装)
Windows:
{
"servers": {
"selenium": {
"command": "npx",
"args": ["selenium-mcp-server-agbobli@latest"]
}
}
}
macOS / Linux:
{
"servers": {
"selenium": {
"command": "npx",
"args": ["selenium-mcp-server-agbobli@latest"]
}
}
}
选项3:本地开发(针对贡献者)
Windows:
{
"servers": {
"selenium": {
"command": "node",
"args": ["C:\\path\\to\\your\\selenium-mcp-server\\dist\\index.js"]
}
}
}
macOS / Linux:
{
"servers": {
"selenium": {
"command": "node",
"args": ["/path/to/your/selenium-mcp-server/dist/index.js"]
}
}
}
将路径替换为绝对路径 dist/index.js 以适应您的环境。
环境变量
使用以下工具进行控制 MCP_TOOLS:
- 不
MCP_TOOLS设定(或不设定env(部分):默认情况下,所有48种工具均可使用 MCP_TOOLS使用特定工具:仅启用这些工具
示例 — 使用 npx 的默认模式(所有工具均可用):
{
"servers": {
"selenium": {
"command": "npx",
"args": ["selenium-mcp-server-agbobli@latest"]
}
}
}
示例——限制为全局安装的特定工具:
{
"servers": {
"selenium": {
"command": "selenium-mcp-server-agbobli",
"env": {
"MCP_TOOLS": ["start_browser", "navigate", "click_element", "send_keys"]
}
}
}
}
示例 — 使用 npx 限制为特定工具:
{
"servers": {
"selenium": {
"command": "npx",
"args": ["selenium-mcp-server-agbobli@latest"],
"env": {
"MCP_TOOLS": ["start_browser", "navigate", "click_element", "send_keys"]
}
}
}
}
故障排除
常见问题及解决方法:
- 服务器无法启动:
- 验证是否已安装 Node.js v18+
- 跑
npm run build并检查构建错误
- 连接问题:
- 在MCP客户端配置中确认绝对路径
- 浏览器驱动问题:
- 确保安装了正确的WebDriver,并且浏览器版本兼容
开发说明
- TypeScript 的源代码入口点位于
src/(服务器和工具实现)。 - 包装脚本:
wrapper.cjs/wrapper.js— 由MCP客户端用于启动服务器。 - 工具按以下分类组织
src/tools/以及客户端逻辑在下方src/selenium-client/。
许可证
麻省理工学院许可证(MIT License)