An MCP server that gives coding agents eyes on a local dev server: screenshots at real breakpoints, overflow detection, console and network errors, and accessibility violations.
Two tools with clear, focused responsibilities and well-structured schemas. Tool names are action-oriented (capture, diagnose). Descriptions are concise and explain WHAT and WHEN. Input schemas use Zod with type definitions and descriptions for all parameters. However, output schemas are not formally documented, responses are inferred from code (text + optional images/screenshots). Parameter descriptions lack format constraints and validation guidance. No error handling documentation or recovery paths. Missing tool annotations (readOnlyHint, idempotentHint). Baseline: avg tool description ~150 chars (within 10 - 1024 range); all params have descriptions; schemas present but output undocumented.
Load a page at several viewport widths and report which of them overflow sideways, naming the single element responsible. Returns text; pass screenshots:true only when an image is genuinely needed, as each one is expensive.
Load a page and report console errors, uncaught exceptions and failed requests. Listeners attach before navigation, so errors thrown during load are caught.
Output schemas not formally documented. Code returns {content: [{type, text/data/mimeType}]} but LLMs cannot infer structure from implementation. Must document return type in tool definition.
Parameter descriptions lack format constraints. 'url' accepts any string; 'viewports' accepts any array of strings without explaining valid formats (mobile, tablet, laptop, desktop, or WIDTHxHEIGHT, or WIDTH). LLMs will hallucinate invalid values.
No error handling documentation. Code throws 'Refused: URL outside allowlist' but tool descriptions do not explain this gate, what URLs are allowed, or how to recover. Agents will not know why calls fail.
Tool annotations missing. Both tools are read-only and idempotent (safe to retry), but no readOnlyHint or idempotentHint declared. Agents cannot infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
Parameter 'screenshots' in capture defaults to false but lacks guidance on cost/performance tradeoff. Description says 'expensive' but does not quantify (e.g., 'adds ~500ms per viewport, ~50KB per image').