Page-scoped MCP server for Chrome DevTools Protocol automation, built for WebOS application debugging
28 tools with consistent naming (verb_noun pattern) and comprehensive parameter schemas using Zod. Descriptions present for all tools and most parameters, averaging ~100 chars per tool description. However, parameter descriptions are often terse (10-30 chars), and output schemas are not formally documented. Error handling exists but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in metadata. Missing idempotency guarantees and confirmation patterns for destructive operations.
Clear the buffered log entries.
Report current console streaming status.
Begin streaming console output in real time.
Stop streaming console output.
Dump the accessibility tree for the page or a targeted subtree.
Return the full outer HTML of the first matching element.
List DOM event listeners attached to an element, document, or window.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications. Tools marked DESTRUCTIVE (network_clear_capture, storage_delete_cookie, storage_clear_cookies, clear_logs) should declare destructiveHint=true to guide agent behavior.
Output schemas not formally documented. Tools return {content: [{type: 'text', text: string}]} but LLMs cannot infer structure of 'text' field content (e.g., dom_query_selector returns formatted summaries, network_list_requests returns request objects). Explicit output schema documentation needed.
No confirmation or dry-run pattern for destructive operations. storage_clear_cookies, storage_delete_cookie, clear_logs, and network_clear_capture can permanently destroy data without agent confirmation. Agents may invoke these unintentionally.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Inspect the first element that matches a CSS selector.
Evaluate a JavaScript expression in the attached page.
List buffered console messages, runtime exceptions, and log entries.
Clear captured network requests.
Retrieve the response or request body for a captured request.
List captured network requests with optional filtering.
Begin capturing network activity for the current page.
Stop capturing network activity.
Hide any active overlay highlight immediately.
Highlight the element matching a selector.
Highlight the currently focused element (document.activeElement).
Navigate the page to a new URL.
Reload the current page.
Clear all browser cookies for the current session.
Delete a cookie by name and optional scope.
List cookies available to the current page context.
List all key/value pairs from window.localStorage.
Remove a key from localStorage if it exists.
Create or update a cookie for the current browser context.
Set a localStorage key to a string value.
Capture a screenshot of the attached page.
Parameter descriptions often too terse (<30 chars). Examples: 'Provide a valid URL' (console_subscribe levels param), 'Cookie name is required' (storage_delete_cookie). Descriptions should explain WHEN to use each parameter and what happens if omitted.
No error recovery guidance. Tools return {isError: true, content: [{type: 'text', text: error.message}]} but do not suggest next steps. E.g., dom_query_selector failing should suggest 'Try a broader selector or use dom_accessibility_tree to explore the page structure.'