MCP stdio launcher for a running Personae multi-identity browser. Provides identity (partition) → CDP targetId mapping and encapsulates tab switching workflow for AI agents (Codex / Claude Code).
Personae MCP provides 20 tools for browser automation across multiple identities. Tool naming follows verb_noun convention (list_identities, open_identity, navigate, etc.), which is good. However, descriptions are inconsistent in depth and quality. Most descriptions are 50-150 chars, which is acceptable, but lack actionable context about when to use each tool vs. alternatives. Parameter schemas are present but minimal, most parameters have only type and description, with no enums, ranges, or validation constraints. Output schemas are not documented anywhere in the visible code. Error handling is absent from descriptions. The server lacks guidance on tool composition (e.g., 'call snapshot() before click()' is mentioned in click's description but not consistently applied). No security considerations are documented despite tools performing write operations on browser state.
Navigate back in the specified identity's tab history.
Check a checkbox on the specified identity's tab.
Click an element on the specified identity's tab. Requires a prior snapshot to establish element references.
Close the browser window for the specified identity. Does not delete the identity data.
Fill an input field on the specified identity's tab with text.
Focus an element on the specified identity's tab.
Navigate forward in the specified identity's tab history.
Get information about the MCP server, including version, protocol version, and connection details.
No output schemas documented. Tools return results but LLMs cannot predict field names, types, or structure. This forces agents to guess what data is available and risks failed downstream tool chains.
Parameter 'identity' is overloaded (accepts id, name, or partition) but lacks enum or validation guidance. LLMs cannot determine which format to use without trial-and-error.
No error handling guidance in any tool description. Tools do not explain what happens on failure (e.g., 'identity not found', 'selector not found', 'navigation timeout'). Agents cannot recover from errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Hover over an element on the specified identity's tab.
List all browser identities (partitions) with their current state, including open/closed status, targetId, and child windows.
Load and display the usage guide for a bundled agent-browser skill.
Navigate the specified identity's tab to a URL.
Open a browser window for the specified identity (by id, name, or partition). Returns the identity state after opening.
Press a keyboard key on the specified identity's tab.
Reload the specified identity's tab.
Scroll the specified identity's tab by a given amount.
Select an option in a dropdown on the specified identity's tab.
Take a snapshot of the specified identity's tab, capturing the DOM and establishing element references for subsequent interactions.
Type text into a focused input field on the specified identity's tab.
Uncheck a checkbox on the specified identity's tab.
Implicit tool dependencies not documented. 'snapshot' must be called before 'click' to establish element references, but this is only mentioned in click's description. Agents may call click without snapshot and fail.
No parameter constraints (min/max, regex, enum) for numeric or string inputs. 'scroll' accepts x and y with no bounds, agents could pass absurd values. 'skill' parameter in load_skill has no enum of valid skill names.