MCP server that enables Claude to control a user's browser through a Firefox extension, allowing tab management, history access, content extraction, and text search/highlighting
Server has 7 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-100 chars, mostly adequate) and input schemas using Zod validation. However, descriptions lack depth on WHEN to use tools and dependencies between them. Parameter descriptions are minimal or absent. Output schemas are not documented, responses are free-text content arrays rather than structured objects. No error handling guidance (e.g., what to do if a tab ID is invalid). Tool names follow verb_noun convention but lack clarity on mutual exclusivity and side effects. Risk annotations (WRITE, DESTRUCTIVE, READ_ONLY) are present but not surfaced in schema or descriptions for LLM visibility.
Close tabs in the user's browser by tab IDs
Find and highlight text in a browser tab
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
Open a new tab in the user's browser
Output schemas not documented. Tools return free-text content arrays (e.g., 'tab id=1, tab url=...') instead of structured objects. LLMs cannot reliably extract fields for downstream tool calls or data extraction.
Parameter descriptions missing or minimal. 'tabIds' has no description; 'tabOrder' has no description; 'queryPhrase' lacks format guidance. LLMs cannot infer valid input ranges or formats.
No error handling guidance. Tools return generic 'Failed to X' messages without recovery hints. LLMs cannot determine if errors are retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Change the order of open browser tabs
Risk annotations (WRITE, DESTRUCTIVE, READ_ONLY) present in metadata but not exposed in tool descriptions or schemas. LLMs cannot see which tools are safe to retry or have side effects.
Tool descriptions lack WHEN-to-use guidance and dependencies. E.g., 'get-tab-web-content' requires a valid tabId but does not hint that 'get-list-of-open-tabs' should be called first to discover tab IDs.