Screenshot MCP Server

Give your AI agent a screenshot tool. aiSnapApi exposes capture_webpage over the Model Context Protocol — works in Claude, Cursor, Windsurf, Claude Code, and any MCP-compatible client. One stateless HTTPS endpoint, no install.

100 free screenshots/month · No credit card · PNG, JPEG, WebP, PDF

Install in 30 seconds

No npm package, no Docker, no stdio bridge. Add aiSnapApi to your client's MCP config:

# Cursor / Windsurf / generic MCP clients (~/.cursor/mcp.json or equivalent):
{
  "mcpServers": {
    "aiSnapApi": {
      "url": "https://api.aisnapapi.com/v1/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

# Claude Code one-liner:
claude mcp add --transport http aiSnapApi https://api.aisnapapi.com/v1/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

# Claude.ai / ChatGPT — easiest: paste this as the custom connector URL
# (use this if the connector UI doesn't expose a headers field):
https://api.aisnapapi.com/v1/mcp?api_key=YOUR_API_KEY

# Or, if the UI accepts custom headers:
#   URL:  https://api.aisnapapi.com/v1/mcp
#   Auth: Bearer YOUR_API_KEY

Replace YOUR_API_KEY with the key you got from the customer portal (free tier needs no card).

What the agent can do

One tool, capture_webpage, mirrors every parameter of the REST endpoint:

ParameterTypeDefaultDescription
urlstringRequired. http or https.
formatenumpngpng, jpeg, webp, pdf
widthinteger12801–3840
heightinteger7201–2160 (ignored when full_page=true)
full_pagebooleanfalseCapture the entire scrollable page
delayinteger0Milliseconds to wait after load (0–10000)
dark_modebooleanfalseEmulate prefers-color-scheme: dark
cssstringCustom CSS to inject before capture
qualityinteger80JPEG / WebP quality 1–100 (ignored for PNG)

The tool returns an inline image content block (PNG / JPEG / WebP) or a resource block (PDF), plus a text block with the current month's usage so the agent can self-throttle.

Example agent prompts

"Summarise the top story on HN"

Agent calls: capture_webpage(url="https://news.ycombinator.com", full_page=true)

Returns: a PNG of the page plus a usage summary ("47/1000 this month, 953 remaining"). The agent reads the image, identifies the top story, and answers.

"Save aisnapapi.com pricing as a PDF"

Agent calls: capture_webpage(url="https://aisnapapi.com/#pricing", format="pdf")

Returns: a PDF resource block the agent can save to disk or attach to a message.

Why HTTP MCP (not stdio)?

Most MCP screenshot servers ship as npm packages your client launches as a subprocess. That works, but it means every developer has to install Node, install the package, and keep it updated. The HTTP transport skips all of that — your agent just opens a connection to a URL, sends JSON-RPC, and gets results.

The endpoint is stateless: each tool call is a self-contained POST, no SSE streaming, no session tokens. It rides the same load-balanced infrastructure as the REST API, so you get the same latency and the same uptime.

Free tier — no credit card

Start with 100 captures per month, no card required. Upgrade from the portal when you need more — change or cancel anytime.

Get your API key