screenshotapi-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SCREENSHOTAPI_TOKEN | Yes | Your ScreenshotAPI API key. | |
| SCREENSHOTAPI_REQUEST_TIMEOUT_MS | No | Upstream request timeout in milliseconds. | 180000 |
| SCREENSHOTAPI_MAX_INLINE_IMAGE_BYTES | No | Largest screenshot returned inline to the model, in bytes. | 3500000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| take_screenshotA | Captures a screenshot of a web page (or of raw HTML) in a real browser and returns the hosted image URL. By default the image is also returned inline so you can see it — except for full_page captures, which are often too tall to view; set include_image=true to force it. Supports viewport or full-page capture, a single element via 'selector', a pixel region via 'clip', retina output, ad/cookie-banner blocking, CSS/JS injection, clicking elements first, dark mode, custom headers/cookies, proxies, geolocation, and timezone. Each call uses one screenshot credit unless a cached capture is served. |
| generate_pdfA | Renders a URL or raw HTML in a real browser and converts it to a PDF, returning the hosted PDF URL. Choose a paper size ('format') for paginated output; without format (and without width/height) the whole page becomes one long continuous PDF page. Supports landscape, page ranges, print backgrounds, print vs screen CSS, and all page preparation options (delay, lazy_load, ad/cookie-banner blocking, CSS/JS injection). Use save_path to save the PDF locally. |
| scrape_pageA | Loads a page in a real browser (JavaScript executed) and extracts its content: clean Markdown (best for reading and summarizing), plain text, the fully rendered HTML, and/or every image URL on the page. Extracted files are fetched and returned inline, truncated to max_content_chars. Works on JavaScript-heavy sites that plain HTTP fetches can't read. A screenshot is captured as part of the same request and counts as one credit. |
| record_scrolling_videoA | Records a video (mp4, webm, or gif) of the browser scrolling down a web page and returns the hosted video URL. Control scroll speed, duration, and scrolling back to the top. Set video=true to record the viewport without scrolling (for animations or live dashboards). Pass 'sizes' to record the same page at several viewport sizes in one request. Rendering takes noticeably longer than a screenshot. |
| bulk_screenshotsA | Submits up to 50 URLs as one bulk screenshot job (JSON bulk API). Each entry is a URL plus any take_screenshot option using the raw API parameter names (file_type, width, height, full_page, fresh, delay, css, block_ads, no_cookie_banners, ...). 'defaults' are applied to every entry unless the entry overrides them. Returns the API's job response; if it contains a uuid, track it with get_bulk_status and fetch results with download_bulk_results. Paid plans only. |
| bulk_screenshots_csvA | Uploads a CSV to start a bulk screenshot job. The CSV must have a 'url' column with full https:// URLs; any other column is treated as a render option for that row using the API parameter names (file_type, width, height, css, delay, headers, ...). Pass either a local csv_path or the CSV text in csv_content. Returns the job response including its uuid for get_bulk_status and download_bulk_results. ScreenshotAPI also emails a download link when the job finishes. Paid plans only. |
| get_bulk_statusA | Returns the progress of a bulk screenshot job by uuid: percent complete plus successful and failed URLs. Call download_bulk_results once it reaches 100%. |
| download_bulk_resultsA | Downloads the results of a finished bulk screenshot job by uuid: one row per URL with its status, the hosted screenshot URL, and any error message. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Tools map cleanly to distinct output types and stages: single screenshot, PDF, scrape, video, and bulk job submit/status/download. The only real overlap is bulk_screenshots vs bulk_screenshots_csv, which both start bulk jobs but differ by input format; descriptions clarify this.
Six of eight tools follow a clear verb_noun pattern (take_screenshot, generate_pdf, scrape_page, record_scrolling_video, download_bulk_results, get_bulk_status). The two bulk submission tools are noun phrases (bulk_screenshots, bulk_screenshots_csv), a minor deviation; all names use consistent snake_case.
Eight tools is well within the ideal 3-15 range for this server's purpose. Each tool covers a distinct capability—screenshot, PDF, scrape, video, bulk JSON/CSV submission, status polling, and result download—with no obvious padding.
The surface covers the core capture types plus a full bulk lifecycle: submit, poll status, and download results. Minor gaps remain—no cancel/delete bulk job, no account/credit check, and no job listing—but agents can work around these.