A side-by-side look at the Personae 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 Personae 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.
ELECTRON_RUN_AS_NODE.load_skill, list_identities, open_identity.enable_tools, start_session, attach_session.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Browser Automation | Browser Automation |
| Quality signal | 53/100 · Good | 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 | ELECTRON_RUN_AS_NODE | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 42 |
| Directory activity | 0 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 10 | 40 |
| Full listing | View Personae | View Webdriverio MCP |
load_skillFetch the real command syntax of the bundled agent-browser version (returns a section index by default; pass `section` for a specific one)list_identitiesList all identities with open state and current URLopen_identityOpen an identity's windowsnapshotAccessibility-tree snapshot returning `[ref=eN]` element refsnavigateNavigate to a URLclickInteraction; `click` accepts either a ref or visible textactRun several commands inside one agent-browser processget_textRead contentscreenshotCapture a screenshoteval_jsEvaluate JavaScriptenable_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)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.
{
"mcpServers": {
"personae": {
"command": "npx",
"args": [
"-y",
"@leek-emperor/personae-mcp"
],
"env": {
"ELECTRON_RUN_AS_NODE": "YOUR_ELECTRON_RUN_AS_NODE_HERE"
}
}
}
}
{
"mcpServers": {
"webdriverio-mcp": {
"command": "npx",
"args": [
"-y",
"@wdio/mcp@latest"
]
}
}
}