Universal MCP Server

An MCP server for capturing web page screenshots via Puppeteer and cross-platform system screenshots via native OS tools

Local serverstdioTypeScript

What is the Universal MCP server?

Connect Universal to Claude, Cursor or any other MCP client and it stops being a tab you switch to. An MCP server for capturing web page screenshots via Puppeteer and cross-platform system screenshots via native OS tools. The universal mcp server is what makes that connection.

What the server does

This probes the host and prints copy-pasteable install commands for any missing tools, tailored to your detected distro.

  • Web Page Screenshots — — Capture any public URL using a headless Chromium browser
  • Cross-Platform System Screenshots — — Fullscreen, window, or region capture using native OS tools (macOS screencapture, Linux maim/scrot/gnome-screenshot/etc., Windows PowerShell+.NET)
  • Security-First Design — — SSRF prevention, path traversal protection, DNS rebinding defense, command injection prevention, and DoS limiting
  • MCP Native — — Integrates directly with Claude Desktop, Cursor, and any MCP-compatible client

Installation

universal-screenshot-mcp on npm is all you need. Most clients run it directly, so configuration is a few lines and a restart.

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • 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
  • Scripts — The Scripts tool exposed by this server
  • Testing — The Testing tool exposed by this server

Credentials and setup notes

  • Node.js >= 18.0.0 - Chromium is downloaded automatically by Puppeteer on first run

Worth knowing first

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Where it fits

Among the browser automation options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Universal's toolset — take_screenshot, take_system_screenshot, Scripts and 1 more — is a fair guide to whether it matches your workflow. It is maintained by GitHub Actions; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Available tools

ToolWhat it does
take_screenshotCaptures a web page (or a specific element) via a headless Puppeteer browser.
take_system_screenshotCaptures the desktop, a specific application window, or a screen region using native OS tools. Works on **macOS**, **Linux**, and **Windows**.
ScriptsThe Scripts tool exposed by this server.
TestingThe Testing tool exposed by this server.

How to install the Universal MCP server

Or if installed from source:

```json
{
  "mcpServers": {
    "screenshot-server": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-screenshot-server/build/index.js"]
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Node.js >= 18.0.0 - Chromium is downloaded automatically by Puppeteer on first run

Example prompts to try

  • Use Universal to take screenshot.
  • Use Universal to take system screenshot.
  • Use Universal to Scripts.

Frequently asked questions

It connects Universal to MCP-compatible AI assistants such as Claude and Cursor, exposing 4 tools (take_screenshot, take_system_screenshot, Scripts, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Universal directly.