Browser perception and state navigation for AI agents — Chrome/Firefox extension + MCP/HTTP server
browser-whiskor has 20 tools with basic naming and descriptions, but significant gaps in schema completeness, parameter documentation, and error handling. Most tools have descriptions (10-150 chars, below the 194-char baseline), but many lack detailed parameter descriptions or output schema documentation. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. Parameter schemas are present but sparse, many lack type constraints, enums, or validation guidance. Error handling is minimal; no recovery guidance or actionable error messages visible. The server targets browser automation (high-risk domain) but lacks the defensive patterns expected for production agent tools.
Pre-action dry-run utility to analyze clickability of an element before committing a click
Capture a screenshot of a specific element
Click an element on the page
Execute a JavaScript module in the browser context with dev-mode gating
Analyze CSS properties and styling of page elements
Get framework-specific state (React, Vue, Angular, etc.)
Get the current state of the page (DOM, accessibility tree, etc.)
Get list of browser sessions and their cached data
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite explicit risk classifications. Tools marked WRITE, IRREVERSIBLE, and READ_ONLY lack machine-readable hints for agent planning.
Parameter descriptions are sparse or missing. Many tools (get_sessions, get_tabs, profile_status) have empty input schemas or lack descriptions for parameters like 'tabId', 'selector', 'rect'. LLMs cannot infer parameter meaning from names alone.
Output schemas are not documented. Tools like screenshot, ocr_region, get_page_state, get_framework_state lack visible return type documentation. Agents cannot plan downstream calls without knowing what fields to expect.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Get source code context for a component or symbol
Get list of open browser tabs
Get text coordinates and element information from the page
Load a tool profile to make its tools visible
Navigate to a URL in the browser
Perform OCR on a region of the screen or a specific element
Get the current status of loaded profiles and their tools
Replay a recorded browser session
Capture a screenshot of the current browser tab
Profile discovery tool — search available tools by keyword or list all tools in a profile
Type text into a focused input element
Unload a tool profile to hide its tools
No error handling guidance. Tools lack recovery hints (e.g., 'If selector not found, try analyze_click first'). No categorization of errors as retryable vs. fatal. Agents cannot self-correct on failures.
exec_module tool accepts arbitrary JavaScript code with only 'dev-mode gating'. No input validation, sandboxing, or injection prevention visible. High security risk for agent-driven code execution.