# Universal Screenshot MCP [Health: Active]

**Category:** 📂 Browser Automation  
**Repository:** https://github.com/sethbang/mcp-screenshot-server  
**GitHub Stars:** 35  
**npm Downloads (last month):** 373  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/universal-screenshot-mcp

## Description
MCP server for web page and cross-platform system screenshots (macOS, Linux, Windows)

## Tools
Capabilities this server exposes over MCP:

- **take_screenshot** — Captures a web page (or a specific element) via a headless Puppeteer browser.
- **take_system_screenshot** — Captures the desktop, a specific application window, or a screen region using native OS tools. Works on **macOS**, **Linux**, and **Windows**.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "universal-screenshot-mcp": {
    "command": "npx",
    "args": ["-y","universal-screenshot-mcp"]
  }
}
```

## Documentation

## What Universal Screenshot MCP MCP server does

Universal Screenshot MCP MCP server exposes two MCP tools for image capture. `take_screenshot` opens a public HTTP or HTTPS URL in a headless Chromium browser managed by Puppeteer. It can capture the visible viewport, the complete scrollable page, or one element selected with CSS. Optional viewport dimensions, selector waits, and capture delays help with pages that need time to render.

`take_system_screenshot` captures the local desktop through operating-system tools. It supports fullscreen, application-window, and rectangular-region modes, along with display selection, cursor inclusion, output format, and a short delay. System capture is available on macOS, Linux, and Windows, although individual features depend on the platform and installed utilities.

## How it works

The server communicates with an MCP client over its configured process. Web captures use Puppeteer and download Chromium automatically on the first run. System captures delegate to native facilities: `screencapture` on macOS, PowerShell and .NET on Windows, and one of several supported utilities on Linux, including `maim`, `scrot`, `gnome-screenshot`, `spectacle`, `grim`, or ImageMagick's `import`.

The web tool accepts a URL, dimensions, full-page mode, a CSS selector, rendering waits, and an output path. The system tool accepts a capture mode plus optional window, region, display, cursor, format, delay, and output-path settings. Both tools default to `~/Documents/screenshots`.

Universal Screenshot MCP MCP server validates web destinations against blocked address ranges and checks redirects. It also uses DNS resolution and IP pinning, avoids shell execution for subprocesses, validates application names, checks output paths after symlink resolution, and limits concurrent Puppeteer instances to three.

## Setup and configuration

Node.js 18 or newer is required. Install the npm package globally with `npm install -g universal-screenshot-mcp`, run it directly with `npx universal-screenshot-mcp`, or build it from the repository with `npm install` followed by `npm run build`. Puppeteer obtains Chromium automatically when needed.

macOS and Windows need their listed built-in capture facilities. Linux requires at least one supported screenshot utility; `xdotool` is additionally needed for window-by-name capture on the supported X11 setup. The command `npx universal-screenshot-mcp --doctor` checks the host and reports missing Linux tools with installation suggestions.

Add the executable to the MCP client's server configuration. Claude Desktop can launch it with `npx -y universal-screenshot-mcp`, while Claude Code can register the same command with `claude mcp add`. Cursor and other MCP clients use their own configuration formats.

`SCREENSHOT_OUTPUT_DIR` changes the default output directory. `ALLOW_LOCAL=true` permits captures of `localhost`, `127.x.x.x`, and `[::1]`; local targets are otherwise blocked. Custom paths must resolve within the approved screenshot, Desktop, Downloads, Documents, or `/tmp` locations described by the project.

## Tools and capabilities

- Capture public web pages or selected elements.
- Capture full scrollable pages with `fullPage`.
- Wait for a selector or up to 30 seconds before a web capture.
- Capture fullscreen, windows, or screen regions.
- Select a display and optionally include the cursor.
- Save system images as PNG or JPG.

## Limitations and notes

Window-by-name capture on Linux requires X11 and `xdotool`, and several Linux features are tool-dependent. Windows window capture is best-effort, while Linux window-ID capture is limited to X11. Multi-display and cursor behavior can also vary by platform utility.

The web tool is intended for HTTP and HTTPS URLs. Local addresses require `ALLOW_LOCAL=true`. Output locations are restricted, and the server limits simultaneous Puppeteer instances to reduce resource exhaustion. Universal Screenshot MCP MCP server does not describe an image-analysis tool; it provides screenshot capture and writes the resulting files to disk.

_Full upstream README: https://allmcps.com/mcp/universal-screenshot-mcp/readme_

