Labsco
MCP SERVER · OFFICIAL PROJECT

WebdriverIO MCP

by webdriverio

Drive real browsers and real mobile apps from an agent — one session at a time, with the page's elements and accessibility tree handed back as selectors.

Browser Automation, Control & ScreenshotsOfficial source
Summary
Browser and mobile behind one set of tools, from the team that maintains WebdriverIO — and the same session can be handed to a cloud device.

The element and accessibility-tree tools are what make this workable for a model: it gets selectors and bounding boxes instead of guessing coordinates from a screenshot. The detail worth planning around is the single active session — this drives one target at a time, and attaching to an existing session by id is how you pick up something already running rather than starting over.

What it is

WebdriverIO's own automation server covering Chrome, Firefox, Edge and Safari plus iOS and Android through Appium, locally or on a cloud device provider.

What you get
  • Sessions started for a browser or a device, attached to an existing WebDriver or Appium session by id, and closed either by terminating or by detaching so app state survives on the server
  • Page navigation with the load event waited for, tab listing and switching by handle or index, and frame switching into an iframe and back
  • Interaction that behaves like a user: click after waiting and scrolling into view, type into a field character by character after clearing it, scroll, and drag and drop to an element or by offset
  • Mobile gestures and device state — tap by element or coordinates, full-screen swipe, rotation with the animation waited out, keyboard dismissal, app state, and switching between native and webview contexts in a hybrid app
  • Perception for the model rather than raw HTML: interactable elements with selectors, text and bounding boxes, the accessibility tree with roles and names, and compressed screenshots
  • Session control that testing needs: cookies read, set and deleted, geolocation overridden, device emulation with viewport, DPR and user agent, and arbitrary JavaScript or Appium mobile commands executed
  • Chrome launched with remote debugging on a fresh temporary profile, and web extensions installed through WebDriver BiDi and opened so the other tools can drive them
  • Cloud device work: apps listed on a provider, and a local .apk or .ipa uploaded to BrowserStack, Sauce Labs, TestMu, TestingBot or Digital.ai
Requirements

Runs from npm as @wdio/mcp over stdio. Browser automation needs the browser installed. Mobile work needs Appium — installed globally and running before a session starts — plus the platform SDK, or credentials for a cloud provider when the device lives there. Only one session is active at a time: starting another replaces it.

Setup effort

One command — npx -y @wdio/mcp@latest