Firefox DevTools MCP vs Webdriverio MCP
A side-by-side look at the Firefox DevTools MCP and Webdriverio MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Firefox DevTools MCP for browser automation work as a local process; choose Webdriverio MCP for browser automation as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Firefox DevTools MCP when
- You need dedicated capabilities in the Browser Automation domain.
- You prefer a local stdio subprocess transport.
- You want tools like
list_pages, new_page, navigate_page.
Choose Webdriverio MCP when
- You need dedicated capabilities in the Browser Automation domain.
- You prefer a local stdio subprocess transport.
- You want tools like
enable_tools, start_session, attach_session.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Browser Automation | Browser Automation |
| Quality signal | 69/100 · Great | 64/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 506 | 42 |
| Directory activity | 3 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 35 | 40 |
| Full listing | View Firefox DevTools MCP | View Webdriverio MCP |
Tools & capabilities
Firefox DevTools MCP tools 35
list_pagesList open tabs (index, title, URL). Selected tab is marked.new_pageOpen new tab at URL. Returns tab index.navigate_pageNavigate selected tab to URL.select_pageSelect active tab by index, URL, or title. Index takes precedence.close_pageClose tab by index.get_page_textGet the visible text of the page (document.body.innerText). Caps at maxLength (default 20000 chars); saveTo saves the full text to a file.take_snapshotCapture DOM snapshot with stable UIDs. A UID stays valid across snapshots until its element is removed or the page navigates. Output caps at maxLines (default 100); scope with selector or dump the full tree with saveTo.resolve_uid_to_selectorResolve UID to CSS selector. Fails if the element is gone.clear_snapshotClear snapshot UIDs. Usually not needed.click_by_uidClick element by UID. Set dblClick for double-click.hover_by_uidHover over element by UID.fill_by_uidFill text input/textarea by UID.- +23 more on the listing page
Webdriverio MCP tools 40
enable_toolsAdd a group of tools: `mocks`, `cookies`, `device`, `extensions`, `attach`, `elements`, `cloud-appsstart_sessionStart a browser, local Electron application, or mobile app session; `attach: true` retains the existing Chrome CDP connection modeattach_sessionAttach to an existing remote WebDriver/Appium session by ID without creating a new sessionlaunch_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 BiDi sessionopen_web_extensionInstall a web extension through WebDriver BiDi and open one of its extension pages so normal page tools can drive its UInavigateNavigate to a URL. In browsers the result shows the new page's interactive elements with refssnapshotThe page as an accessibility tree with refs (`button "Save" [ref=e3]`), interactive elements by default (plain text is dropped, `full: true` shows it); pass refs to `perform_actions` for several steps; `find` returns only the parts containing a text (link targets included), `full: true` adds all te…get_elementsGet visible, interactable elements with bounds. Supports `inViewportOnly` (default: true) and `includeContainers` (default: false). Mobile and Electron; listed after `enable_tools({ groups: ['elements'] })`, use `snapshot` firstget_accessibility_treeGet the accessibility tree with roles, names, and selectors. Electron-only; browsers use `snapshotget_screenshotTake a screenshot of the current page or screen (base64-encoded, auto-resized to max 2000px / 1MB)- +28 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Firefox DevTools MCP
{
"mcpServers": {
"firefox-devtools-mcp": {
"command": "npx",
"args": [
"-y",
"@mozilla/firefox-devtools-mcp@latest"
]
}
}
}
Webdriverio MCP
{
"mcpServers": {
"webdriverio-mcp": {
"command": "npx",
"args": [
"-y",
"@wdio/mcp@latest"
]
}
}
}
Frequently asked questions
Firefox DevTools MCP is categorized under Browser Automation and uses a local stdio subprocess. Webdriverio MCP belongs to Browser Automation and uses a local stdio subprocess. Pick Firefox DevTools MCP for browser automation work and Webdriverio MCP for browser automation.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Firefox DevTools MCP has no declared pricing — check the project's own site. Webdriverio MCP has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add firefox-devtools-mcp and webdriverio-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Firefox DevTools MCP has a quality signal of 69/100 (Great) with 3 views, 0 installs and 506 GitHub stars. Webdriverio MCP has 64/100 (Good) with 2 views, 0 installs and 42 GitHub stars.