snaprender-mcp
This server provides SnapRender tools for screenshot capture, content extraction, batch jobs, signed URLs, webhooks, and usage checks.
Capture screenshots from URLs, raw HTML, or Markdown as PNG, JPEG, WebP, or PDF with device emulation, custom viewports, full-page capture, dark mode, ad/cookie blocking, delays, custom user agents, and click/hide selectors.
Check whether a screenshot is already cached without consuming quota.
Generate signed screenshot URLs that work without an API key; rendering the URL consumes a capture.
Extract web content as markdown, text, HTML, article data, links, or metadata.
Create batch screenshot jobs for 1–50 URLs and poll their status for download links.
List, create, delete, and test webhook subscriptions for batch completion, quota warnings, quota exhaustion, scheduled captures, and change detection.
Check current monthly screenshot usage, limit, and remaining quota.
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
SnapRender Integrations
Official integrations for the SnapRender Screenshot API: give AI agents eyes. Capture any public web page as PNG, JPEG, WebP or PDF, or read it as clean markdown.
Remote MCP Server (recommended)
SnapRender runs a hosted MCP server. Connect from any MCP client with nothing to install:
https://app.snap-render.com/mcpTransport: Streamable HTTP
Sign in: OAuth 2.0 (the client opens a SnapRender sign-in window; Google, GitHub or email), or an API key in the
Authorization: BearerorX-API-KeyheaderTools (11): capture, cache check, usage, signed links, content extraction, batches and webhooks (full list below)
Prompts:
screenshot_website,compare_devicesFree plan: 200 screenshots a month, no credit card
Directory listing: SnapRender on Glama (health-checked, tool quality graded)
Claude (claude.ai and Claude Desktop)
Open Customize, then Connectors, click + Add, then Add custom connector, and paste https://app.snap-render.com/mcp. Claude opens a SnapRender sign-in window; approve it and the tools are ready. Step-by-step guide: snap-render.com/claude.
Cursor, VS Code, Windsurf and other clients
Setup pages for each client, with one-click install where the client supports it: snap-render.com/ai-connectors.
A client that takes headers instead of OAuth:
{
"mcpServers": {
"snaprender": {
"url": "https://app.snap-render.com/mcp",
"headers": {
"Authorization": "Bearer sk_live_your_key_here"
}
}
}
}Any MCP client (curl)
# Initialize a session
curl -X POST https://app.snap-render.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: sk_live_your_key_here" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'The server returns an Mcp-Session-Id header: include it in later requests to reuse the session.
Smithery
Install via Smithery for automatic setup with any MCP client.
Related MCP server: screenshots-snapshot-site
Local MCP Server (npm)
If you prefer running locally via stdio transport:
{
"mcpServers": {
"snaprender": {
"command": "npx",
"args": ["-y", "snaprender-mcp"],
"env": {
"SNAPRENDER_API_KEY": "sk_live_your_key_here"
}
}
}
}See mcp-server/ for full documentation.
Remote vs Local
Remote (hosted) | Local ( | |
Install | None, just an HTTPS URL | Requires Node.js + npx |
Transport | Streamable HTTP | stdio |
Sign in | OAuth or API key | API key ( |
Use case | Claude, ChatGPT, Cursor, any MCP client | Clients that only run local servers |
MCP Tools
The hosted server and the npm package expose the same 11 tools. Parameters are documented in each tool's schema and in the API docs.
Tool | What it does | Cost |
| Capture a URL as PNG, JPEG, WebP or PDF: device presets, full page, dark mode, ad and cookie banner removal, hide or click selectors | 1 capture (cached copies free) |
| Check whether a capture with these options is already cached | Free |
| Captures used and left this month, the limit and the reset date | Free |
| Create a signed link that renders a screenshot when opened, no API key needed | 1 capture when opened |
| Read a page as markdown, text, HTML, article, links or metadata | 1 capture (failures free) |
| Capture up to 50 URLs in one background job | 1 capture per URL (failures refunded) |
| Poll a batch job and get its download links | Free |
| List webhook subscriptions | Free |
| Get notified when a batch finishes, the quota runs low, or a scheduled capture changes | Free |
| Delete a webhook subscription | Free |
| Send a test payload to a webhook | Free |
Agent Framework Integrations
Framework | Directory | Description |
|
| |
|
| |
|
| |
|
| |
Separate repo | Community node for n8n workflows (npm) | |
| Piece for self-hosted Activepieces, installed from Platform Admin > Pieces (npm) |
Other Integrations
Integration | Description | Setup Time |
Skill file for OpenClaw AI agent | 5 min | |
OpenAPI spec for Custom GPTs and OpenAI function calling | 5 min | |
Pre-built API requests for Postman | 1 min |
SDKs
# Node.js
npm install snaprender
# Python
pip install snaprenderDirect API
curl "https://app.snap-render.com/v1/screenshot?url=https://example.com" \
-H "X-API-Key: sk_live_your_key_here" \
-o screenshot.pngNo account yet? (AI agents)
An agent with no key can start in one call. POST https://app.snap-render.com/v1/agent-trial returns an sk_trial_ key at once, with no signup:
curl -X POST https://app.snap-render.com/v1/agent-trial \
-H "Content-Type: application/json" -d '{"agent": "my-agent"}'Send the key to the hosted MCP server as Authorization: Bearer sk_trial_..., or as X-API-Key on REST calls. A trial key gets 100 captures over 7 days (30 a day), a small corner watermark and a slower lane. The developer claims it with a free account through the claim_url in the response (200 captures a month, no watermark), and the agent's key keeps working. Details: https://snap-render.com/docs/agent-trial
Get an API Key
Sign up free at snap-render.com: 200 screenshots a month, no credit card required.
Links
Remote MCP Server: Streamable HTTP endpoint
MCP Server on npm (
npx snaprender-mcp)Node.js SDK (
npm install snaprender)Python SDK (
pip install snaprender)LangChain Python Tool (
pip install langchain-snaprender)LangChain.js Tool (
npm install langchain-snaprender)CrewAI Tool (
pip install crewai-snaprender)AutoGen Tool (
pip install autogen-ext-snaprender)n8n Community Node (
npm install n8n-nodes-snaprender)Activepieces Piece (
activepieces-piece-snaprender)
License
MIT
Available Tools
11 toolsbatch_screenshotsAInspect
Create a batch screenshot job for multiple URLs (1-50). Returns immediately with a job ID. Use get_batch_status to poll for results (wait 2-5 seconds between polls). All URLs share the same screenshot options. Each URL consumes one credit; failed URLs get credits rolled back.
Inputs: urls (required), delay, width, device, +10 more.
check_screenshot_cacheARead-onlyInspect
Check if a screenshot is already cached without capturing a new one. Does not count against your quota. Pass the same parameters you would use for take_screenshot so the cache key matches correctly.
Inputs: url (required), width, device, format, +7 more.
create_webhookAInspect
Create a webhook subscription for event notifications. Events: screenshot.completed (batch job done), quota.warning (80% used), quota.exceeded (100% used), capture.completed and change.detected (scheduled captures). Max 5 webhooks per account. Payloads are signed with HMAC-SHA256. Save the returned secret to verify signatures.
Inputs: url (required), events (required).
delete_webhookADestructiveInspect
Delete a webhook subscription by ID. This cannot be undone.
Inputs: webhook_id (required).
extract_contentARead-onlyInspect
Extract content from a web page. Returns structured data based on the extraction type. Supports: markdown (readable content), text (plain text), html (raw HTML), article (structured with title/author/excerpt), links (all page links), metadata (OG tags, title, description).
Inputs: url (required), type, cache, delay, +5 more.
get_batch_statusARead-onlyInspect
Get the status of a batch screenshot job. Poll this until status is 'completed' or 'failed' (wait 2-5 seconds between polls). Completed items include presigned download URLs valid for 24 hours.
Inputs: job_id (required).
get_usageARead-onlyInspect
Get current month's screenshot usage statistics including screenshots used, limit, and remaining quota.
Inputs: no named parameters.
list_webhooksARead-onlyInspect
List all webhook subscriptions on your account. Returns webhook IDs, URLs, subscribed events, and creation dates.
Inputs: no named parameters.
sign_screenshot_urlARead-onlyInspect
Generate a signed URL for a screenshot that can be used without an API key. Useful for embedding screenshots in emails, documents, or sharing with third parties. Signing is free, rendering the URL consumes one credit. URLs expire after the specified duration.
Inputs: url (required), delay, width, device, +11 more.
take_screenshotARead-onlyInspect
Capture a screenshot of a website URL, raw HTML, or Markdown content. Provide exactly one of: url, html, or markdown. Returns the image as a PNG, JPEG, WebP, or PDF. Supports device emulation (iPhone, Pixel, iPad), dark mode, ad blocking, cookie banner removal, full-page capture, and custom viewports.
Inputs: url, html, cache, delay, +14 more.
test_webhookAInspect
Send a test payload to a webhook endpoint to verify it receives events correctly. Returns the delivery status and HTTP response code.
Inputs: webhook_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Each tool targets a distinct action+resource: single capture, batch capture, cache check, URL signing, batch polling, content extraction, webhook CRUD/test, and usage. The capture-family tools (take_screenshot, batch_screenshots, extract_content) are clearly differentiated by descriptions covering single vs. bulk vs. structured extraction.
Mostly a consistent verb_noun pattern (take_screenshot, check_screenshot_cache, get_batch_status, extract_content, list_webhooks, create_webhook, delete_webhook, test_webhook, get_usage). The lone deviation is batch_screenshots, which is noun-first but still readable and unambiguous.
11 tools is well within the sweet spot for a screenshot/rendering service, with each tool covering a distinct capability (capture, batch, cache, signing, extraction, webhooks, usage). No tool feels redundant or padded.
Covers the core lifecycle: single/batch capture, cache check, signed sharing, content extraction, webhook management, and usage reporting. Minor gaps exist such as no batch cancel/list or update_webhook (delete-and-recreate is the workaround), but no workflow dead-ends.
Maintenance
Related MCP Connectors
Screenshot, PDF and Open Graph image API for AI agents: capture pages, render PDFs, make OG images.
Hosted browser for AI agents: screenshots, post-JS DOM, console, WCAG. No install, no API key.
Capture websites as PNG, JPEG, WebP or PDF, extract their content, or analyse them with AI.
Screenshot, PDF and HTML-to-image rendering API so Claude and Cursor can see any web page.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to capture website screenshots, automate browser interactions, and manage recurring screenshot configurations across 150+ global locations. It also supports AI-powered domain research and visual change monitoring for any web page.15 npmMIT
- AlicenseAqualityCmaintenanceScreenshot, visual-diff, and AI page-analysis API for AI agents. Capture any URL as PNG, JPEG, WebP, PDF, or HTML, diff two versions of a page to catch visual regressions, and get an AI summary of what a page contains.362 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to render website screenshots and PDFs, check page changes, and retrieve usage stats via REST calls.-

Grabbitofficial
AlicenseNot gradedqualityCmaintenanceScreenshot MCP for agents. Send a public URL, get a pixel-perfect CDN image. Full page, header, mobile, or custom. Cookie banner suppression. Handles sites that block headless browsers. Works with Claude, Cursor, Codex. $0.002/grab.MIT