MCP server that enables Claude to control a user's Firefox browser through a WebSocket-based extension
BrowserControl has 7 tools with complete Zod schemas and descriptions. Naming follows verb_noun convention (open-browser-tab, close-browser-tabs, get-list-of-open-tabs). Descriptions are present but vary in quality (10 - 200 chars). All parameters have type definitions and most have descriptions. However, several descriptions are terse (e.g., 'Close tabs in the user's browser by tab IDs' lacks context on when to use it). Output schemas are not formally documented, responses are inferred from code. Error handling is minimal (basic success/failure returns). No parameter validation guidance (e.g., valid tab ID ranges, URL format constraints). Tool composition is sound (each does one thing), but descriptions could better guide LLM selection and error recovery.
Close tabs in the user's browser by tab IDs
Find and highlight text in a browser tab (use a query phrase that exists in the web content)
Get the list of open tabs in the user's browser
Get the list of recent browser history (to get all, don't use searchQuery)
Get the full text content of the webpage and the list of links in the webpage, by tab ID. Use "offset" only for larger documents when the first call was truncated and if you require more content in order to assist the user.
Open a new tab in the user's browser
Output schemas not formally documented. Responses are inferred from code (text content arrays, success/failure strings). LLMs cannot plan downstream tool calls without knowing return structure.
Descriptions lack context on when to use each tool and what to do on failure. E.g., 'Close tabs in the user's browser by tab IDs' does not explain prerequisites (how to get tab IDs) or error recovery (what if tab ID is invalid).
No parameter validation guidance. E.g., tabId and tabIds parameters lack constraints (valid range, format). LLMs may pass invalid IDs without knowing the bounds.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Change the order of open browser tabs
Error responses are generic ('Failed to open tab', 'No history found'). They do not guide the LLM on recovery actions (e.g., 'Try with a different URL' or 'Call get-list-of-open-tabs to find valid tab IDs').
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe read-only tools from destructive ones (close-browser-tabs, reorder-browser-tabs) without explicit hints.