snaprender-mcp
The SnapRender MCP server provides three core capabilities:
Take Screenshots (
take_screenshot): Capture any website (http/https) as PNG, JPEG, WebP, or PDF with extensive options:Custom viewport dimensions (width: 320–3840px, height: 200–10000px)
Device emulation: iPhone 14, iPhone 15 Pro, Pixel 7, iPad Pro, MacBook Pro
Dark mode CSS emulation
Full-page (scrollable) capture
Ad/tracker blocking and cookie banner removal (both enabled by default)
Delay after page load (0–10000ms)
Hide or click specific elements via CSS selectors before capture
JPEG/WebP quality control (1–100)
Check Screenshot Cache (
check_screenshot_cache): Verify if a screenshot for a given URL and format is already cached — without consuming any quota.Get Usage Statistics (
get_usage): Retrieve your current (or specified) month's screenshot usage, including screenshots used, limit, and remaining quota.
SnapRender Integrations
Official integrations for SnapRender Screenshot API — capture screenshots of any website as PNG, JPEG, WebP, or PDF.
Remote MCP Server
SnapRender runs a hosted MCP server — connect from any MCP client with zero install:
https://app.snap-render.com/mcpTransport: Streamable HTTP (MCP spec 2025-03-26)
Auth:
X-API-Keyheader orAuthorization: BearerheaderTools:
take_screenshot,check_screenshot_cache,get_usagePrompts:
screenshot_website,compare_devices
Claude Desktop (remote — recommended)
{
"mcpServers": {
"snaprender": {
"type": "streamable-http",
"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 subsequent requests to reuse the session.
Smithery
Install via Smithery for automatic setup with any MCP client.
Related MCP server: Screenshot API
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 |
Use case | Any MCP client, Smithery, web apps | Claude Desktop, Claude Code |
MCP Tools
take_screenshot
Capture a screenshot of any website. Returns the image as PNG, JPEG, WebP, or PDF.
Parameter | Type | Required | Description |
| string | Yes | URL to capture (http:// or https://) |
| string | No |
|
| integer | No | Viewport width 320-3840 (default: 1280) |
| integer | No | Viewport height 200-10000 (default: 800) |
| boolean | No | Capture entire scrollable page |
| string | No |
|
| boolean | No | Enable dark mode |
| boolean | No | Block ads (default: true) |
| boolean | No | Remove cookie banners (default: true) |
| integer | No | JPEG/WebP quality 1-100 (default: 90) |
| integer | No | Wait ms after page load (default: 0) |
| string | No | Comma-separated CSS selectors to hide |
| string | No | CSS selector to click before capture |
check_screenshot_cache
Check if a screenshot is cached without capturing. Does not count against quota.
Parameter | Type | Required | Description |
| string | Yes | URL to check |
| string | No | Output format (default: |
get_usage
Get screenshot usage statistics.
Parameter | Type | Required | Description |
| string | No | Month in |
Agent Framework Integrations
Framework | Directory | Description |
|
| |
|
| |
|
| |
|
| |
Separate repo | Community node for n8n workflows (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.pngGet an API Key
Sign up free at snap-render.com — 200 screenshots/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)
License
MIT
Available Tools
3 toolscheck_screenshot_cacheA
Check if a screenshot is already cached without capturing a new one. Does not count against your quota.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to check | |
| format | No | Output format (default: png) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses a key behavioral trait: it does not count against quota. This is important for usage optimization. It does not mention return values or side effects, but the tool is simple and low-risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words. The description is front-loaded with the primary purpose and immediately adds a key differentiator (quota). Perfect conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple cache-check tool with no output schema and clear sibling context, the description is sufficient. It explains the core function and a critical behavioral note. Minor gap: does not describe the return format (e.g., boolean), but not essential for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage with basic descriptions for 'url' and 'format'. The description adds no additional insight beyond the schema, so it meets the baseline for schema-rich tools but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'check' and the resource 'screenshot cache'. It distinguishes from sibling 'take_screenshot' by noting it does not capture a new screenshot, and adds a unique benefit: not counting against quota. This is specific and helpful.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for verifying cache before capturing, but does not explicitly state when to use vs. 'take_screenshot' or 'get_usage'. However, the sibling context and the phrase 'without capturing a new one' provide clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageA
Get current month's screenshot usage statistics including screenshots used, limit, and remaining quota.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description indicates a read-only operation retrieving usage statistics. Discloses what data is returned but does not mention any side effects, authentication requirements, or rate limits. Adequate for a simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 13 words, directly communicates purpose and included fields. No wasted words; perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, description adequately lists the three pieces of information returned (screenshots used, limit, remaining quota). Could specify data types or format, but minimally complete for a simple statistics endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so schema_description_coverage is 100%. Baseline for zero-parameter tools is 4; description adds no parameter info as none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves current month's screenshot usage statistics with specific fields (screenshots used, limit, remaining quota). Differentiates from sibling tools (check_screenshot_cache, take_screenshot) which focus on capturing or caching screenshots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings. Usage is implied by the name and description, but lacks when-not-to-use or alternative recommendations. For a simple stats tool, this is minimally adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
take_screenshotA
Capture a screenshot of any website. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to capture (must start with http:// or https://) | |
| format | No | Output format (default: png) | |
| width | No | Viewport width in pixels (default: 1280) | |
| height | No | Viewport height in pixels (default: 800) | |
| full_page | No | Capture entire scrollable page (default: false) | |
| quality | No | Image quality for JPEG/WebP, 1-100 (default: 90) | |
| delay | No | Milliseconds to wait after page load (default: 0) | |
| dark_mode | No | Enable dark mode CSS emulation (default: false) | |
| block_ads | No | Block advertisements and trackers (default: true) | |
| block_cookie_banners | No | Remove cookie consent banners (default: true) | |
| device | No | Device preset for mobile/tablet emulation | |
| hide_selectors | No | Comma-separated CSS selectors to hide before capture | |
| click_selector | No | CSS selector to click before capture |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions output formats and features but lacks details on error behavior, rate limits, or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence covering core action and key features. No fluff, front-loaded with main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
13 parameters, no output schema, no annotations. Description lists formats but does not specify how the result is returned (e.g., binary, URL). Could be more complete on output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds overview of features but does not elaborate on parameter usage beyond what schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Capture a screenshot of any website' with specific verb and resource. It lists many features like format support, device emulation, dark mode, etc., clearly distinguishing it from sibling tools (check_screenshot_cache, get_usage).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this vs alternatives. The sibling tools are about cache checking and usage, so the context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.0- First observed
check_screenshot_cache - First observed
get_usage - First observed
take_screenshot
TDQS
Each tool has a distinct purpose: checking cache, retrieving usage stats, and capturing screenshots. There is no overlap in functionality.
All tools follow a consistent verb_noun pattern with snake_case, making the set predictable and easy to understand.
Three tools is an appropriate size for a focused screenshot service, covering essential operations without unnecessary complexity.
The tool set covers the core workflow of capturing screenshots, with supplementary tools for cache checking and usage tracking. A minor gap is the absence of cache management operations.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted browser for AI agents: screenshots, post-JS DOM, console, WCAG. No install, no API key.
61Screenshots, PDFs and Markdown from any URL or HTML for AI agents, via the SnapForge API
Read a URL as clean markdown, screenshot a website, url to PDF. Web access for agents, no signup.
Screenshot any URL/HTML as PNG/JPEG/WebP, or read it as clean Markdown/text for LLMs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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.15MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to capture any public URL as PNG, JPEG, or PDF via REST API or MCP tools, including screenshot capture, page description, and PDF rendering.17MIT
- AlicenseNot gradedqualityCmaintenanceHosted, SSRF-safe, cached screenshots and Open Graph images for AI agents - no headless Chrome to run.38MIT
- AlicenseAqualityAmaintenanceScreenshot, 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.3871MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/User0856/snaprender-integrations'
If you have feedback or need assistance with the MCP directory API, please join our Discord server