原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Universal Screenshot MCP

作者:sethbang版本 1.5.0i★ –i在你的电脑上运行
注册名称io.github.sethbang/screenshot-server

安装

概览

作者提供的说明(英文原文)

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

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 网页与浏览器

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

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

在终端中运行这条命令

claude mcp add screenshot -- npx -y universal-screenshot-mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

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

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "screenshot": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "universal-screenshot-mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 sethbang 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“网页与浏览器”中的其他服务器比较i

  • 星标数多于此分类中其他 879 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 879 个服务器的 81% 更新
  • 基础检查结果等于或优于此分类中其他 879 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Universal Screenshot MCP 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(1.5.0)于8天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Browser Use, Chrome DevTools MCP, MCP Server Browser

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Browser Use

作者:browser-use

Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.

电脑或云端★ 120,087MIT17天前更新
安装

Chrome DevTools MCP

作者:ChromeDevTools

MCP server for Chrome DevTools

在你的电脑上运行★ 54,821Apache-2.015天前更新
安装

MCP Server Browser

作者:bytedance

MCP server for browser use access

在你的电脑上运行★ 39,550Apache-2.014个月前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

Universal Screenshot MCP

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.

Features

  • 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

Requirements

  • Node.js >= 18.0.0
  • Chromium is downloaded automatically by Puppeteer on first run
Platform-Specific Requirements for take_system_screenshot
PlatformRequired ToolsNotes
macOSscreencapture (built-in)No additional installation needed
LinuxOne of: maim, scrot, gnome-screenshot, spectacle, grim, or import (ImageMagick)maim or scrot recommended for full feature support. For window-by-name capture, also install xdotool.
Windowspowershell (built-in)Uses .NET System.Drawing — no additional installation needed
Linux Installation Examples
# Ubuntu/Debian (recommended)

sudo apt install maim xdotool

Fedora

sudo dnf install maim xdotool

Arch Linux

sudo pacman -S maim xdotool

Wayland (Sway, etc.)

sudo apt install grim

After installing, you can verify your setup with:

npx universal-screenshot-mcp --doctor

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

Quick Start

Install from npm
npm install -g universal-screenshot-mcp

Or run directly with npx:

npx universal-screenshot-mcp
Install from Source
git clone https://github.com/sethbang/mcp-screenshot-server.git

cd mcp-screenshot-server npm install npm run build

Configure Your MCP Client

Add the server to your MCP client configuration. For Claude Desktop, edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{

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

Or if installed from source:

{

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

For Claude Code, register the server with the claude mcp add command:

# 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-mcp

Or if installed from source:

claude mcp add screenshot-server -- node /absolute/path/to/mcp-screenshot-server/build/index.js

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.

Tools

The server exposes two MCP tools:

take_screenshot

Captures a web page (or a specific element) via a headless Puppeteer browser.

ParameterTypeRequiredDescription
urlstring✅URL to capture (http/https only)
widthnumber—Viewport width (1–3840)
heightnumber—Viewport height (1–2160)
fullPageboolean—Capture the full scrollable page
selectorstring—CSS selector to capture a specific element
waitForSelectorstring—Wait for this selector before capturing
waitForTimeoutnumber—Delay in milliseconds (0–30000)
outputPathstring—Output file path (default: ~/Documents/screenshots)

Example prompt:

Take a screenshot of https://example.com at 1920x1080

take_system_screenshot

Captures the desktop, a specific application window, or a screen region using native OS tools. Works on macOS, Linux, and Windows.

ParameterTypeRequiredDescription
modeenum✅fullscreen, window, or region
windowIdnumber—Window ID for window mode
windowNamestring—App name (e.g. "Safari", "Firefox") for window mode
regionobject—{ x, y, width, height } for region mode
displaynumber—Display number for multi-monitor setups
includeCursorboolean—Include the mouse cursor in the capture
formatenum—png (default) or jpg
delaynumber—Capture delay in seconds (0–10)
outputPathstring—Output file path (default: ~/Documents/screenshots)
Cross-Platform Feature Support
FeaturemacOSLinuxWindows
Fullscreen✅✅✅
Region✅✅ (maim, scrot, grim, import)✅
Window by name✅⚠️ X11 + xdotool⚠️ best-effort
Window by ID✅✅ X11 only⚠️ HWND
Multi-display✅⚠️ tool-dependent✅
Include cursor✅⚠️ tool-dependent⚠️
Delay✅✅✅

Example prompt:

Take a system screenshot of the Safari window

Configuration

Environment Variables
VariableDefaultDescription
SCREENSHOT_OUTPUT_DIRDocuments/screenshotsDefault output directory relative to ~
ALLOW_LOCALfalseSet to true to allow screenshotting localhost/127.x.x.x/[::1] (useful for local dev servers)
Output Directories

Screenshots are saved to ~/Documents/screenshots by default (configurable via SCREENSHOT_OUTPUT_DIR). Custom output paths must resolve to one of these allowed directories:

DirectoryDescription
~/Documents/screenshotsDefault output location (configurable)
~/Desktop/ScreenshotsOriginal default location
~/DownloadsUser downloads folder
~/DocumentsUser documents folder
/tmpSystem temp directory

Security

This server implements multiple layers of security hardening:

IDThreatMitigation
SEC-001SSRF / DNS rebindingURLs validated against blocked IP ranges; DNS resolved pre-request with IP pinning via --host-resolver-rules; navigation redirects re-validated
SEC-003Command injectionAll subprocesses use execFile (no shell); app names validated against SAFE_APP_NAME_PATTERN
SEC-004Path traversalOutput paths validated with fs.realpath() symlink resolution; restricted to allowed directories
SEC-005Denial of serviceConcurrent Puppeteer instances limited to 3 via semaphore; 120 s hard deadline per call, after which the browser is killed and the slot freed
SEC-006Popup SSRF bypassChromium's popup blocker kept on (Puppeteer disables it by default); any popup that still opens is closed

For full details, see docs/security.md.

Development

Scripts
CommandDescription
npm run buildCompile TypeScript to build/
npm run watchRecompile on file changes
npm testUnit tests (fast, fully mocked)
npm run test:integrationIntegration tests (real DNS/filesystem)
npm run test:e2eE2E tests (real Puppeteer/native tools)
npm run test:allAll test tiers together
npm run test:linuxLinux e2e via Docker (requires Docker)
npm run test:watchRun tests in watch mode
npm run test:coverageRun tests with coverage report
npm run lintLint source with ESLint
npm run inspectorLaunch MCP Inspector for debugging
Project Structure
src/

├── 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)

Testing

Tests use Vitest in three tiers:

  • Unit (npm test) — Full dependency injection, no real I/O. Fast feedback loop.
  • Integration (npm run test:integration) — Real DNS resolution, real filesystem with temp directories, real Puppeteer against a local HTTP server.
  • E2E (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.
npm test                 # Unit tests (~300ms)

npm run test:linux # Linux provider tests in Docker npm run test:all # Everything

Debugging with MCP Inspector
npm run inspector

This launches the MCP Inspector connected to your built server, allowing you to invoke tools interactively.

License

Apache-2.0 — Copyright 2026 Seth Bang

问 PopNx