1. Conduid
  2. Developer Tools
  3. ScreenshotMCP
MCP server · Developer Tools

ScreenshotMCP

A Model Context Protocol MCP server for capturing website screenshots with full page, element, and device size features.

Unclaimed MIT browser
54Fair

Scored yesterday · breakdown

About ScreenshotMCP

ScreenshotMCP is an MCP server published by upnorthmedia in the Developer Tools category: a Model Context Protocol MCP server for capturing website screenshots with full page, element, and device size features.

The repository has 61 stars and 11 forks, with the last commit 2 months ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/upnorthmedia/ScreenshotMCP

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about ScreenshotMCP

Powered by Claude · Grounded in docs

I know everything about ScreenshotMCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository yesterday. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

Screenshot MCP

A Model Context Protocol MCP server for capturing website screenshots with full page, element, and device size features.

Screenshot MCP

Features

  • Full-page screenshot capture with automatic scrolling
  • Element-specific screenshots using CSS selectors
  • Multiple device presets (mobile, tablet, desktop)
  • Custom viewport configurations
  • Advanced wait conditions (CSS selectors, network idle, custom delays)
  • Error handling and validation for secure operation
  • Rate limiting to prevent resource exhaustion

Installation

  1. Clone or download this project
  2. Move to the directory: cd /path/to/ScreenshotMCP
  3. rename .env.example to .env
  4. Install dependencies: npm install
  5. Start Server: npm start

Using with Claude Code

You can use Screenshot MCP directly within the Claude Code CLI or Claude Desktop to capture screenshots as part of your development workflow.

For Claude Code CLI: Add to your ~/.config/claude/mcp_servers.json:

{
  "screenshot-full-page-mcp": {
    "command": "node",
    "args": ["/path/to/screenshot-full-page-mcp/index.js"]
  }
}

or

claude mcp add screenshot-full-page-mcp node ./index.js

For Claude Desktop: Add to your claude_desktop_config.json:

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

Using with Cursor

You can use Screenshot MCP directly within the Cursor IDE to capture screenshots as part of your development workflow.

  1. Open Cursor.

  2. Go to Settings > MCP Servers.

  3. Add a new MCP server entry for Screenshot MCP:

    {
      "mcpServers": {
        "screenshot-full-page-mcp": {
          "command": "node",
          "args": ["/path/to/screenshot-full-page-mcp/index.js"]
        }
      }
    }
    
  4. Save your settings.

Usage

Once configured, you can use natural language commands with Claude Code:

Basic Screenshot

"Take a screenshot of https://example.com"

Mobile Screenshot

"Capture a mobile screenshot of https://myapp.com"

Custom Viewport

"Screenshot https://myapp.com at 1024x768 resolution"

Wait for Element

"Take a screenshot of https://example.com after the loading spinner disappears"

Element Screenshot

"Capture just the navigation bar from https://example.com"

Available Tools

capture_screenshot

Captures a full-page screenshot with advanced configuration options.

Parameters:

  • url (required): The webpage URL to screenshot
  • viewport: Viewport configuration
    • preset: Device preset (mobile, tablet, desktop)
    • width: Custom width in pixels (100-5000)
    • height: Custom height in pixels (100-5000)
    • deviceScaleFactor: Scale factor (0.1-3)
    • isMobile: Mobile device emulation
    • hasTouch: Touch support emulation
  • waitFor: Wait conditions
    • type: selector, function, timeout, or networkidle
    • value: CSS selector, function, or timeout value
    • timeout: Wait timeout in milliseconds
  • delay: Additional delay before screenshot
  • waitUntil: Navigation completion condition

capture_element

Captures a screenshot of a specific page element.

Parameters:

  • url (required): The webpage URL
  • selector (required): CSS selector for the target element
  • viewport: Viewport configuration (same as above)

list_device_presets

Lists all available device presets with their configurations.

Device Presets

Preset Width Height Scale Mobile Touch
mobile 375px 667px 2x Yes Yes
tablet 768px 1024px 2x Yes Yes
desktop 1920px 1080px 1x No No

Configuration

Environment variables can be set in the .env file:

# Browser Configuration
BROWSER_HEADLESS=true
BROWSER_TIMEOUT=30000
MAX_CONCURRENT_SCREENSHOTS=5

# Screenshot Defaults
DEFAULT_VIEWPORT_WIDTH=1920
DEFAULT_VIEWPORT_HEIGHT=1080
DEFAULT_WAIT_TIMEOUT=10000

# Security
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_WINDOW=60000

# Debug
DEBUG=false
LOG_LEVEL=info

Security Features

  • URL validation (HTTP/HTTPS only)
  • CSS selector sanitization
  • Rate limiting for concurrent requests
  • Sandboxed browser execution
  • Input validation and error handling

System Requirements

  • Node.js 18+
  • Chrome/Chromium browser (installed automatically with Puppeteer)
  • Minimum 2GB RAM
  • 500MB disk space

Troubleshooting

Common Issues

  1. Browser launch fails:

    • Ensure sufficient system resources
    • Check if Chrome/Chromium is properly installed
    • Try setting BROWSER_HEADLESS=false for debugging
  2. Screenshot timeout:

    • Increase BROWSER_TIMEOUT in .env
    • Check if the target website loads properly
    • Use appropriate waitUntil conditions
  3. Memory issues:

    • Reduce MAX_CONCURRENT_SCREENSHOTS
    • Restart the MCP server periodically
    • Monitor system memory usage

Debug Mode

Enable debug mode by setting DEBUG=true in .env file for detailed logging.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Support

For issues and questions:

  • Open an issue on GitHub
  • Check the troubleshooting section
  • Review the MCP documentation

README fetched from the repository yesterday. The original is authoritative.

Questions

About ScreenshotMCP

How do I install ScreenshotMCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is ScreenshotMCP safe to use with an AI agent?

Its trust score is 54 out of 100 (fair). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is ScreenshotMCP still maintained?

Yes — the last commit was 2 months ago. The repository has 61 stars and 11 forks.