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
claude mcp add screenshotink -- npx -y @screenshotink/mcp --key sk_live_YOUR_KEY
Or remote, with nothing running locally:
claude mcp add --transport http screenshotink https://mcp.screenshotink.com/mcp \
--header "Authorization: Bearer sk_live_YOUR_KEY"
Claude Desktop
{
"mcpServers": {
"screenshotink": {
"command": "npx",
"args": ["-y", "@screenshotink/mcp"],
"env": { "SCREENSHOTINK_API_KEY": "sk_live_YOUR_KEY" }
}
}
}
Cursor / Windsurf
{
"mcpServers": {
"screenshotink": {
"command": "npx",
"args": ["-y", "@screenshotink/mcp", "--key", "sk_live_YOUR_KEY"]
}
}
}
Remote endpoint (cloud agents, hosted runtimes)
https://mcp.screenshotink.com/mcp
# auth header on every request:
Authorization: Bearer sk_live_YOUR_KEY
The five tools
| Tool | Arguments | Quota |
|---|---|---|
| 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.
{
"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.
{
"status": "done",
"sitemap": "https://example.com/sitemap.xml",
"count": 12,
"urls": ["https://example.com/", "https://example.com/pricing", "…"]
}
Quota, caching & limits
- ▸One key, one meter — MCP captures and REST captures draw from the same monthly quota and credits.
- ▸Identical captures within 24h hit the cache and are free.
compare_screenshotsbypasses the cache by default so comparisons reflect the live pages. - ▸Your plan's rate limit applies; the MCP server retries politely when multi-URL tools fan out faster than the plan allows.
- ▸Inline images are downscaled previews to keep agent context small — the
image_urlin the text part is always full resolution.