← 返回目录
W

WebdriverIO MCP Server

官方
用 WebDriverIO 驱动浏览器与 iOS/Android 应用的 MCP 自动化服务器
分类
浏览器自动化 第 6 / 32
Stars
★ 42 热门
传输方式
stdio(本地进程) · Streamable HTTP
运行环境
Node.js
凭据
可选 API Key
许可证
MIT
最近提交
工具数
31
62FMRS · C

由 WebDriverIO 官方团队维护、文档详尽且功能全面的浏览器与移动自动化 MCP 服务器,覆盖本地与主流云真机平台,支持会话录制和代码导出。适合测试场景,但受单会话模型和移动端平台前提(macOS+Xcode、Appium)限制。

最强项 · 文档质量 17/20 最弱项 · 可靠性 9/20

可靠性
9/20
安全与权限
11/20
维护活跃度
11/20
文档质量
17/20
安装易用性
14/20
查看各项评分依据
可靠性 9/20
server.json 仅声明了 npm 包(@wdio/[email protected],stdio 传输),未在清单中列出具体工具;README 中描述的工具表(start_session、navigate、tap_element 等)与包描述及 stdio/HTTP 传输方式在文字层面自洽,未发现明显矛盾。但提供的材料中没有任何 CI 工作流或已提交测试的证据,也无法验证工具的实际输入输出行为、错误处理或依赖(Appium、浏览器驱动、云厂商 API)在真实环境下的可控性,因此依据静态评审规则不得超过12分。给9分,反映'happy path看似合理但测试与错误处理证据缺失'。
安全与权限 11/20
未发现红线问题:凭证通过环境变量传递(BROWSERSTACK_ACCESS_KEY等),示例使用占位符而非真实密钥;HTTP 传输模式默认仅允许 localhost 的 Host 头并且默认不开放跨域(allowedOrigins 为空),体现了一定的DNS重绑定防护意识。但风险面明显:execute_script 工具允许在浏览器/移动设备上执行任意 JavaScript 或 Appium 命令,文档中没有描述任何针对危险操作的显式确认机制;autoGrantPermissions/autoAcceptAlerts 默认开启会自动放行权限弹窗和系统提示;本地隧道(tunnel)功能会将本地网络暴露给云厂商;上传的 app 文件、云端凭证的存储与传输边界均未详细披露。整体是'主要风险可见但权限最小化/确认/数据边界披露不完整'的中间水平。
维护活跃度 11/20
仓库未被存档(Archived: False),采用 MIT 许可证,版本号为3.3.0,功能列表显示了相当多次迭代(如 TOON 格式、trace 录制、web extension 支持等),暗示项目在积极演进。但提供材料中缺少可验证的维护证据:没有提交历史、发布日志、issue 响应时间、依赖更新策略或安全响应渠道(如 SECURITY.md)的任何信息;star 数与 open issue 数仅作为发现信号,不计入打分。因此只能判定为'活跃但治理与版本化证据不足'的中间档。
文档质量 17/20
README 内容非常详尽:覆盖了十余种客户端的安装配置示例、全局安装选项、HTTP 传输参数表、五家云厂商的凭证设置与差异说明、完整的工具与资源表格、多个真实使用场景示例,以及针对 trace 录制时间戳算法这类实现细节的深入说明和故障排查章节。扣分点在于:未披露云厂商测试的成本/计费信息,未说明速率限制或超时行为,也没有独立的变更日志/版本历史链接。总体属于'层次丰富、示例充分,但仍有少量未披露限制'的高水平文档。
安装易用性 14/20
安装步骤清晰:单条 npx 命令即可在主流客户端(VS Code、Claude Desktop、Cursor、Cline、Codex、Goose、Windsurf、Zed 等)完成配置,并提供了对应的 JSON/TOML/YAML 配置示例,另有全局安装和 HTTP 传输两种备选方案。移动端自动化需要额外安装 Appium 及平台驱动,步骤也有说明但增加了复杂度。由于静态评审规则要求,在缺少可验证的执行证据(真实 CI 工作流+测试覆盖关键路径)时,setup 分数不得超过15分,故给14分。

静态评测 · 未实际运行收录于 2026-09-07

查看 FMRS 评分方法 →

选型与风险

能访问什么执行命令或代码访问网络控制浏览器

适合谁

  • 需要网页与移动端一体化自动化的测试工程师
  • 希望用自然语言驱动浏览器操作和生成测试脚本的开发者
  • 已使用 WebdriverIO/Appium 生态并想接入云真机平台的团队

不适合谁

  • iOS 移动自动化需 macOS + Xcode,其他平台用户不适用
  • 需要并行多个活动会话的场景(同时仅支持一个会话)
  • 没有 Node.js/npm 环境或无法运行子进程的受限客户端(除非使用 HTTP 模式)

所需权限

  • 本地运行浏览器(Chrome/Firefox/Edge/Safari)及自动化驱动
  • 本地执行 npm/npx 及 Appium 服务器
  • 读取本地应用包路径(.apk/.app/.ipa)
  • 云平台凭据环境变量(如 BROWSERSTACK_USERNAME/ACCESS_KEY、SAUCE_USERNAME/ACCESS_KEY 等)
  • 访问网络与云服务商 REST API;本地隧道访问内网 URL

风险与副作用

  • AI 可操作真实浏览器和移动设备,可能误触生产账号或已登录会话
  • execute_script 可在浏览器中执行任意 JavaScript
  • 云凭据配置在环境变量或客户端配置中,泄露即暴露云测试账户
  • Digital.ai 下纯客户端断言失败可能被误报为 Passed
  • 读取日志资源会按 WebDriver 规范清空日志缓冲区

安装接入

准备工作

运行环境:Node.js

BROWSERSTACK_ACCESS_KEY 可选密钥 BrowserStack 访问密钥(机密),在 BrowserStack 账户设置页获取。
SAUCE_ACCESS_KEY 可选密钥 Sauce Labs 访问密钥(机密),在 Sauce Labs 账户设置中获取。
TESTMU_ACCESS_KEY 可选密钥 LambdaTest (TestMu) 访问密钥(机密),在 LambdaTest 账户资料中获取。
TESTINGBOT_SECRET 可选密钥 TestingBot secret(机密),在 TestingBot 账户页面获取。
DIGITALAI_ACCESS_KEY 可选密钥 Digital.ai 访问密钥(机密),在 Digital.ai 持续测试平台中获取。
其他可选配置项(5 个)
BROWSERSTACK_USERNAME 可选 BrowserStack 账户用户名,在 BrowserStack 账户设置页获取。
SAUCE_USERNAME 可选 Sauce Labs 用户名,在 Sauce Labs 账户设置中获取。
TESTMU_USERNAME 可选 LambdaTest (TestMu) 用户名,在 LambdaTest 账户资料中获取。
TESTINGBOT_KEY 可选 TestingBot API key,在 TestingBot 账户页面获取。
DIGITALAI_CLOUD_URL 可选 Digital.ai 云主机地址(如 https://your-cloud.example.com),由 Digital.ai 提供的云端 URL。

在 MCP 客户端配置中添加 {"mcpServers":{"wdio-mcp":{"command":"npx","args":["-y","@wdio/mcp@latest"]}}},然后完全重启客户端。也可全局安装:npm install -g @wdio/mcp,并将命令改为 wdio-mcp。非子进程客户端可运行 npx @wdio/mcp --http --port 3000 启用 HTTP 传输。移动自动化需预先全局安装 Appium(npm install -g appium)、安装对应平台驱动(iOS: xcuitest,需 macOS + Xcode;Android: uiautomator2,需 Android Studio),并先启动 appium 服务器(默认 http://127.0.0.1:4723)。iOS 真机测试需提供设备 UDID。

claude_desktop_config.json
{"mcpServers":{"wdio-mcp":{"command":"npx","args":["-y","@wdio/mcp@latest"]}}}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "wdio-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@wdio/mcp@latest"
      ]
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add wdio-mcp -- npx -y @wdio/mcp@latest

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

在 MCP 客户端中重启后,检查工具列表中是否出现 start_session 和 get_screenshot 等工具;然后发出提示“打开 https://example.com 并截图”,若返回截图即证明连接成功。

常见排障

  1. 浏览器自动化失败:确认已安装对应浏览器(Safari 需 macOS),完全重启客户端,检查无其他 WebDriver 实例
  2. 移动自动化失败:确认 appium 服务器已运行,adb devices 或 Xcode 设备可见,平台驱动已安装,应用路径正确
  3. 配置更改后需完全重启 MCP 客户端
  4. iOS 真机需 40 位 UDID
  5. 同一时间只允许一个活动会话,切换浏览器/移动前需先关闭当前会话

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 打开 worldofbooks.com,接受所有 Cookie,然后获取页面上可见的元素并报告导航结构。
  • 在默认浏览器会话中导航到 https://example.com,截一张屏幕截图,并列出所有 Cookie。
  • 在我的 Android 模拟器 emulator-5554 上启动 /path/to/app.apk,授予所有权限,点击“跳过”按钮并截图。
  • 列出我在 BrowserStack 上传的所有应用,然后启动一个使用 bs:// URL 中应用的 Android 会话。

工具能力 31

start_session 写入
启动新的浏览器或应用会话,支持本地、云服务商及外部 WebDriver 端点,attach: true 可连接已运行的 Chrome
attach_session 写入
按 ID 附加到已存在的远程 WebDriver/Appium 会话,而不创建新会话
launch_chrome 写入
启动一个开启远程调试的 Chrome 实例,供 attach 会话使用
close_session 写入
关闭当前会话,支持 detach: true 在不终止会话的情况下断开
emulate_device 写入
模拟移动/平板设备预设(视口、DPR、UA、触摸),需要 BiDi 会话
open_web_extension 写入
通过 WebDriver BiDi 安装浏览器扩展并打开其页面,以便用普通页面工具驱动扩展 UI
navigate 写入
导航到指定 URL
get_elements 只读
获取页面上可见可交互的元素,支持仅视口过滤和包含布局容器
展开其余 23 个工具
get_accessibility_tree 只读
获取页面无障碍树(角色、名称、选择器),仅限浏览器
get_screenshot 只读
对当前页面或屏幕截图(base64,自动缩放至最大 2000px / 1MB)
get_tabs 只读
列出所有打开的浏览器标签页及其句柄、标题、URL 和激活状态
scroll 写入
按指定像素向上或向下滚动页面
execute_script 写入
在浏览器中执行任意 JavaScript,或在移动设备上执行 Appium 命令
switch_tab 写入
按句柄或索引切换浏览器标签页
switch_frame 写入
按 CSS/XPath 选择器切入 iframe 或返回顶层框架
click_element 写入
点击某个元素
set_value 写入
向输入框输入文本
get_cookies 只读
获取当前会话的全部 Cookie 或按名称获取单个 Cookie
set_cookie 写入
设置带名称、值及可选属性的 Cookie
delete_cookies 破坏性
删除全部或指定 Cookie
tap_element 写入
按选择器或坐标点击移动端元素
swipe 写入
在移动设备上向上/下/左/右滑动
drag_and_drop 写入
在移动设备上执行拖放操作
get_contexts 只读
列出可用的自动化上下文(NATIVE_APP、WEBVIEW_*)及当前激活上下文
switch_context 写入
在原生和 webview 上下文之间切换
get_app_state 只读
获取移动应用的当前生命周期状态
rotate_device 写入
将设备旋转为横屏或竖屏
hide_keyboard 写入
隐藏屏幕键盘
set_geolocation 写入
设置设备 GPS 位置
upload_app 写入
上传本地 .apk 或 .ipa 到云服务商并返回应用引用
list_apps 只读
列出之前上传到云服务商应用存储中的应用

使用场景

让 AI 助手自动化测试网页应用的登录、搜索等基本流程
在模拟器或真机上测试 Android/iOS 原生应用与混合应用
在 BrowserStack、Sauce Labs、LambdaTest、TestingBot、Digital.ai 等云真机上运行浏览器和移动测试
连接已运行的 Chrome 调试需要登录态的会话
将自动化操作录制成可运行的 WebdriverIO JS 脚本用于回归测试

支持客户端

Claude Desktop
Claude Code
Cline
Cursor
Codex
Goose
Windsurf
Zed
GitHub Copilot

依据项目文档列出,未经本站实测。

详细介绍

WebdriverIO MCP Server 是由 WebDriverIO 团队维护的开源(MIT)MCP 服务器,让 AI 助手通过统一接口自动化 Chrome、Firefox、Edge、Safari 浏览器以及 iOS 和 Android 移动应用。它基于 TypeScript、WebDriverIO 和 Appium 构建,支持本地浏览器会话、通过 Appium 的移动测试、五大云真机平台(BrowserStack、Sauce Labs、LambdaTest、TestingBot、Digital.ai)、连接已运行的 Chrome 或外部 WebDriver 端点、设备模拟、Cookie 管理、会话录制并可导出可运行的 WebdriverIO JS 脚本。默认使用 stdio 传输,也提供 --http 模式(默认端口 3000)。同一时间只能有一个活动会话。

同类可选方案

源版本 69e3ef643cda 数据同步于 2026-10-19 查看 FMRS 评分方法