
How to add WebDriverIO MCP Server to Claude Desktop
Drive Chrome, Firefox, Edge, Safari and iOS/Android apps with WebDriverIO, locally or on cloud devices. Paste the config into ~/Library/Application Support/Claude/claude_desktop_config.json and restart Claude Desktop.
Last updated June 14, 2026 ยท 31โ ยท stdio ยท no auth
Claude Desktop config for WebDriverIO MCP Server
npx -y @wdio/mcp@latest{
"mcpServers": {
"webdriverio-mcp-server": {
"command": "npx",
"args": [
"-y",
"@wdio/mcp@latest"
]
}
}
}Setup steps
- 1Open Claude Desktop โ Settings โ Developer โ Edit Config (this opens ~/Library/Application Support/Claude/claude_desktop_config.json).
- 2Paste the WebDriverIO MCP Server config below under the top-level "mcpServers" key.
- 3Fill in any placeholder secrets (API keys, paths) in the snippet.
- 4Save the file, then fully quit and reopen Claude Desktop.
- 5Open a chat and confirm WebDriverIO MCP Server's tools appear under the ๐ tools menu.
Before you start
- Node.js with npx (the server runs via `npx -y @wdio/mcp@latest`)
- A supported browser installed for web automation (Chrome, Firefox, Edge, or Safari; Safari requires macOS)
- For mobile automation: Appium server (`npm install -g appium`) plus platform drivers (xcuitest for iOS, uiautomator2 for Android) and a running emulator/simulator or connected device
- iOS automation requires macOS with Xcode; Android requires Android Studio
- Optional cloud testing requires provider credentials (BrowserStack, Sauce Labs, LambdaTest, TestingBot, or Digital.ai)
What WebDriverIO MCP Server can do in Claude Desktop
start_sessionStart a browser or app session. Use platform: 'browser' for web, platform: 'ios'/'android' for mobile, or attach: true to connect to a running Chrome instance.
launch_chromeLaunch a new Chrome instance with remote debugging enabled, for use with start_session({ attach: true }).
close_sessionClose or detach from the current session (supports detach: true to disconnect without terminating).
emulate_deviceEmulate a mobile/tablet device preset (viewport, DPR, UA, touch); requires a BiDi session.
open_web_extensionInstall a web extension through WebDriver BiDi and open one of its extension pages so normal page tools can drive its UI.
navigateNavigate to a URL.
get_elementsGet visible, interactable elements on the page. Supports inViewportOnly (default true) and includeContainers (default false) to include layout containers on mobile.
get_accessibility_treeGet the page accessibility tree with roles, names, and selectors. Supports filtering by role and pagination. Browser-only.
Security
Cloud-provider testing requires provider credentials (e.g. BROWSERSTACK_USERNAME / BROWSERSTACK_ACCESS_KEY, SAUCE_USERNAME / SAUCE_ACCESS_KEY) set as environment variables or in the MCP client config. The server can execute arbitrary JavaScript via execute_script and drive browsers/devices, so run it only against targets you trust. HTTP transport mode includes DNS-rebinding protection via --allowedHosts and blocks browser clients unless --allowedOrigins is set.
WebDriverIO MCP Server + Claude Desktop FAQ
Where is the Claude Desktop config file?
Claude Desktop reads MCP servers from ~/Library/Application Support/Claude/claude_desktop_config.json. Paste the WebDriverIO MCP Server config there under the "mcpServers" key and restart the client.
Is WebDriverIO MCP Server safe to use with Claude Desktop?
Cloud-provider testing requires provider credentials (e.g. BROWSERSTACK_USERNAME / BROWSERSTACK_ACCESS_KEY, SAUCE_USERNAME / SAUCE_ACCESS_KEY) set as environment variables or in the MCP client config. The server can execute arbitrary JavaScript via execute_script and drive browsers/devices, so run it only against targets you trust. HTTP transport mode includes DNS-rebinding protection via --allowedHosts and blocks browser clients unless --allowedOrigins is set.
Do I need cloud credentials to use it?
No. Local browser and mobile automation work without any credentials. Provider credentials (e.g. BROWSERSTACK_USERNAME / BROWSERSTACK_ACCESS_KEY) are only needed when running tests on cloud real devices via BrowserStack, Sauce Labs, LambdaTest, TestingBot or Digital.ai.
What's required for mobile app automation?
An Appium server (`npm install -g appium`) plus the platform driver (xcuitest for iOS, uiautomator2 for Android), and a running emulator/simulator or connected device. iOS requires macOS with Xcode; Android requires Android Studio. Start the Appium server before launching mobile sessions.
Can it run without launching a subprocess?
Yes. By default it uses stdio (subprocess) transport, but for clients that cannot spawn subprocesses you can enable HTTP transport with `npx @wdio/mcp --http --port 3000` and point the client at http://localhost:3000/mcp.