Cloud Providers
The WebdriverIO MCP server has native support for running browser and mobile automation sessions on cloud device farms. No local drivers, emulators, or simulators required. Four providers are supported:
- BrowserStack — Automate (browsers) and App Automate (mobile apps)
- Sauce Labs — Sauce Labs real device cloud and virtual browsers
- TestMu (formerly LambdaTest) — TestMu real device and browser cloud
- TestingBot — TestingBot real device cloud and browser grid
All four providers share the same workflow: set credentials, optionally upload a mobile app, then call start_session with the provider name. Reporting labels, tunnel configuration, and mobile app lifecycle are identical across providers.
Prerequisites
Set your credentials as environment variables before starting the MCP server:
# BrowserStack
export BROWSERSTACK_USERNAME="your_username"
export BROWSERSTACK_ACCESS_KEY="your_access_key"
# Sauce Labs
export SAUCE_USERNAME="your_username"
export SAUCE_ACCESS_KEY="your_access_key"
# TestMu
export TESTMU_USERNAME="your_username"
export TESTMU_ACCESS_KEY="your_access_key"
# TestingBot
export TESTINGBOT_KEY="your_key"
export TESTINGBOT_SECRET="your_secret"
| Provider | Username Variable | Access Key Variable | Where to find |
|---|---|---|---|
| BrowserStack | BROWSERSTACK_USERNAME | BROWSERSTACK_ACCESS_KEY | Account settings |
| Sauce Labs | SAUCE_USERNAME | SAUCE_ACCESS_KEY | User settings |
| TestMu | TESTMU_USERNAME | TESTMU_ACCESS_KEY | Account settings |
| TestingBot | TESTINGBOT_KEY | TESTINGBOT_SECRET | Account settings |
Browser Automation
Run a browser session on any cloud provider by setting provider in start_session:
// BrowserStack — Windows + Chrome
start_session({
provider: "browserstack",
platform: "browser",
browser: "chrome",
browserVersion: "latest",
os: "Windows",
osVersion: "11"
})
// Sauce Labs — macOS + Safari
start_session({
provider: "saucelabs",
platform: "browser",
browser: "safari",
browserVersion: "latest",
os: "macOS",
osVersion: "Sequoia"
})
// TestMu — Linux + Firefox
start_session({
provider: "testmu",
platform: "browser",
browser: "firefox",
browserVersion: "latest",
os: "Linux"
})
// TestingBot — Windows + Chrome
start_session({
provider: "testingbot",
platform: "browser",
browser: "chrome",
browserVersion: "latest",
os: "Windows",
osVersion: "11"
})
All providers support browser: "chrome", "firefox", "edge", "safari". If you omit os / osVersion, the provider uses sensible defaults (typically latest Linux for browser sessions).
Sauce Labs Regions
Sauce Labs supports multiple data center regions. Set the region parameter in start_session:
start_session({
provider: "saucelabs",
platform: "browser",
browser: "chrome",
region: "us-west-1"
})
Supported values: "us-west-1", "eu-central-1" (default), "apac-southeast-1".
Mobile App Automation
The mobile workflow has three steps, identical across all providers:
Step 1: Upload your app
upload_app({ provider: "browserstack", path: "/absolute/path/to/app.apk" })
upload_app({ provider: "saucelabs", path: "/path/to/app.ipa" })
upload_app({ provider: "testmu", path: "/path/to/app.apk" })
upload_app({ provider: "testingbot", path: "/path/to/app.apk" })
Each returns an app reference you'll use in start_session:
- BrowserStack:
bs://abc123... - Sauce Labs:
storage:filename=MyApp.ipa - TestMu:
lt://abc123... - TestingBot:
https://api.testingbot.com/v1/storage/<app_url>
You can optionally set a customId for stable references across uploads:
upload_app({ provider: "saucelabs", path: "/path/to/app.ipa", customId: "MyApp-v2.1" })
For Sauce Labs, add region to match your storage region (default "eu-central-1").