Enterprise-grade secure browser automation for L3 AI coding agents
MCP Browser has 6 tools with basic schemas and descriptions, but significant gaps prevent higher scores. All tools have descriptions (10-30 chars, below the 50-200 char baseline for LLM optimization) and input schemas with types. However, descriptions are generic and lack context about when/why to use each tool, parameter relationships are undocumented, and error handling guidance is absent. No tool annotations (readOnlyHint/destructiveHint) despite all tools being WRITE operations. Output schemas are not documented. The navigate tool has reasonable parameter detail (timeout, wait_until), but others (back, forward, refresh) lack depth. No evidence of idempotency guarantees, retry guidance, or recovery paths for failures.
Go back in browser history
Click on element
Go forward in browser history
Navigate to URL
Refresh current page
Type text into element
Descriptions are too short (10-30 chars) and lack LLM-optimized context. Baseline is 50-200 chars. 'Go back in browser history' does not explain when to use back vs navigate, what happens on first page, or error conditions.
No tool annotations despite all 6 tools being destructive (WRITE risk). Missing readOnlyHint=false and destructiveHint=true. LLMs cannot distinguish safe reads from state-modifying calls.
Output schemas are not documented. LLMs cannot plan downstream calls or extract results. What does navigate return? Success boolean? Page content? Screenshot? Unknown.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
No error handling guidance. If click fails (element not found, timeout), what should the LLM do? Retry? Call a different tool? No recovery paths documented.
Parameter descriptions lack constraints and format guidance. 'timeout' has no min/max (baseline: 1-300s). 'wait_until' has no enum (should be: load|domcontentloaded|networkidle|commit). 'selector' has no format hint (CSS selector syntax).