MCP server for SnapAPI - give AI agents the ability to capture screenshots, extract metadata, generate PDFs, and pull text from URLs
Four tools with complete input schemas and basic descriptions, but significant gaps in parameter documentation and output schema specification. All tools are read-only web-scraping operations with no state-modifying risk. Naming is clear (screenshot, metadata, pdf, text) but descriptions lack depth on when to use each tool vs. alternatives. Parameter descriptions are minimal (e.g., 'URL to capture' for screenshot.url). No output schemas documented, LLMs cannot predict response structure. Error handling is generic (JSON error field). Missing guidance on pagination, rate limits, or result limits for text extraction.
Extract Open Graph tags, Twitter Cards, meta tags, and favicon from a URL
Generate a PDF from a webpage
Capture a screenshot of a webpage as PNG or JPEG
Extract readable text content from a webpage
No output schemas documented. LLMs cannot predict response structure (e.g., what fields does metadata return? Is text truncated?). Forces agents to guess and retry on unexpected formats.
Parameter descriptions are minimal (e.g., 'URL to capture', 'URL to extract text from'). Missing guidance on format constraints, expected URL schemes, or what happens with invalid URLs. Descriptions should be 50-200 chars and explain WHAT, WHEN, and HOW.
No error recovery guidance. When API returns error (e.g., 'URL unreachable', 'timeout'), response is generic JSON error. Should tell LLM: is this retryable? Should user provide a different URL? What are common failure modes?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No result limits or pagination documented. text tool could return unbounded content, exhausting context window. screenshot/pdf return binary data without size constraints. Should cap text at 10k chars and document limits in descriptions.
Tool descriptions lack differentiation. 'Extract readable text content from a webpage' (text) vs 'Extract Open Graph tags, Twitter Cards, meta tags, and favicon from a URL' (metadata) are clear, but screenshot and pdf lack context on when to use one vs the other (e.g., 'Use screenshot for visual inspection; use pdf for archival/sharing').