Snap Screenshots
Screenshot any public web page from an AI agent. Free without signup, or with an API key.
Should I use this
Quality & Safety
A
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
~626Tokens (tool definitions)
~3.0 KBTypical response size
Minimal attention impact (0.49% of 128k context)
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"snap": {
"url": "https://snap.i2dev.com/mcp"
}
}
}Remote endpoints
https://snap.i2dev.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (2)
🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢take_screenshot(url, format, width, height, fullPage, ...)
Render a public web page in Chromium and return a screenshot. Use fullPage for the whole scrollable page; very tall pages come back as a link instead of an inline image.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 1,
"description": "Public http(s) URL to capture."
},
"format": {
"default": "webp",
"description": "Image format. webp and jpeg are much smaller than png.",
"type": "string",
"enum": [
"png",
"jpeg",
"webp"
]
},
"width": {
"default": 1280,
"description": "Viewport width in CSS pixels.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1920
},
"height": {
"default": 720,
"description": "Viewport height in CSS pixels.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1080
},
"fullPage": {
"default": false,
"description": "Capture the full scrollable page.",
"type": "boolean"
},
"waitUntil": {
"default": "load",
"description": "Navigation event to wait for before capturing.",
"type": "string",
"enum": [
"load",
"domcontentloaded",
"networkidle"
]
},
"waitForSelector": {
"description": "CSS selector that must appear before capturing.",
"type": "string"
},
"timezoneId": {
"description": "IANA time zone, e.g. Europe/Berlin.",
"type": "string"
},
"locale": {
"description": "BCP 47 locale, e.g. de-DE.",
"type": "string"
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"imageUrl": {
"type": "string"
},
"contentType": {
"type": "string"
},
"bytes": {
"type": "number"
},
"width": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"inlined": {
"type": "boolean"
},
"cache": {
"type": "string",
"enum": [
"hit",
"rendered"
]
}
},
"required": [
"imageUrl",
"contentType",
"bytes",
"width",
"height",
"inlined",
"cache"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_quota
How many screenshots are left: the free daily allowance without a key, or the organisation's monthly allowance with one.
Input Schema
{
"type": "object",
"properties": {}
}Output Schema
{
"type": "object",
"properties": {
"tier": {
"type": "string",
"enum": [
"anonymous",
"api_key"
]
},
"period": {
"type": "string",
"enum": [
"day",
"month"
]
},
"limit": {
"type": "number"
},
"used": {
"type": "number"
},
"remaining": {
"type": "number"
},
"networkRemaining": {
"type": "number"
},
"resetsAt": {
"type": "string"
}
},
"required": [
"tier",
"period",
"limit",
"used",
"remaining",
"resetsAt"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence
Recent observations
verifiedversion not recorded2 tools