MCP server that gives agents eyes on a web page — full-page or per-element screenshots via an already-running Chrome (CDP), with an SSRF-aware URL policy
Two well-defined read-only tools with clear, descriptive names and comprehensive input schemas. Both tools have detailed descriptions (150+ chars) explaining purpose, behavior, and security model (SSRF-aware URL policy). Input parameters are typed with constraints (min/max for dimensions, enums implicit via description). Output schemas are documented in descriptions. Main gaps: no tool annotations (readOnlyHint), no error recovery guidance in descriptions, and page_text lacks parameter descriptions for its single 'url' param.
Visible text content of a page (body innerText) — the cheap check when you need to read, not see. Same URL policy as screenshot.
Screenshot a web page (full-page by default) or a single element (pass a CSS selector to crop). Connects to the existing Chrome over CDP — no browser is launched. Private/loopback targets are blocked unless the hostname is in WEBSHOT_ALLOW_HOSTS. Returns the PNG plus final URL, title, and HTTP status.
page_text tool lacks parameter description for 'url' input. The rubric requires every parameter to have a non-empty description explaining what it controls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. Both tools are read-only and idempotent, these should be declared via tool annotations for client optimization.
Error handling returns generic error text without recovery guidance. When URL is blocked or screenshot fails, descriptions should hint at next steps (e.g., 'Check WEBSHOT_ALLOW_HOSTS configuration').
screenshot description mentions 'Returns the PNG plus final URL, title, and HTTP status' but does not document the exact output schema structure (image + JSON text fields).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |