A lightweight Rust library for browser automation via Chrome DevTools Protocol (CDP), featuring a built-in Model Context Protocol (MCP) server for AI-driven browser automation
9 tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. Most tools have 1-2 parameters with minimal descriptions (10-30 chars). No output schemas documented. No error recovery guidance. Naming is verb-based (good), but descriptions lack WHEN/WHY context. No tool annotations (readOnlyHint/destructiveHint). Parameter descriptions are sparse, e.g., 'selector' and 'index' appear in 5 tools but lack guidance on when to use each. No validation rules stated (e.g., CSS selector format, pixel bounds for scroll). Tools like 'select' and 'type' are WRITE operations but lack confirmation/dry-run patterns.
Click on an element identified by selector or index
Extract the DOM tree as an accessibility tree (ARIA nodes)
Get the current page content as markdown or HTML
Hover over an element to trigger mouseover events
Navigate to a URL in the browser
Take a screenshot of the current page
Scroll the page by a specified amount or to the bottom
Select an option from a dropdown/select element by value or index
Parameter descriptions are minimal (10-30 chars) and lack actionable guidance. 'selector' appears in 5 tools but never explains CSS selector syntax, when to use selector vs index, or error cases (e.g., 'selector not found'). LLMs cannot infer these details.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., does screenshot() return base64, file path, or URL? Does extract_dom() return JSON tree structure? Undocumented outputs force LLMs to guess.
Destructive/write tools (select, click, type) lack confirmation or dry-run patterns. No guidance on error recovery. If 'click' fails, should the agent retry? Call screenshot first? No error classification provided.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
Type text into an input field or textarea
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Clients cannot distinguish safe tools from destructive ones. 'click' and 'type' should be marked destructiveHint=true; 'screenshot' and 'extract_dom' should be marked readOnlyHint=true.
Parameter 'index' (used in select, hover, click, type) lacks bounds or validation rules. What is the valid range? Is it 0-indexed or 1-indexed? What happens if index exceeds DOM size? No guidance provided.