MCP server for visual analysis and automated UI testing using Playwright and computer vision
Server has 13 tools with complete JSON schemas and descriptions, but quality is inconsistent. Naming is generally clear (verb_noun pattern), but descriptions are often generic or lack actionable context for LLM selection. No output schemas documented. Error handling is minimal. Tool composition shows some duplication (e.g., screenshot_url, batch_screenshot_urls, screenshot_local_files all do similar work). Schemas present but descriptions average ~100 chars, below the 194-char baseline for A+ tools.
Check a web page for accessibility issues
Test multiple API endpoints with various HTTP methods
Take screenshots of multiple URLs and display them in a grid
Monitor and capture console logs from a web page
Display the last screenshot taken
Inspect DOM elements and their properties at a specific URL
Analyze a web page with console logs and interactive element mapping
No output schemas documented. Tools return results but LLMs cannot predict field structure, forcing parsing of unstructured responses and breaking downstream tool chaining.
Parameter descriptions missing or generic. 'device' param appears in 6 tools with identical description but no guidance on valid values (iPhone 13, Pixel 5 are examples, not constraints). LLMs cannot validate input without enum or format constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Validate a user navigation flow through a website with multiple steps
Analyze performance metrics of a web page
Take screenshots of local HTML files in a directory
Take a screenshot of a URL using a web browser
Validate a complete user workflow through a web application with step-by-step verification
Compare visual appearance of two URLs
Tool composition duplication: screenshot_url, batch_screenshot_urls, and screenshot_local_files all capture screenshots with overlapping parameters (fullPage, waitTime). LLMs waste reasoning cycles choosing between similar tools.
Error handling absent. No guidance on retryability, user-fixable errors, or recovery steps. Tools fail silently or return raw exceptions without actionable context for LLM.
display_last_screenshot has dummy 'random_string' parameter marked required but unused. Violates parameter clarity, LLMs will pass garbage values. Remove or document purpose.