A side-by-side look at the Chrome MCP and Personae MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Chrome MCP for browser automation work as a local process; choose Personae for browser automation as a local process. You can also run both side by side in one mcpServers block.
CHROME_MCP_TOKEN, CHROME_MCP_EXTENSION_DIR.tabs_list, screenshot, get_text.ELECTRON_RUN_AS_NODE.load_skill, list_identities, open_identity.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Browser Automation | Browser Automation |
| Quality signal | 64/100 · Good | 53/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 | CHROME_MCP_TOKENCHROME_MCP_EXTENSION_DIR | ELECTRON_RUN_AS_NODE |
| Verified owner | Community listing | Community listing |
| GitHub stars | 6 | 2 |
| Directory activity | 2 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 22 | 10 |
| Full listing | View Chrome MCP | View Personae |
tabs_listList open browser tabs.screenshotCapture a screenshot (page or element). Default is JPEG (quality 70) at CSS-pixel size, which is several times smaller than PNG and reads fine. Pass format:"png" for lossless, quality 1-100 for JPEG, scale 2 for device pixels on a Retina display or 0.5 to shrink.get_textGet visible text of the page or an element.get_htmlGet HTML of the page or an element. Output is capped (see maxBytes) and cut at a tag boundary; narrow it with `selector` rather than raising the cap when you can. Password field values are always blanked.snapshotAccessibility snapshot: interactive elements with refs to target by `ref` (more reliable than guessing CSS selectors). Pass diff:true to get only what changed since the last snapshot of this tab - far cheaper in a click/read loop. Password fields appear as secret:true with no value.page_watchSave a local page checkpoint and compare it later. Actions: create (name), compare (watchId), list, delete. Stores accessibility labels and state, never form values. Site allowlist still applies.get_cookiesCookies for the tab's URL (or url); values need --enable-cookie-values.storageRead/write localStorage (or sessionStorage). op: get|set|remove|clear.wait_forWait for a selector or text to appear/disappear.extract_linksExtract anchors from the page or a subtree. dedupe=true collapses links sharing an href (nav/footer noise); limit caps the count.read_as_markdownRead the page (or subtree) as readable markdown.frames_listList the tab's frames (the top document plus every iframe the extension can reach), with each frame's id and URL. Use it when a selector that should match does not: the element is probably in one of these frames, and you can then pass frameId (or allFrames:true) to act inside it.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 JavaScriptPaste 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": {
"chrome-mcp": {
"command": "npx",
"args": [
"-y",
"mcp-browser-extension@latest"
],
"env": {
"CHROME_MCP_TOKEN": "YOUR_CHROME_MCP_TOKEN_HERE",
"CHROME_MCP_EXTENSION_DIR": "YOUR_CHROME_MCP_EXTENSION_DIR_HERE"
}
}
}
}
{
"mcpServers": {
"personae": {
"command": "npx",
"args": [
"-y",
"@leek-emperor/personae-mcp"
],
"env": {
"ELECTRON_RUN_AS_NODE": "YOUR_ELECTRON_RUN_AS_NODE_HERE"
}
}
}
}