URL to screenshot with metadata. Python MCP server included. Claude Vision optimized.
Three tools with complete input schemas and descriptions. Naming follows verb_noun pattern (capture_*, extract_*). Descriptions are adequate (100-200 chars) but lack WHEN-to-use guidance and dependency hints. Parameters are well-typed with defaults, but lack enum constraints for viewport/format/wait values. Output is JSON-serialized but schema not formally documented. No error handling guidance or recovery paths. Missing tool annotations (readOnlyHint, idempotentHint). Composition is sound, each tool has one responsibility.
Capture screenshots of the same URL in multiple viewports for comparison. Useful for responsive design review — compare desktop vs mobile layouts.
Capture a screenshot of a web page and return the file path. The saved image can be viewed with the Read tool. Also returns page metadata (title, OG tags, favicon) and Claude Vision token estimate.
Extract page metadata without taking a screenshot. Returns title, description, Open Graph tags, favicon URL, and HTTP status. Faster than capture_screenshot when you only need metadata.
Viewport, format, and wait parameters accept free-form strings instead of enums. LLMs may hallucinate invalid values like 'ultrawide' or 'webp'.
Output schemas not formally documented. Tools return JSON strings, but LLMs cannot parse the structure without explicit schema declaration.
No error handling guidance. If a URL is unreachable or times out, tools return raw exceptions. LLMs have no recovery path.
Descriptions lack WHEN-to-use context. 'Capture a screenshot' is WHAT; missing is WHEN to call this vs extract_page_metadata or capture_comparison.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
Tool annotations missing. No readOnlyHint, idempotentHint, or destructiveHint declared. Agents cannot infer safety properties.