High-quality screenshot capture optimized for Claude Vision API. Automatically tiles full pages into 1072x1072 chunks (1.15 megapixels) with configurable viewports and wait strategies for dynamic content.
Fast, efficient screenshot capture of web pages - optimized for CLI coding tools. Automatically tiles full pages into 1072x1072 chunks for optimal processing.
Built specifically for AI vision workflows, this tool captures high-quality screenshots with automatic resolution limiting and tiling for optimal processing by Claude Vision API and other AI models. It ensures screenshots are perfectly sized at 1072x1072 pixels (1.15 megapixels) for maximum compatibility.
claude mcp add screenshot-website-fast -s user -- npx -y @just-every/mcp-screenshot-website-fast
code --add-mcp '{"name":"screenshot-website-fast","command":"npx","args":["-y","@just-every/mcp-screenshot-website-fast"]}'
cursor://anysphere.cursor-deeplink/mcp/install?name=screenshot-website-fast&config=eyJzY3JlZW5zaG90LXdlYnNpdGUtZmFzdCI6eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBqdXN0LWV2ZXJ5L21jcC1zY3JlZW5zaG90LXdlYnNpdGUtZmFzdCJdfX0=
Settings โ Tools โ AI Assistant โ Model Context Protocol (MCP) โ Add
Choose "As JSON" and paste:
{"command":"npx","args":["-y","@just-every/mcp-screenshot-website-fast"]}
{
"mcpServers": {
"screenshot-website-fast": {
"command": "npx",
"args": ["-y", "@just-every/mcp-screenshot-website-fast"]
}
}
}
Drop this into your client's mcp.json (e.g. .vscode/mcp.json, ~/.cursor/mcp.json, or .mcp.json for Claude).
Once installed in your IDE, the following tools are available:
take_screenshot
- Captures a high-quality screenshot of a webpage
url
(required): The HTTP/HTTPS URL to capturewidth
(optional): Viewport width in pixels (max 1072, default: 1072)height
(optional): Viewport height in pixels (max 1072, default: 1072)fullPage
(optional): Capture full page screenshot with tiling (default: true)waitUntil
(optional): Wait until event: load, domcontentloaded, networkidle0, networkidle2 (default: domcontentloaded)waitFor
(optional): Additional wait time in millisecondsdirectory
(optional): Directory to save screenshots - returns file paths instead of base64 imagesDefault usage (returns base64 images):
take_screenshot(url="https://example.com")
Save to directory (returns file paths):
take_screenshot(url="https://example.com", directory="/path/to/screenshots")
When using the directory
parameter:
Captures a series of screenshots over time to create a screencast. Only captures the top tile (1072x1072) of the viewport.
url
(required): The URL to captureduration
(optional): Total duration in seconds (default: 10)interval
(optional): Interval between screenshots in seconds (default: 2)jsEvaluate
(optional): JavaScript code to execute at the startwaitUntil
(optional): Wait strategy: 'load', 'domcontentloaded', 'networkidle0', 'networkidle2'waitForMS
(optional): Additional wait time before startingdirectory
(optional): Save as animated WebP to directory (captures every 1 second)Basic screencast (5 frames over 10 seconds):
take_screencast(url="https://example.com")
Custom timing:
take_screencast(url="https://example.com", duration=15, interval=3)
With JavaScript execution:
take_screencast(
url="https://example.com",
jsEvaluate="document.body.style.backgroundColor = 'red';"
)
Save as animated WebP:
take_screencast(url="https://example.com", directory="/path/to/output")
When using the directory
parameter:
npm install
npm run build
# Full page with automatic tiling (default)
npm run dev capture https://example.com -o screenshot.png
# Viewport-only screenshot
npm run dev capture https://example.com --no-full-page -o screenshot.png
# Wait for specific conditions
npm run dev capture https://example.com --wait-until networkidle0 --wait-for 2000 -o screenshot.png
-w, --width <pixels>
- Viewport width (max 1072, default: 1072)-h, --height <pixels>
- Viewport height (max 1072, default: 1072)--no-full-page
- Disable full page capture and tiling--wait-until <event>
- Wait until event: load, domcontentloaded, networkidle0, networkidle2--wait-for <ms>
- Additional wait time in milliseconds-o, --output <path>
- Output file path (required for tiled output)The MCP server includes automatic restart capability by default for improved reliability:
For development/debugging without auto-restart:
# Run directly without restart wrapper
npm run serve:dev
mcp-screenshot-website-fast/
โโโ src/
โ โโโ internal/ # Core screenshot capture logic
โ โโโ utils/ # Logger and utilities
โ โโโ index.ts # CLI entry point
โ โโโ serve.ts # MCP server entry point
โ โโโ serve-restart.ts # Auto-restart wrapper
# Run in development mode
npm run dev capture https://example.com -o screenshot.png
# Build for production
npm run build
# Run tests
npm test
# Type checking
npm run typecheck
# Linting
npm run lint
Built specifically for AI vision workflows:
Contributions are welcome! Please:
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
and provide custom executable--wait-for
flag--wait-until
strategiesMIT
Playwright MCP server
Dynamically scan and analyze potentially malicious URLs using the urlDNA.io
Render website screenshots with ScreenshotOne
Fetch the content of a remote URL as Markdown with Jina Reader.
Extract web data with Firecrawl
Fetch YouTube subtitles
Hyperbrowser is the next-generation platform empowering AI agents and enabling effortless, scalable browser automation.
Leverage Notte Web AI agents & cloud browser sessions for scalable browser automation & scraping workflows
A MCP server that provides comprehensive website snapshot capabilities using Playwright. This server enables LLMs to capture and analyze web pages through structured accessibility snapshots, network monitoring, and console message collection.
Scrape websites with Oxylabs Web API, supporting dynamic rendering and parsing for structured data extraction.