Driverless, token-compressed Chrome DevTools Protocol browser controller and stdio MCP server for AI agents
cdpx defines 5 browser automation tools with basic schemas and descriptions. All tools have input schemas with type definitions and descriptions present. However, descriptions are terse (10-80 chars, well below the 194-char baseline), lack context on WHEN to use each tool, and omit error recovery guidance. Parameter descriptions are minimal. Output schemas are not documented. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles. browser_act and browser_goal are WRITE operations but lack confirmation/dry-run patterns. No pagination, batching, or composition guidance. Tool naming follows verb_noun convention (positive), but descriptions fail to explain dependencies (e.g., browser_act requires prior browser_navigate; browser_suggest vs browser_goal distinction unclear).
Perform an action (click, type) on an element reference (@e1, @e2). Includes Jev safety validation.
Set a natural-language goal. Jev selects the best element and action to execute.
Navigate to a URL and return the token-compressed interactive element map.
Returns a refreshed token-budgeted interactive element snapshot of the current page.
Rank all visible elements by relevance to a natural-language goal using Jev.
Descriptions are critically short (10-80 chars vs 194-char baseline). browser_goal and browser_suggest lack clarity on when to use each; browser_act omits mention of Jev safety validation in description despite claiming it in text.
No output schemas documented. LLMs cannot plan downstream calls or extract token-compressed element maps without knowing response structure (fields, types, pagination).
browser_act (WRITE) and browser_goal (WRITE) lack confirmation/dry-run patterns. Agents can accidentally click wrong elements or execute unintended goals without a safety gate.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk profile is declared in metadata but not in tool definitions, forcing LLMs to infer safety from descriptions.
Parameter 'value' in browser_act is optional in schema but required for 'type' action. Undocumented dependency invites LLM errors (passing type action without value).