shotbot-mcp
LocalAbout shotbot-mcp
Screenshot API for AI agents: capture any public URL as JPEG, PNG, WebP, AVIF, or PDF.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y shotbot-mcpSHOTBOT_API_KEYSecretYour Shotbot API key (12 characters). Get a free one at https://www.shotbot.net/screenshot-api-key/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
4Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| cdn | boolean | No | When true, publish the result to the public CDN and return a permanent image URL. Default: captures are private (not uploaded to the CDN); retrieve them via the download URL from get_status, which stays fetchable until it auto-expires after a short retention window. |
| url | string | Yes | Public http/https URL to capture (required) |
| nojs | boolean | No | Disable JavaScript before loading the page. |
| wait | integer | No | Seconds to wait after page load before capture. Free: 0-5, Pro: 0-30. Default: 5. |
| frame | enum | No | Decorative frame composited around the rendered image (ignored for PDF). Variants: rounded (corner-clipped, no padding), shadow (drop shadow + rounded corners), browser_chrome / browser_chrome_dark (browser window with traffic-lights + URL bar, light/dark), mobile/mobile_light (smartphone mockup, dark/light bezel), tablet/tablet_light (tablet mockup, dark/light bezel), laptop (laptop mockup), polaroid (white border + soft shadow), gradient (rounded screenshot on a lime-accent gradient backdrop), shotbot_brand (lime corner brackets). Free accounts get a tiny shotbot.fr/.net mark bottom-right on any non-empty frame. Pro accounts get a clean frame on ALL variants. | rounded | shadow | browser_chrome | browser_chrome_dark | mobile | mobile_light | tablet | tablet_light | laptop | polaroid | gradient | shotbot_brand |
| hidpi | boolean | No | Render at 2× device pixel ratio (retina / HiDPI). Doubles the output resolution. |
| ratio | string | No | Crop ratio, e.g. "16:9" (default), "4:3", "1:1", "9:16". |
| format | enum | No | Output format. Default: jpg. png, webp, webp_lossless, avif, pdf require Pro (non-Pro accounts are limited to jpg).jpg | png | webp | webp_lossless | avif | pdf |
| preset | enum | No | Named output bundle | fills viewport_width / output_size / crop_height. og=1200×630 (social card), mobile=390×844 (iPhone), square=1080×1080, reel=1080×1920, pinterest=1000×1500, youtube_thumbnail=1280×720, tablet=768×1024. Pro presets: desktop=1440×900, desktop_hd=1920×1080, twitter_header=1500×500, linkedin_banner=1584×396, hero_banner=1920×600. | og | mobile | youtube_thumbnail | square | reel | pinterest | tablet | desktop | desktop_hd | twitter_header | linkedin_banner | hero_banner |
| cookies | array | No | Cookies injected before navigation (e.g. to capture pages behind a session). Max 50. Pro only. |
| fullpage | boolean | No | Capture the full page height (max 30000 px). Default: false. |
| selector | string | No | CSS selector: clips output to the matching element. Pro only, non-PDF. |
| block_ads | boolean | No | Block ads and trackers. Pro only. |
| http_auth | object | No | HTTP Basic Auth credentials for password-protected pages. Pro only. |
| http_auth.pass | string | No | |
| http_auth.user | string | Yes | |
| pdf_scale | number | No | PDF render scale, 0.10-2.00 (format=pdf only). Default 1.0. |
| scroll_to | string | No | CSS selector for an element to scroll into view (top of frame) before capturing. Typically an element id, e.g. "#pricing". Resolved via querySelector. Unlike selector, it does not clip output. Mutually exclusive with scroll_offset_px; missing element is a no-op. No-op for fullpage/PDF/selector. Pro only. |
| crop_height | integer | No | Custom output height in px, cropped from top. Max 30000. Pro only. |
| output_size | integer | No | Output image width in px. Defaults to viewport_width. |
| callback_url | string | No | HTTPS URL to POST the result to when done. Skips polling. |
| color_scheme | enum | No | Emulate prefers-color-scheme media query.dark | light |
| pdf_landscape | boolean | No | Render the PDF in landscape orientation (format=pdf only). |
| pdf_margin_mm | integer | No | PDF page margin in millimetres, 0-50 (format=pdf only). Default 10. |
| pdf_page_size | enum | No | PDF page size (format=pdf only). Default A4.A4 | A3 | A5 | Letter | Legal | Tabloid |
| render_region | enum | No | Geographic render location, using a real local IP. fr-paris is the default and free; ca-montreal, sg-singapore (beta), au-sydney (beta), vn-hanoi (beta) are Pro. | fr-paris | ca-montreal | sg-singapore | au-sydney | vn-hanoi |
| viewport_width | integer | No | Browser viewport width in px. Free: 390, 768, 1280. Shotbot Pro: any custom width 280-3840 (CSS / responsive testing). Default: 1280. |
| autoplay_videos | boolean | No | Launch Chromium with --autoplay-policy=no-user-gesture-required so unmuted <video autoplay> elements start playing without a user gesture. Useful for pages with hero videos. Pro only. |
| callback_secret | string | No | Shared secret echoed in callback payload for verification. |
| dismiss_cookies | enum | No | Handle cookie banners automatically. Pro only. | accept | reject |
| omit_background | boolean | No | Render with a transparent viewport backdrop (Chromium omitBackground). Visible on PNG/WebP/AVIF; JPG flattens to black. No effect on PDF. Pro only. |
| scroll_offset_px | integer | No | Scroll down this many px (0-30000) before capturing, so the frame starts lower. Mutually exclusive with scroll_to. No-op for fullpage/PDF/selector. Pro only. |
| emulate_print_media | boolean | No | Apply the page's print stylesheet (page.emulateMediaType("print")) before capture. Useful for capturing print layouts as an image. No additional effect on PDF (already in print mode). Pro only. |
| scroll_before_capture | boolean | No | Scroll through the full page before capturing so lazy-loaded content (images, infinite scroll, content below the fold) is rendered. Recommended with fullpage=true. Pro only. |
| prefers_reduced_motion | boolean | No | Emulate the prefers-reduced-motion: reduce CSS media feature. Well-built sites use it to skip or shorten animations (framer-motion, GSAP, AOS, IntersectionObserver reveals), so captures show the settled state instead of mid-animation frames. Free tier. |
Details
The maintainer has not added details yet. Check the README in the repository.
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.