Docs / Platform

MCP Server

Five tools your AI agent can call to capture, batch, compare and audit any page — and see the result in the same turn. Works in Claude Desktop, Claude Code, Cursor, Windsurf and any MCP-capable runtime. Your normal API key is the only credential; captures over MCP count against the same quota as the REST API.

Connecting

Two ways in — a local npx package (stdio) or the hosted remote endpoint (Streamable HTTP, nothing to run — ideal for cloud agents and CI). Both expose identical tools.

Sign in with OAuth — no key pasting

The remote endpoint supports OAuth 2.1. In a client that handles OAuth (e.g. Claude), add https://mcp.screenshotink.com/mcp with no key — you'll be sent to ScreenshotInk to log in and approve, and the connection appears under Connected apps (revoke anytime). Raw sk_live_ keys keep working too.

Claude Code

terminal
claude mcp add screenshotink -- npx -y @screenshotink/mcp --key sk_live_YOUR_KEY

Or remote, with nothing running locally:

terminal
claude mcp add --transport http screenshotink https://mcp.screenshotink.com/mcp \
  --header "Authorization: Bearer sk_live_YOUR_KEY"

Claude Desktop

claude_desktop_config.json
{
  "mcpServers": {
    "screenshotink": {
      "command": "npx",
      "args": ["-y", "@screenshotink/mcp"],
      "env": { "SCREENSHOTINK_API_KEY": "sk_live_YOUR_KEY" }
    }
  }
}

Cursor / Windsurf

mcp.json
{
  "mcpServers": {
    "screenshotink": {
      "command": "npx",
      "args": ["-y", "@screenshotink/mcp", "--key", "sk_live_YOUR_KEY"]
    }
  }
}

Remote endpoint (cloud agents, hosted runtimes)

streamable HTTP
https://mcp.screenshotink.com/mcp

# auth header on every request:
Authorization: Bearer sk_live_YOUR_KEY

The five tools

ToolArgumentsQuota
take_screenshot url, width?, full_size?, format?, no_ads?, no_cookie_banners?, lazy_load?, dark_mode?, delay_ms?, fresh? 1
bulk_screenshots urls[≤20], width?, full_size?, format? 1 / URL
compare_screenshots url_a, url_b, threshold?, width?, full_size?, fresh? 2
run_lighthouse url, strategy? (desktop|mobile) 1
capture_sitemap sitemap_url, limit?≤50, width?, format? 1 / page

Parameters mirror the REST API (delay_ms maps to sleep_time, fresh to nocache). Every screenshot tool returns the image inline plus the hosted full-resolution URL; identical requests within 24h are served from cache and are free.

REST endpoints behind the agent tools

Two endpoints added for MCP are part of the public API — use them directly if you want Lighthouse scores or sitemap URL lists without an agent.

GET /v1/lighthouse

Parameters: url (required), strategy = desktop | mobile. Costs 1 quota unit, refunded if the audit fails.

response
{
  "status": "done",
  "url": "https://example.com",
  "strategy": "desktop",
  "scores": { "performance": 100, "accessibility": 96, "best_practices": 96, "seo": 80 },
  "metrics": { "fcp": "0.3 s", "lcp": "0.3 s", "tbt": "0 ms" }
}

GET /v1/sitemap

Parameters: url (the sitemap.xml; indexes are followed one level), limit 1–50. Parse-only — costs nothing.

response
{
  "status": "done",
  "sitemap": "https://example.com/sitemap.xml",
  "count": 12,
  "urls": ["https://example.com/", "https://example.com/pricing", "…"]
}

Quota, caching & limits