About screenshotrun-mcp
screenshotrun-mcp lets AI agents capture public webpages through ScreenshotRun and inspect the returned images. It supports page, device, and rendering options, plus API usage checks.
Key features
- 01PNG, JPEG, WebP, and PDF capture
- 02Desktop, mobile, and tablet emulation
- 03Full-page and dark-mode rendering
- 04Ad and cookie banner blocking
- 05CSS and JavaScript injection
- 06API quota checks
Use cases
- 01Review a webpage visually
- 02Compare mobile and desktop layouts
- 03Capture a full page in dark mode
- 04Check remaining screenshot quota
MCP support
The MCP server exposes screenshot capture and API usage tools to MCP clients. Captures are returned as base64-encoded images for an agent to analyze.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y screenshotrun-mcpSCREENSHOTRUN_API_KEYSecretYour ScreenshotRun API key. Get one free at screenshotrun.com (200 screenshots/month).Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
2Saved tool list · updated 5d ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| js | string | No | Custom JavaScript to execute before capture |
| css | string | No | Custom CSS to inject into the page |
| url | string | Yes | URL of the page to screenshot (must start with http:// or https://) |
| delay | integer | No | Delay in seconds after page load before capturing |
| width | integer | No | Viewport width in pixels |
| device | enum | No | Device preset (affects viewport and user agent)desktop | mobile | tablet |
| format | enum | No | Output image formatpng | jpeg | webp | pdf |
| height | integer | No | Viewport height in pixels |
| retina | boolean | No | Capture at 2x resolution (retina) |
| quality | integer | No | Image quality for JPEG/WebP (1-100) |
| selector | string | No | CSS selector to capture a specific element instead of the full viewport |
| block_ads | boolean | No | Block advertisements during capture |
| dark_mode | boolean | No | Enable dark mode (prefers-color-scheme: dark) |
| full_page | boolean | No | Capture the entire scrollable page |
| scroll_to | string | No | CSS selector of an element to scroll into view before capture |
| block_cookies | boolean | No | Block cookie consent dialogs |
| click_selector | string | No | CSS selector of an element to click before capture |
| hide_selectors | array | No | CSS selectors of elements to hide before capture |
Details
From the project READMEscreenshotrun-mcp
Give your AI agent the ability to see any webpage. MCP server for ScreenshotRun Screenshot API.
Features
- Capture screenshots of any public webpage as PNG, JPEG, WebP, or PDF
- Device emulation — desktop, mobile, and tablet viewports
- Dark mode rendering with
prefers-color-scheme: dark - Full-page capture with automatic scrolling
- Block ads and cookie consent banners
- Inject custom CSS/JavaScript before capture
- Target specific elements with CSS selectors
- Retina (2x) resolution support
- Monitor your API usage and remaining quota
Quick Start
1. Get your API key
Sign up for a free API key at screenshotrun.com.
2. Configure your AI client
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"screenshotrun": {
"command": "npx",
"args": ["-y", "screenshotrun-mcp"],
"env": {
"SCREENSHOTRUN_API_KEY": "sr_live_your_key_here"
}
}
}
}
Claude Code
claude mcp add screenshotrun \
npx -y screenshotrun-mcp \
-e SCREENSHOTRUN_API_KEY=sr_live_your_key_here
Cursor
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"screenshotrun": {
"command": "npx",
"args": ["-y", "screenshotrun-mcp"],
"env": {
"SCREENSHOTRUN_API_KEY": "sr_live_your_key_here"
}
}
}
}
Windsurf
Add to your Windsurf MCP configuration with the same npx -y screenshotrun-mcp command and set the SCREENSHOTRUN_API_KEY environment variable.
Available Tools
take_screenshot
Capture a screenshot of any webpage. Returns the image as base64-encoded data that AI agents can analyze and describe.
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | required | URL to screenshot (must include http:// or https://) |
format | png | jpeg | webp | pdf | png | Output image format |
width | number | 1280 | Viewport width in pixels (320–3840) |
height | number | 800 | Viewport height in pixels (200–2160) |
full_page | boolean | false | Capture the entire scrollable page |
quality | number | 80 | Image quality for JPEG/WebP (1–100) |
device | desktop | mobile | tablet | — | Device preset (overrides width/height with device defaults) |
dark_mode | boolean | false | Enable dark mode rendering |
block_ads | boolean | false | Block advertisements during capture |
block_cookies | boolean | true | Block cookie consent dialogs |
delay | number | 0 | Delay in seconds after page load before capturing (0–10) |
retina | boolean | false | Capture at 2x resolution |
css | string | — | Custom CSS to inject into the page (max 10KB) |
js | string | — | Custom JavaScript to execute before capture (max 10KB) |
selector | string | — | CSS selector to capture a specific element |
hide_selectors | string[] | — | CSS selectors of elements to hide before capture |
click_selector | string | — | CSS selector of element to click before capture |
scroll_to | string | — | CSS selector of element to scroll into view |
check_usage
Check your ScreenshotRun API usage for the current billing period. Returns screenshots used, remaining quota, usage percentage, and days remaining.
No parameters required.
Example Prompts
- "Take a screenshot of screenshotrun.com"
- "Screenshot snapshotarchive.com in dark mode on mobile"
- "Capture full-page screenshot of my website and describe what you see"
- "Take a retina screenshot of screenshotrun.com in JPEG format"
- "Screenshot snapshotarchive.com on tablet with ad blocking"
- "Take a screenshot of my site with the cookie banner hidden using hide_selectors"
- "Check my ScreenshotRun API usage"
How It Works
- Your AI agent receives a user request involving a webpage screenshot
- The agent calls the
take_screenshottool with the URL and options - The MCP server sends the request to the ScreenshotRun API
- The API renders the page in a real browser and returns the screenshot
- The image is returned to the AI agent as base64, which it can analyze and describe
Requirements
- Node.js 18+
- A ScreenshotRun API key (get one free)
Other Projects by ScreenshotRun
- SnapshotArchive — Automated website monitoring with visual diff detection
- WatchCron — Cron job & heartbeat monitoring for developers
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.