# Universal Screenshot MCP

MCP server providing web page captures via Puppeteer and desktop screenshots across macOS, Linux, and Windows.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 35
- Author: sethbang
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/sethbang/mcp-screenshot-server
- Updated: 2026-10-19
- HTML: https://affpapa.org/en/nevibecode/mcp/universal-screenshot-mcp

## What it does

The server exposes two tools: `take_screenshot` for web links and `take_system_screenshot` for desktop environments. The browser workflow runs headless Chromium to capture entire pages or target specific CSS selectors. The desktop tool captures entire screens, defined monitor regions, or individual application windows.

Node.js 18.0.0 or higher is required. macOS relies on built-in `screencapture`, while Windows runs native PowerShell with .NET `System.Drawing`. Linux environments demand standalone capture utilities such as `maim`, `scrot`, or `grim`. Run `npx universal-screenshot-mcp --doctor` to verify your distro packages.

Security guardrails block SSRF and local host lookups unless you explicitly turn on `ALLOW_LOCAL`. Without external capture binaries installed, Linux system calls will fail immediately.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add screenshot-server -- npx -y universal-screenshot-mcp
```

### Codex

**Platform CLI**
```bash
codex mcp add universal-screenshot-mcp -- npx -y universal-screenshot-mcp
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "universal-screenshot-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "universal-screenshot-mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "universal-screenshot-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "universal-screenshot-mcp"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add universal-screenshot-mcp npx -y universal-screenshot-mcp
```

## When to use it
- capture full web pages through headless Chromium
- snap isolated DOM elements matching a CSS selector
- record desktop windows or monitor regions across operating systems
- delay screen capture by several seconds before taking the shot

## Example prompts
- Take a screenshot of https://example.com at 1920x1080.
- Capture the Safari application window and save the output.
- Take a system screenshot of screen region x 100, y 100, width 800, height 600.

## Similar
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [AIHawk](https://affpapa.org/en/nevibecode/mcp/aihawk.md) — MCP server · ★ 32221
- [Skyvern](https://affpapa.org/en/nevibecode/mcp/skyvern.md) — MCP server · ★ 23263
- [SeleniumBase MCP](https://affpapa.org/en/nevibecode/mcp/seleniumbase-mcp.md) — MCP server · ★ 13169
- [apify-mcp-server](https://affpapa.org/en/nevibecode/mcp/apify-mcp-server.md) — MCP server · ★ 12927

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
