An MCP server for controlling and interacting with the Qutebrowser web browser, built with Quarkus and PicoCLI. Provides tools to list, read, and select browser tabs, and manage browser sessions.
Server defines 4 tools with basic descriptions but critical gaps in schema completeness and parameter documentation. Tool names use verb_noun pattern (tabs list, tabs read, tabs select, session save) which is good. However, input schemas lack type information for most parameters, descriptions are minimal (10-50 chars, below the 50-200 char baseline for LLM optimization), and no output schemas are documented. Parameters like 'query' and 'output' have descriptions but lack type constraints (enums, ranges, formats). No error handling guidance, no idempotency markers, and no indication of which operations are destructive. The 'tabs read' and 'session save' tools accept 'output' parameters that default to temp directory, this is reasonable but underdocumented. Overall, definitions are skeletal and would require significant LLM reasoning to use correctly.
Save qutebrowser session (windows and tabs) and output them to a file
List qutebrowser windows and tabs
Read the content of a tab in the browser
Select a tab by name or URL
tabs list has empty input schema ({}). No parameters documented, no output schema visible. LLM cannot infer what this tool returns or how to use results downstream.
All tools lack documented output schemas. LLMs cannot plan downstream tool calls or extract required fields (e.g., tab IDs for 'tabs select'). Violates pattern:response-shaper.
Parameter 'query' in tabs read and tabs select lacks type definition (should be 'string' with minLength/maxLength). Parameter 'output' lacks format constraint (file path pattern). Violates pattern:constrained-input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Descriptions are 10-50 characters, well below the 50-200 char baseline for LLM-optimized descriptions. E.g., 'List qutebrowser windows and tabs' (34 chars) lacks context on when to call this vs other tools, what structure is returned, or how to use results.
No error handling guidance. If 'tabs read' fails to find a matching tab, or 'session save' cannot write to the output path, LLM receives no recovery hints. Violates pattern:recovery-guide.