take_screenshot
Capture web page or element via headless browser. Saves to ~/Documents/screenshots by default (configurable via SCREENSHOT_OUTPUT_DIR env var).
urlrequiredwidthheightfullPageselectoroutputPathwaitForTimeoutwaitForSelector
io.github.sethbangPublished by GitHub account sethbangv1.5.0Updated Oct 30, 2026
MCP server for web page and cross-platform system screenshots (macOS, Linux, Windows)
The publisher's own server: screenshot.com.ar
Local MCP server that lets an assistant capture web pages with headless Chromium and take desktop, window, or region screenshots on macOS, Linux, and Windows.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
[npm version] [MCP Registry] [License]
An MCP (Model Context Protocol) server that provides AI assistants with screenshot capabilities — both web page capture via Puppeteer and cross-platform system screenshots using native OS tools.
screencapture, Linux maim/scrot/gnome-screenshot/etc., Windows PowerShell+.NET)take_system_screenshotAfter installing, you can verify your setup with:
This probes the host and prints copy-pasteable install commands for any missing tools, tailored to your detected distro.
Or run directly with npx:
Add the server to your MCP client configuration. For Claude Desktop, edit ~/Library/Application Support/Claude/claude_desktop_config.json:
Or if installed from source:
For Claude Code, register the server with the claude mcp add command:
Or if installed from source:
Verify the server registered with claude mcp list, or check live status from inside a session with /mcp.
For Cursor or other MCP clients, consult their documentation for the equivalent configuration.
The server exposes two MCP tools:
take_screenshotCaptures a web page (or a specific element) via a headless Puppeteer browser.
Example prompt:
Take a screenshot of https://example.com at 1920x1080
take_system_screenshotCaptures the desktop, a specific application window, or a screen region using native OS tools. Works on macOS, Linux, and Windows.
Example prompt:
Take a system screenshot of the Safari window
Screenshots are saved to ~/Documents/screenshots by default (configurable via SCREENSHOT_OUTPUT_DIR). Custom output paths must resolve to one of these allowed directories:
This server implements multiple layers of security hardening:
For full details, see docs/security.md.
Tests use Vitest in three tiers:
npm test) — Full dependency injection, no real I/O. Fast feedback loop.npm run test:integration) — Real DNS resolution, real filesystem with temp directories, real Puppeteer against a local HTTP server.npm run test:e2e) — Real native screenshot tools. macOS tests run natively; Linux tests run in Docker via npm run test:linux; Windows tests run on the windows-latest CI runner.This launches the MCP Inspector connected to your built server, allowing you to invoke tools interactively.
Apache-2.0 — Copyright 2026 Seth Bang
Source: README.md at commit d782ff3
Capture web page or element via headless browser. Saves to ~/Documents/screenshots by default (configurable via SCREENSHOT_OUTPUT_DIR env var).
urlrequiredwidthheightfullPageselectoroutputPathwaitForTimeoutwaitForSelectorCapture desktop, window, or region screenshot. Cross-platform: macOS (screencapture), Linux (maim/scrot/gnome-screenshot/etc.), Windows (PowerShell+.NET). Saves to ~/Documents/screenshots by default (configurable via SCREENSHOT_OUTPUT_DIR env var). For window mode, provide windowName (app name like "Safari") or windowId.
moderequireddelayformatregiondisplaywindowIdoutputPathwindowNameincludeCursor90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
ar.com.screenshotOfficial publisher
Remote MCP server that renders any public web page in a real Chrome browser and returns screenshots or clean markdown.

Published by GitHub account prometheus-maker
Apify-hosted MCP server that lets an assistant capture full-page, first-screen, mobile or element screenshots of any URL as PNG, JPEG or PDF.
dev.pages.website-screenshot-pdf
Website Screenshot and PDF (Apify actor)'s hosted MCP server, published by website-screenshot-pdf.pages.dev; credential required; Streamable HTTP.

Published by GitHub account 6mickswagger9
Local stdio MCP server that fronts an x402 paid screenshot API for AI agents, with USDC payments on Base settled through a CDP facilitator.

Published by GitHub account Screenshot-API
Official ScreenshotAPI MCP server that lets an assistant capture website screenshots, convert URLs or HTML to PDF, record scrolling videos, scrape rendered…
# Ubuntu/Debian (recommended)sudo apt install maim xdotool
# Fedorasudo dnf install maim xdotool
# Arch Linuxsudo pacman -S maim xdotool
# Wayland (Sway, etc.)sudo apt install grimnpx universal-screenshot-mcp --doctornpm install -g universal-screenshot-mcpnpx universal-screenshot-mcpgit clone https://github.com/sethbang/mcp-screenshot-server.gitcd mcp-screenshot-servernpm installnpm run build{ "mcpServers": { "screenshot-server": { "command": "npx", "args": ["-y", "universal-screenshot-mcp"] } }}{ "mcpServers": { "screenshot-server": { "command": "node", "args": ["/absolute/path/to/mcp-screenshot-server/build/index.js"] } }}# Project scope (current directory only)claude mcp add screenshot-server -- npx -y universal-screenshot-mcp
# User scope (available across all projects)claude mcp add --scope user screenshot-server -- npx -y universal-screenshot-mcpclaude mcp add screenshot-server -- node /absolute/path/to/mcp-screenshot-server/build/index.jssrc/├── index.ts # Entry point — stdio transport├── server.ts # MCP server factory├── config/│ ├── index.ts # Static constants (limits, allowed dirs)│ └── runtime.ts # Singleton semaphore, default directory├── tools/│ ├── take-screenshot.ts # Web page capture tool│ └── take-system-screenshot.ts # macOS system capture tool├── types/│ └── index.ts # Shared TypeScript interfaces├── utils/│ ├── helpers.ts # Response builders, file utilities│ ├── screenshot-provider.ts # Cross-platform provider interface + factory│ ├── macos-provider.ts # macOS: screencapture wrapper│ ├── linux-provider.ts # Linux: maim/scrot/gnome-screenshot/etc.│ ├── windows-provider.ts # Windows: PowerShell + .NET System.Drawing│ ├── macos.ts # Window ID lookup via CoreGraphics│ └── semaphore.ts # Async concurrency limiter└── validators/ ├── path.ts # Output path validation (SEC-004) └── url.ts # URL/SSRF validation (SEC-001)npm test # Unit tests (~300ms)npm run test:linux # Linux provider tests in Dockernpm run test:all # Everythingnpm run inspector