Control Wavebox browser tabs, windows, and navigation
This MCP server provides 10 browser control tools with complete input schemas and mostly adequate descriptions. However, there are significant gaps in parameter documentation, output schemas are not documented, and error handling lacks actionable recovery guidance. Tool names are appropriate (verb_noun pattern), but several parameters lack descriptions entirely. The server defines schemas inline in the tool registration but does not document what each tool returns, forcing LLMs to guess the output structure. Additionally, sensitive operations (execute_javascript, close_tab) lack confirmation or dry-run patterns. The server is functional but falls short of production-grade quality.
Close a specific tab
Execute JavaScript in the current tab
Get information about the current active tab
Get the text content of the current page
Navigate back in browser history
Navigate forward in browser history
List all open tabs in Wavebox
Output schemas not documented. Tools return text or JSON responses (e.g., get_current_tab returns {url, title, id}), but the tool definitions in ListToolsRequestSchema do not include outputSchema fields. LLMs cannot plan downstream tool calls or extract specific fields without knowing the response structure.
Missing parameter descriptions for multiple tools. go_back and go_forward have a 'tab_id' parameter with a description, but reload_tab, list_tabs (window_id is documented but optional behavior is not clear), and others lack clear guidance on when parameters are required vs optional and what happens when omitted.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
Open a URL in Wavebox
Reload a tab
Switch to a specific tab
Destructive operations lack confirmation or dry-run pattern. close_tab permanently removes a tab with no confirmation step. execute_javascript runs arbitrary code without validation. Per pattern:confirmation-request, irreversible operations should support user confirmation or require explicit flags.
Error messages lack actionable recovery guidance. The executeAppleScript error handler provides permission recovery steps for permission denied and 'Wavebox not running' errors, but tool-level error responses in CallToolRequestSchema do not follow this pattern. When list_tabs fails to parse malformed output, the LLM receives a generic error with no hint on what to try next.
Tool descriptions are generic and lack context on when to use each tool. For example, 'Navigate back in browser history' (go_back) and 'Navigate forward in browser history' (go_forward) do not explain the difference in use cases from switch_to_tab, or what happens if back/forward is not available. Descriptions should be 50-200 chars and guide LLM selection.
Missing tool annotations for sensitive operations. Per current MCP spec, tools should declare destructiveHint, readOnlyHint, and idempotentHint annotations. close_tab and execute_javascript are destructive but lack annotations. get_current_tab and get_page_content are read-only but lack annotations. This prevents agents from reasoning about safety.
Incomplete parameter validation and error handling in execute_javascript. The tool accepts arbitrary JavaScript code but does not validate syntax, warn of side effects, or return structured output of the execution result (success/failure/value). A malformed script could hang or crash the browser silently.