Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog
Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

AllMCPs on GitHub (opens in a new tab)
Launched onTiny Startupstinystartups.com
Explore
  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Random discovery New
  • Submit a server
  • Pricing & Boost Boost
Learn
  • Guides hub
  • What is MCP?
  • Install guide
  • Build an MCP server
  • Deploy an MCP server
  • Security guide
  • Troubleshooting
  • MCP for SEO & AEO
  • Protocol versioning
  • Transports: stdio vs HTTP
  • State of MCP (stats)
  • Blog & updates
Tools
  • All developer tools
  • Config generator
  • Config validator
  • Config auditor
  • MCP playground
  • Token calculator
  • OpenAPI β†’ MCP
  • Badge generator
For agents
  • REST API docs
  • Trust & traffic Live
  • Remote MCP server SSE β†— (opens in a new tab)
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
Company
  • About
  • Advertise Sponsor
  • Contact
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZoneAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZone
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. πŸ’» Developer Tools
  3. Screenshotline
S
Health: Not checked yetWe have not completed a health check for this listing yet.No health check has run yet.

Screenshotline

User RatingsBe the first to rate and review this MCP server! Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View RepositoryVisit Website

Screenshot any web page, or read it as clean Markdown, with consent banners, ads and popups removed.

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

One-click editor setup isn’t available for this listing yet β€” we don’t have a confirmed install command, and we’d rather show nothing than point your editor at the wrong package or host. Follow the project’s own setup instructions, linked above.

Manual Client & Custom JSON ConfigExpand JSON β–Ύ
No confirmed setup config for this listing yet. We only publish a config block when the install details come from the project itself β€” its README, its docs, or a verified owner. We haven’t found those for Screenshotline, and we’d rather show nothing than a guess you’d paste into your client. Follow the project’s own setup instructions for the current steps.
Install Directory Badge Claim listing AlternativesπŸ’» More in Developer Tools

Documentation Overview

Screenshotline

A screenshot API that survives production. URL in, image out.

smoke licence: AGPL-3.0 hosted

Terminal
curl "https://api.screenshotline.com/take?url=https://example.com&block_cookie_banners=true" -o shot.png

A capture of france24.com: consent banner removed, ad slot collapsed, lazy images loaded

Above: france24.com, captured by this API. The consent wall is gone, the empty ad slot has been collapsed rather than left as a grey hole pushing content below the fold, and the lazy-loaded hero image has actually loaded. Most screenshot failures are not crashes β€” they are a 200 with the wrong picture.


Two ways to use it

Hosted β€” screenshotline.com. Free tier, 500 renders a month, no card. Warm browser pool, cache, and someone else's pager.

Self-hosted β€” docker compose up -d. The same renderer, nothing held back. See SELF-HOSTING.md, which is honest about what running headless Chrome at scale actually costs you.


Why this exists

Taking one screenshot with Puppeteer is twenty lines. Taking ten thousand is a different job, and it is the job people pay to avoid:

SymptomCauseWhat this does about it
Memory climbs, container OOM-killedChrome does not release memory across navigations β€” 200MB becomes 1GB+Recycles each browser after MAX_RENDERS_PER_BROWSER renders
<defunct> processes, pool slots never freeChrome crashes mid-render; nothing reaps the orphans when your app is PID 1tini as PID 1 in the image, init: true in compose
Crashes on image-heavy pagesDocker gives /dev/shm only 64MB--disable-dev-shm-usage plus shm_size: 1gb
p99 latency spikes to 30s+One page with a resource that never loads holds a slotHard wall-clock timeout, then SIGKILL β€” not page.close(), which waits on the thing that hung
First request after idle takes 3–5sChromium cold startPool warmed at boot, never scaled to zero
Full-page captures miss below-fold imagesLazy loading never fired because nothing scrolledScrolls the document, waits, returns to top
Server dies mid-sweepA failed browser launch leaves Puppeteer's temp-profile cleanup to throw EBUSY, unhandledLaunch retries with backoff; background failures can never exit the process
200 OK with a blank white imageBot wall, or a challenge script we blockedTwo-signal blank detection, reported in X-Blank-Suspected

Plus the one that is not a performance problem: an endpoint that fetches arbitrary URLs is an SSRF engine by default. Private and reserved ranges are refused, and every redirect hop is re-checked, not just the submitted URL.


Quick start

Docker (recommended)

Terminal
docker compose up -d
curl "http://localhost:3000/take?url=https://example.com" -o out.png

Node 22+

Terminal
npm install
npm start          # http://localhost:3000
npm run smoke      # 30 checks against the real render path

Open http://localhost:3000 for a demo with no signup.


API

One endpoint. GET or POST /take, returning binary image data β€” no JSON envelope, no second round trip. That is deliberate: the URL has to work directly inside an <img src>.

Code
GET /take
  ?url=https%3A%2F%2Fexample.com
  &format=webp
  &full_page=true
  &block_cookie_banners=true
  &viewport_width=1440
  &cache=true&cache_ttl=86400

Parameters

ParameterDefaultNotes
urlrequiredhttp/https only. Private and reserved addresses refused.
formatpngpng, jpeg, webp, pdf
quality80jpeg/webp only, 1–100
full_pagefalseScrolls first so lazy images load
selectorβ€”Capture one element. Mutually exclusive with full_page
viewport_width / viewport_height1280 / 800
device_scale_factor12 for retina
block_adsfalseBlocks known ad and analytics hosts
block_cookie_bannersfalseBlocks CMP scripts, then sweeps leftover overlays
omit_backgroundfalseTransparent PNG/WebP
color_schemelightlight or dark
delay0Extra wait in ms before capture
wait_untildomcontentloadedload, domcontentloaded, networkidle0, networkidle2
settle5000Budget after navigation for load, network quiet and image decode
timeout30000Wall-clock ceiling in ms
ignore_tls_errorsfalseAccept expired, self-signed and mismatched certificates
basic_authβ€”user:password for HTTP basic auth
headersβ€”JSON object of extra request headers
fail_on_http_errorfalseReturn an error instead of an image when the target returns 4xx/5xx
fail_on_blankfalseReturn an error instead of a blank image when nothing rendered
cache / cache_ttlfalse / 86400Serve from the store when warm
access_keyβ€”Or the X-Access-Key header
signatureβ€”HMAC. See below.

Response headers

HeaderMeaning
X-CacheHIT, MISS or BYPASS
X-Render-MsServer-side render time
X-Upstream-StatusHTTP status the target page returned
X-Blocked-RequestsRequests blocked by the ad/consent filters
X-Wait-Fallbacktrue if the page never went network-idle and we captured anyway
X-Blank-Suspectedtrue if the capture looks blank - see below
X-Text-LengthCharacters of visible text found in the page

Errors

JSON, with a message that says how to fix it.

config.json
{
  "error": {
    "code": "render_timeout",
    "message": "Render exceeded 30000ms. Heavy ad and tracking scripts are the usual cause - try block_ads=true, or a longer timeout (up to 60000)."
  }
}

The silent failure this API tries hard to avoid

A blank white image returned with HTTP 200 is worse than an error: the customer's pipeline records a success and nobody notices for a month. Bot walls, blocked challenge scripts and pages that render nothing without JavaScript all produce exactly that.

Every response therefore carries X-Blank-Suspected, decided from two independent signals - an empty DOM, and encoded bytes-per-pixel far below what a real screenshot produces. Pass fail_on_blank=true to turn it into a 502 instead, and fail_on_http_error=true if an upstream 403 should be your problem rather than a picture of a bot wall.

Measured on the 202-page suite: 7 pages returned a technically successful but visually empty capture before this existed.


Reading a page instead of photographing it

GET or POST /extract runs the exact same render β€” JavaScript executed, the adaptive settle, consent banners swept, ad slots collapsed, lazy images loaded β€” and then reads the DOM as Markdown instead of photographing it.

Code
GET /extract?url=https%3A%2F%2Fexample.com
markdown
# Example Domain

This domain is for use in documentation examples without needing permission.

[Learn more](https://iana.org/domains/example)
ParameterDefaultNotes
strip_chrometrueDrop nav, header, footer and sidebars. Falls back to the whole body if stripping would leave nothing.
max_chars0Truncate, for a fixed context budget. 0 means no limit.
responsemarkdownjson returns {url, title, chars, upstream_status, markdown} instead.

Everything from /take still applies β€” block_ads, basic_auth, headers, settle, timeout, signed URLs, the SSRF guards.

Why this is not just curl | html2md: by the time we extract, we are holding a fully rendered, consent-swept DOM. Two things follow from that which a server-side HTML parser cannot do.

  • Client-rendered pages work. A plain fetch of app.netlify.com yields 121 characters of visible text, and they read "The Netlify dashboard needs JavaScript :(". Rendered first, the same URL extracts the actual login page.
  • Layout disambiguates the text. danluu.com writes <d>09/26</d><a ...>title</a> with no whitespace between them and styles <d> as a 4em flex item. Parsed as markup that concatenates to 09/26[title]; read with the computed layout it becomes 09/26 [title].

Open shadow roots are walked too, so pages built out of web components extract as text rather than as nothing. Closed roots are unreachable by design.


MCP server

Agents get both halves of this over the Model Context Protocol: the screenshot for when the layout is the answer, the Markdown for when the text is.

Hosted, nothing to install β€” connect by URL with a free key (500 renders a month, no card):

Terminal
claude mcp add --transport http screenshotline https://api.screenshotline.com/mcp --header "X-Access-Key: sl_live_..."

Self-hosting, it runs locally over stdio from a clone, owning a single browser:

Terminal
claude mcp add screenshotline -- node /path/to/screenshotline/mcp/server.js

Two tools:

ToolReturns
screenshotThe rendered image, plus an explicit warning if the capture looks blank rather than a silent empty picture.
read_pageThe page as Markdown.

Point either one at an instance you already run β€” with its warm pool, cache and rate limit β€” by setting SCREENSHOTLINE_BASE_URL, plus SCREENSHOTLINE_ACCESS_KEY if that instance requires a key.

The SSRF guards apply here too. An agent cannot talk this server into scanning 127.0.0.1 or a cloud metadata endpoint.


Read the full README β†’View source on GitHub β†’

Related MCP Servers

View all in Developer Tools View all alternatives
  • O
    Openapi MCP Server

    Connect any HTTP/REST API server using an Open API spec (v3)

    πŸ’» Developer Tools3 views
    Compare vs Openapi MCP Server β†’
  • C
    Claude Task Master

    AI-powered task management system for AI-driven development. Features PRD parsing, task expansion, multi-provider support (Claude, OpenAI, Gemini, Perplexity, xAI), and selective tool loading for optimized context usage.

    πŸ’» Developer Tools8 views
    Compare vs Claude Task Master β†’
  • P
    Pagewatch

    A real browser for agents. Turn any URL into clean markdown, a PNG screenshot, or a PDF.

    πŸ’» Developer Tools2 views
    Compare vs Pagewatch β†’
  • M
    MCP Server Docker

    Integrate with Docker to manage containers, images, volumes, and networks.

    πŸ’» Developer Tools3 views
    Compare vs MCP Server Docker β†’

Reviews

No reviews yet β€” be the first to share how this listing worked for you.

Frequently Asked Questions about Screenshotline

We don't have a confirmed install command for Screenshotline yet, so we don't publish a generated one β€” a guessed package name would point at the wrong package or none at all. Follow the project's own README or setup instructions (https://github.com/MAMubeenKhan/screenshotline) for the current steps.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewScreenshotline AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/screenshotline?style=directory)](https://allmcps.com/mcp/screenshotline)
HTML Embed
<a href="https://allmcps.com/mcp/screenshotline"><img src="https://allmcps.com/api/badge/screenshotline?style=directory" alt="Screenshotline on AllMCPs" /></a>

Technical Specs & Signals

CategoryπŸ’»Developer Tools
More technical detailsExpand β–Ύ
Last updatedSep 28, 2026
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
28Quality signal: Emerging Β· 28/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership8/20
Documentation & tools12/30
Adoption & activity1/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

β˜… Featured
A

AllMCPs Server

The official MCP server for AllMCPs.com - submit and manage tools directly from your AI. The open directory for MCP servers. Connect Claude, Cursor, Windsurf, and AI agents to databases, tools, files, and APIs. Explore 10,000+ servers. AllMCPs is the premier, open directory for discovering, evaluating, and installing Model Context Protocol (MCP) servers to equip AI agents and LLMs with real-world superpowers.

Explore Server β†’

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to unlock edit access and the Official badge β€” proof is checked automatically, then reviewed by our team.

Free dofollow backlink: add your website and place the AllMCPs badge on it β€” no claim needed. We detect it automatically and keep it verified as long as the badge stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in πŸ’» Developer Tools β†’Best MCP servers for Developers β†’Alternatives to Screenshotline β†’Install in Claude DesktopInstall in CursorInstall in VS CodeSetup guides for all 13 MCP clients