A browser-based screenshot tool that captures DOM elements via WebSocket communication
The single tool 'get_browser_screenshot' has a verb-based name (positive), but critically lacks any input schema definition, parameter descriptions, and output schema documentation. The tool is registered with mcp.NewTool('get_browser_screenshot') but no schema object is provided, the Input field is empty {}. No description text is visible in the tool registration. The tool returns mcp.NewToolResultImage() with hardcoded empty string and base64 data, but the output structure is not documented for the LLM. This violates core pattern:tool and pattern:tool-description requirements.
Tool has no input schema definition. Input field is empty {}. LLM cannot understand what parameters are accepted or required.
Tool has no description text. LLM cannot determine when or why to select this tool, violating pattern:tool-description.
Output schema is not documented. Tool returns image data via mcp.NewToolResultImage() but LLM has no visibility into the response structure or fields.
No error handling guidance. Tool returns 'no browser session' error but does not guide LLM on recovery steps or retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 29 | 2026-07-28+ | v2 |
Tool implementation relies on browser-side JavaScript (embed.js) and WebSocket communication. Architecture is unconventional for MCP and introduces complexity without clear documentation of prerequisites or failure modes.