Labsco
MCP SERVER

SnapSender

by User0856

Capture a URL, raw HTML or Markdown as PNG, JPEG, WebP or PDF with device emulation and cookie-banner removal — then batch it, probe the cache before spending a credit, or hand out a signed URL that needs no key.

Browser Automation, Control & ScreenshotsVerified
Summary
The credit model is written into the tool list, which is unusual and genuinely useful.

check_screenshot_cache is documented as free, sign_screenshot_url charges on render rather than on signing, and batch_screenshots rolls credits back for URLs that fail — so the cost of a workflow can be reasoned about before it runs, with get_usage and the quota.warning and quota.exceeded webhook events closing the loop. The trap is the cache probe itself: it tells the truth only when passed the identical parameter set take_screenshot would use, so a probe missing one option reports a miss on a capture that already exists.

What it is

A client for the SnapRender screenshot API with 11 tools: single and batch capture, a free cache probe, signed URLs, page-content extraction, webhook management and usage reporting.

What you get
  • A capture tool that takes three kinds of input: take_screenshot accepts exactly one of url, html or markdown and returns PNG, JPEG, WebP or PDF, with device emulation for iPhone, Pixel and iPad, plus dark_mode, full_page, custom width and height, block_ads, block_cookie_banners, hide_selectors and click_selector.
  • A cache probe that costs nothing: check_screenshot_cache reports whether a capture already exists and is documented as not counting against your quota, provided you pass the same parameters take_screenshot would use so the cache key matches.
  • Screenshots you can hand out without the key: sign_screenshot_url returns a signed URL that expires after expires_in, free to generate, with one credit charged when the URL is rendered.
  • Page content without the picture: extract_content returns markdown, plain text, raw html, an article with title, author and excerpt, all links, or metadata from OG tags — narrowed by selector and capped by max_length.
  • Batching as a job rather than a loop: batch_screenshots takes 1-50 urls sharing one option set and returns a job ID, get_batch_status polls it and hands back presigned download URLs valid for 24 hours, and credits for failed URLs are rolled back.
  • Notification instead of polling: create_webhook subscribes to screenshot.completed, quota.warning at 80% used and quota.exceeded at 100% used, with payloads signed HMAC-SHA256 and a returned secret to verify them; list_webhooks, test_webhook and delete_webhook manage the set, capped at 5 per account.
  • Quota visible before you hit it: get_usage returns this month's screenshots used and the account limit.
Requirements

SNAPRENDER_API_KEY. Everything else is decided per call: take_screenshot needs exactly one of url, html or markdown, and check_screenshot_cache needs the identical parameter set as the capture it is asking about or the cache key will not line up. sign_screenshot_url is the exception in the other direction — the URL it returns is usable without the key until expires_in runs out.

Setup effort

One command plus a key — npx snaprender-mcp, then supply credentials