Brocogni -- Making Playwright make sense to AI agents. MCP server for semantic browser observation and self-healing selectors.
Browser Cognition MCP defines 5 tools for semantic browser observation and selector generation. All tools have descriptions and documented input schemas, but descriptions are inconsistent in quality and depth. Schema definitions are present but lack output schema documentation. Tool naming is action-verb based and clear (browser_observe, browser_find_targets, browser_get_selector_plan, browser_verify_action, browser_observe_delta). However, critical gaps exist: no error handling guidance, no examples of recovery paths, no documentation of output structures for downstream tool chaining, and no parameter validation rules. The server is domain-specific (browser automation) and the tool composition is logical (READ-ONLY operations only), but lacks production-grade error handling and output schema documentation required for reliable LLM tool chaining.
Searches semantic page state for nodes matching specified criteria (role, name pattern, visibility, enabled status).
Generates ranked selector strategies for a target node with primary and fallback selectors, including rationale and self-healing XPath options.
Captures semantic page state by observing accessibility tree and DOM geometry, returning actionable UI nodes with computed positions and roles.
Computes the difference between two semantic page states (old and new), identifying added, removed, and modified nodes to detect dynamic UI changes.
Pre-flight validation to verify if a specific action (click, fill, etc.) can be performed on a target node, returning eligibility and failed preconditions.
No output schema documentation. Tools describe their inputs but not their return structures. LLMs cannot plan downstream tool calls or extract specific fields from responses without explicit schema. Critical for tool chaining.
No error handling or recovery guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. Agents cannot recover from failures gracefully.
Parameter descriptions lack validation rules and constraints. 'budget' parameter on browser_observe has no min/max bounds. 'mode' parameter has no enum constraint or examples of valid values. 'action' parameter on browser_verify_action should list supported actions (click, fill, select, check) as an enum.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
browser_observe_delta accepts 'oldState' and 'newState' parameters documented only as 'object' with no type refinement. Should specify SemanticPageState structure, required fields, or reference to the schema type.
Tool descriptions (63-102 characters) are at the lower end of the baseline range (p10=34, p90=392). While above the 20-character floor, they are sparse and lack context on WHEN to use each tool relative to others (browser_observe vs browser_find_targets distinction is unclear).
No documentation of SemanticPageState structure, node object shape, or field meanings. Agents receiving responses from browser_observe cannot reliably extract or manipulate node data without reverse-engineering the schema from runtime behavior.