MCP server for controlling a headful browser via HTTP proxy service with support for navigation, element interaction, content retrieval, and JavaScript evaluation
The server defines 7 tools with reasonable naming conventions and explicit parameter schemas. However, description quality is inconsistent, parameter documentation lacks depth, and output schemas are entirely absent from the source code. Tool names follow verb_noun patterns (goto, click, fill, content, fetch, listPages, closePage), which is good. Parameters are typed in JSON Schema format, but descriptions are brief and lack actionable context. Most critically, there is no documentation of what these tools return, output schemas are missing. Error handling is not evident in the source. Logging infrastructure exists but error guidance for the LLM is absent.
Clicks an element matching the selector on a specific browser page.
Closes a specific browser page/tab.
Retrieves the full HTML content of a specific browser page.
Executes a fetch request from within the context of a specific browser page, useful for accessing resources requiring session cookies.
Fills an input element matching the selector with the provided text on a specific browser page.
Navigates a specific browser page (identified by pageId) to a given URL.
Output schemas completely missing. No documentation of what tools return (data types, fields, example responses). LLMs cannot predict downstream field availability or plan tool chains.
Parameter descriptions are too brief (6 - 25 chars) and lack context. E.g., 'Identifier for the browser page/tab' repeated verbatim across all tools. No guidance on what values are valid, how pageId is obtained, or whether defaults exist.
No error handling documented. Tools have no guidance for failure modes: what happens if pageId is invalid? If a selector doesn't match? If a fetch times out? LLMs cannot recover from failures.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Lists all active browser pages/tabs.
Tool descriptions lack context for when to use each tool. 'Navigates a specific browser page to a given URL' does not explain prerequisites (must pageId already exist?) or side effects (does this clear history? trigger onload events?).
listPages takes no parameters and has minimal description (12 chars). Output schema missing, LLM does not know what fields identify a page or how to correlate response to tool inputs.
closePage is irreversible (declared Risk: IRREVERSIBLE) but has no confirmation or dry-run mechanism. LLMs can accidentally close the wrong page without warning.
Parameter 'params' in goto, click, fill is a generic object with no schema validation or documentation of accepted keys. LLMs must guess valid Playwright option names, risking malformed calls.