by webdriverio
WebDriverIO MCP Server enables Claude Desktop to automate browsers and iOS/Android apps with WebDriverIO — offering brow
Automates web browsers (Chrome, Firefox, Safari, Edge) and mobile apps (iOS/Android) through natural language commands using WebDriverIO.
WebDriverIO MCP Server is an official MCP server published by webdriverio that provides AI assistants with tools and capabilities via the Model Context Protocol. WebDriverIO MCP Server enables Claude Desktop to automate browsers and iOS/Android apps with WebDriverIO — offering brow It is categorized under browser automation, developer tools.
You can install WebDriverIO MCP Server in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
MIT
WebDriverIO MCP Server is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Fetch and extract information from websites automatically
Example
Research competitor pricing, scrape product reviews, monitor news mentions
Automate 5-10 hours/week of manual web research
Track website changes, new content, price updates
Example
Monitor competitor blog for new posts, track stock availability, watch for pricing changes
Stay informed without manual checking, never miss important updates
Extract structured data from multiple websites
Example
Compile product listings from 10 e-commerce sites, aggregate job postings, collect real estate data
Build datasets 100x faster than manual copying
Share your MCP server with the developer community
We wired WebDriverIO MCP Server into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
WebDriverIO MCP Server is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
I recommend WebDriverIO MCP Server for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
Useful MCP listing: WebDriverIO MCP Server is the kind of server we cite when onboarding engineers to host + tool permissions.
WebDriverIO MCP Server reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
WebDriverIO MCP Server has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
Strong directory entry: WebDriverIO MCP Server surfaces stars and publisher context so we could sanity-check maintenance before adopting.
Strong directory entry: WebDriverIO MCP Server surfaces stars and publisher context so we could sanity-check maintenance before adopting.
WebDriverIO MCP Server reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
According to our notes, WebDriverIO MCP Server benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
showing 1-10 of 74
A Model Context Protocol (MCP) server that enables Claude Desktop to interact with web browsers and mobile applications using WebDriverIO. Automate Chrome, Firefox, Edge, and Safari browsers plus iOS and Android apps—all through a unified interface.
Option 1: Configure Claude Desktop or Claude Code (Recommended)
Add the following configuration to your Claude MCP settings:
{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": [
"-y",
"@wdio/mcp"
]
}
}
}
Option 2: Global Installation
npm i -g @wdio/mcp
Then configure MCP:
{
"mcpServers": {
"wdio-mcp": {
"command": "wdio-mcp"
}
}
}
Note: The npm package is
@wdio/mcp, but the executable binary iswdio-mcp.
Restart Claude Desktop
⚠️ You may need to fully restart Claude Desktop. On Windows, use Task Manager to ensure it's completely closed before restarting.
📖 Need help? Read the official MCP configuration guide
npm install -g appiumappium driver install xcuitest (requires Xcode on macOS)appium driver install uiautomator2 (requires Android Studio)Start the Appium server before using mobile features:
appium
# Server runs at http://127.0.0.1:4723 by default
| Tool | Description |
|---|---|
start_browser | Start a browser session (Chrome, Firefox, Edge, Safari; headless/headed, custom dimensions) |
start_app_session | Start an iOS or Android app session via Appium (supports state preservation via noReset) |
close_session | Close or detach from the current browser or app session (supports detach mode) |
| Tool | Description |
|---|---|
navigate | Navigate to a URL |
get_visible_elements | Get visible, interactable elements on the page. Supports inViewportOnly (default: true) to filter viewport elements, and includeContainers (default: false) to include layout containers on mobile |
get_accessibility | Get accessibility tree with semantic element information |
scroll | Scroll in a direction (up/down) by specified pixels |
take_screenshot | Capture a screenshot |
| Tool | Description |
|---|---|
click_element | Click an element |
set_value | Type text into input fields |
| Tool | Description |
|---|---|
get_cookies | Get all cookies or a specific cookie by name |
set_cookie | Set a cookie with name, value, and optional attributes |
delete_cookies | Delete all cookies or a specific cookie |
| Tool | Description |
|---|---|
tap_element | Tap an element by selector or coordinates |
swipe | Swipe in a direction (up/down/left/right) |
drag_and_drop | Drag from one location to another |
| Tool | Description |
|---|---|
get_app_state | Check app state (installed, running, background, foreground) |
| Tool | Description |
|---|---|
get_contexts | List available contexts (NATIVE_APP, WEBVIEW_*) |
get_current_context | Show the currently active context |
switch_context | Switch between native and webview contexts |
| Tool | Description |
|---|---|
rotate_device | Rotate to portrait or landscape |
hide_keyboard | Hide on-screen keyboard |
get_geolocation / set_geolocation | Get or set device GPS location |
Example 1: Testing Demo Android App (Book Scanning)
Test the Demo Android app at C:\Users\demo-liveApiGbRegionNonMinifiedRelease-3018788.apk on emulator-5554:
1. Start the app with auto-grant permissions
2. Get visible elements on the onboarding screen
3. Tap "Skip" to bypass onboarding
4. Verify main screen loads
5. Take a screenshot
Example 2: Testing World of Books E-commerce Site
You are a Testing expert, and want to assess the basic workflows of worldofbooks.com:
- Open World of Books (accept all cookies)
- Get visible elements to see navigation structure
- Search for a fiction book
- Choose one and validate if there are NEW and used book options
- Report your findings at the end
Basic web testing prompt:
You are a Testing expert, and want to assess the basic workflows of a web application:
- Open World of Books (accept all cookies)
- Search for a fiction book
- Choose one and validate if there are NEW and used book options
- Report your findings at the end
Browser configuration options:
// Default settings (headed mode, 1280x1080)
start_browser()
// Firefox
start_browser({browser: 'firefox'})
// Edge
start_browser({browser: 'edge'})
// Safari (headed only; requires macOS)
start_browser({browser: 'safari'})
// Headless mode
start_browser({headless: true})
// Custom dimensions
start_browser({windowWidth: 1920, windowHeight: 1080})
// Headless with custom dimensions
start_browser({headless: true, windowWidth: 1920, windowHeight: 1080})
// Pass custom capabilities (e.g. Chrome extensions, profile, prefs)
start_browser({
headless: false,
capabilities: {
'goog:chromeOptions': {
args: ['--user-data-dir=/tmp/wdio-mcp-profile', '--load-extension=/path/to/unpacked-extension']
}
}
})
Testing an iOS app on simulator:
Test my iOS app located at /path/to/MyApp.app on iPhone 15 Pro simulator:
1. Start the app session
2. Tap the login button
3. Enter "testuser" in the username field
4. Take a screenshot of the home screen
5. Close the session
Preserving app state between sessions:
Test my Android app without resetting data:
1. Start app session with noReset: true and fullReset: false
2. App launches with existing login state and user data preserved
3. Run test scenarios
4. Close session (app remains installed with data intact)
Testing an iOS app on real device:
Test my iOS
---
Interact with services that don't offer APIs
Example
Check form submissions, validate website functionality, test user flows
Automate interactions with any website, even without API
Prerequisites
Time Estimate
20-40 minutes including configuration and testing
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
MCP server handles HTTP requests, HTML parsing, JavaScript rendering (if headless browser), and returns structured data to Claude.
Protocols
Compatibility
✓ Use when
Use for research automation, content monitoring, data aggregation from multiple sources, and when official APIs don't exist. Best for read-only information gathering.
✗ Avoid when
Avoid for sites with APIs (use API instead), sites that explicitly forbid scraping, when data is copyrighted, or for login-required content without proper authorization.