https://github.com/bikker/screenshotink-mcp
Screenshot MCP server for Claude, Cursor & AI agents — capture, batch, compare and audit any web page. Hosted Chromium, no local browser.
https://github.com/bikker/screenshotink-mcp
ai-agents claude cursor lighthouse mcp mcp-server model-context-protocol screenshot screenshot-api visual-regression
Last synced: 6 days ago
JSON representation
Screenshot MCP server for Claude, Cursor & AI agents — capture, batch, compare and audit any web page. Hosted Chromium, no local browser.
- Host: GitHub
- URL: https://github.com/bikker/screenshotink-mcp
- Owner: bikker
- License: mit
- Created: 2026-06-13T00:43:01.000Z (6 days ago)
- Default Branch: main
- Last Pushed: 2026-06-13T03:02:56.000Z (6 days ago)
- Last Synced: 2026-06-13T04:24:50.953Z (6 days ago)
- Topics: ai-agents, claude, cursor, lighthouse, mcp, mcp-server, model-context-protocol, screenshot, screenshot-api, visual-regression
- Language: JavaScript
- Homepage: https://screenshotink.com/mcp
- Size: 21.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# ScreenshotInk MCP Server
[](https://www.npmjs.com/package/@screenshotink/mcp)
[](https://modelcontextprotocol.io)
[](LICENSE)
Give your AI agent eyes. **Five tools to capture, batch, compare and audit any web page** — through [ScreenshotInk](https://screenshotink.com)'s hosted Chromium fleet. No local browser, no Puppeteer maintenance; works in Claude Desktop, Claude Code, Cursor, Windsurf, CI runners and cloud sandboxes.
Every result returns the screenshot **inline in the same turn**, so the agent can reason about pixels immediately.
```
You: Compare our pricing page on staging vs production — did the new cards ship?
Agent: ▸ compare_screenshots { url_a: "https://acme.com/pricing", url_b: "https://staging.acme.dev/pricing" }
4.7% of pixels differ, all inside the plan grid — the new Scale card is present. Deploy looks correct. ✓
```
## Quick start
You need a ScreenshotInk API key — **free, 100 captures/month, no card**: [screenshotink.com/signup](https://screenshotink.com/signup)
### Claude Code
```bash
claude mcp add screenshotink -- npx -y @screenshotink/mcp --key sk_live_YOUR_KEY
```
or connect to the hosted remote server (nothing runs locally):
```bash
claude mcp add --transport http screenshotink https://mcp.screenshotink.com/mcp \
--header "Authorization: Bearer sk_live_YOUR_KEY"
```
### Claude Desktop
`claude_desktop_config.json`:
```json
{
"mcpServers": {
"screenshotink": {
"command": "npx",
"args": ["-y", "@screenshotink/mcp"],
"env": { "SCREENSHOTINK_API_KEY": "sk_live_YOUR_KEY" }
}
}
}
```
### Cursor / Windsurf
```json
{
"mcpServers": {
"screenshotink": {
"command": "npx",
"args": ["-y", "@screenshotink/mcp", "--key", "sk_live_YOUR_KEY"]
}
}
}
```
### Remote server (cloud agents, hosted runtimes)
Anything that speaks Streamable HTTP can connect directly — nothing to install:
```
URL: https://mcp.screenshotink.com/mcp
Auth: Authorization: Bearer sk_live_YOUR_KEY
```
## Tools
| Tool | What it does |
|---|---|
| `take_screenshot` | Capture any URL — viewport or full page, png/jpeg/pdf, dark mode, ad & cookie-banner blocking, lazy-load handling |
| `bulk_screenshots` | Up to 20 URLs in one call — audit a funnel or a competitor set at once |
| `compare_screenshots` | Pixel-diff two URLs (staging vs production, before vs after) — returns changed-% and a highlighted diff image |
| `run_lighthouse` | Google Lighthouse scores (performance, accessibility, best practices, SEO) + core web vitals |
| `capture_sitemap` | Fetch a sitemap.xml and screenshot every page it lists |
Same parameters and defaults as the [REST API](https://screenshotink.com/docs/request-parameters). Captures over MCP count against the same quota as the REST API — one key, one meter. Identical requests within 24h are served from cache for free.
## Why hosted?
- **CI pipelines** — no headless Chrome install, no flaky browser binaries in runners.
- **Cloud agents** — hosted runtimes can't launch browsers; the remote endpoint gives them eyes with zero dependencies.
- **Zero maintenance** — we patch Chromium, handle lazy-load, ads and cookie walls. Your agent just asks for pixels.
## Links
- Product & docs: [screenshotink.com](https://screenshotink.com) · [MCP docs](https://screenshotink.com/docs/mcp)
- REST API reference: [screenshotink.com/docs](https://screenshotink.com/docs)
- Issues: [GitHub issues](https://github.com/bikker/screenshotink-mcp/issues)
---
MIT © [ScreenshotInk](https://screenshotink.com) — a [ScalingWeb](https://scalingweb.com) product