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
Description quality
100%
Schema completeness
65%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

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-http

What 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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools