πΈ MCP ACS Screenshot Server

Give AI agents visual superpowers to see, analyze, and document your applications like senior UX designers.
This enterprise-grade MCP server transforms AI from code-only assistants into visual experts capable of UI analysis, accessibility auditing, documentation generation, and responsive design testing.
π Repository
This package is now maintained in its own repository: https://github.com/Digital-Defiance/mcp-screenshot
This repository is part of the AI Capabilitites Suite on GitHub.
π€ Why Do AI Agents Need Visual Capabilities?
AI agents today are powerful but visually blind:
- β Can read HTML/CSS but can't see actual layouts
- β Can suggest UI improvements without seeing the real user experience
- β Can't detect accessibility issues like poor contrast or spacing
- β Can't create visual documentation or bug reports
- β Can't analyze responsive design across different screen sizes
Result: You're stuck manually creating screenshots, documentation, and visual analysis that AI should handle.
π― Revolutionary Use Cases
π "AI, create professional documentation"
You: "Document the checkout process with screenshots"
AI: *Captures each step, analyzes UI flow*
AI: "Generated complete user guide with 6 annotated screenshots, highlighting key interactions and error states..."
π "AI, audit this page for accessibility"
You: "Check if this form meets WCAG guidelines"
AI: *Captures form, analyzes visual elements*
AI: "Found 4 accessibility issues: contrast ratio 2.1:1 (needs 4.5:1), missing focus indicators, touch targets too small..."
π "AI, create a detailed bug report"
You: "The mobile navigation is broken"
AI: *Captures different viewport sizes*
AI: "Created bug report with before/after screenshots, exact breakpoint where it fails, and CSS fix suggestions..."
π¨ "AI, compare these design variations"
You: "Which hero section design works better?"
AI: *Captures both versions, analyzes visual hierarchy*
AI: "Version B has 28% better visual flowβCTA more prominent, text hierarchy clearer, better use of whitespace..."
π± "AI, test responsive design"
You: "How does this look on different screen sizes?"
AI: *Captures multiple viewport sizes*
AI: "Layout breaks at 768pxβsidebar overlaps content. Here's the media query fix with visual proof..."
β¨ What This Changes
Before: AI worked blind, relying on code descriptions
- β "The button looks wrong" β AI guesses the issue
- β "Create documentation" β AI writes generic text
- β "Check accessibility" β AI only reviews code
- β "Test responsive design" β AI can't see actual breakpoints
After: AI sees and analyzes your actual user interface
- β
Visual debugging - AI identifies exact pixel-level issues
- β
Smart documentation - AI creates guides with real screenshots and annotations
- β
Accessibility audits - AI measures actual contrast ratios and spacing
- β
Responsive testing - AI captures and compares different screen sizes
- β
Design analysis - AI evaluates visual hierarchy and user experience
- β
Professional reports - AI creates detailed visual evidence for bugs and improvements
π Features
- Multi-format Support: PNG, JPEG, WebP, BMP with configurable quality
- Flexible Capture: Full screen, specific windows, or custom regions
- Privacy Protection: PII masking with OCR-based detection for emails, phone numbers, and credit cards
- Security Controls: Path validation, rate limiting, audit logging, and configurable policies
- Cross-platform: Linux (X11/Wayland), macOS, Windows with native APIs
- Multi-monitor Support: Capture from specific displays in multi-monitor setups
- Enterprise Security: Window exclusion, audit logging, rate limiting
- AI-Optimized: Structured responses perfect for AI agent workflows
Installation
NPM Installation
npm install @ai-capabilities-suite/mcp-screenshot
System Requirements
Linux:
- X11:
imagemagick package (provides import command)
- Wayland:
grim package
# Ubuntu/Debian
sudo apt-get install imagemagick grim
# Fedora
sudo dnf install ImageMagick grim
# Arch
sudo pacman -S imagemagick grim
macOS:
- Built-in
screencapture command (no additional dependencies)
- Screen Recording permission required (System Preferences > Security & Privacy > Privacy > Screen Recording)
Windows:
- No additional dependencies required
MCP Configuration
Add to your MCP settings file (e.g., ~/.kiro/settings/mcp.json or .kiro/settings/mcp.json):
{
"mcpServers": {
"screenshot": {
"command": "node",
"args": ["/path/to/mcp-screenshot/dist/cli.js"],
"env": {
"SCREENSHOT_ALLOWED_DIRS": "/home/user/screenshots,/tmp",
"SCREENSHOT_MAX_CAPTURES_PER_MIN": "60",
"SCREENSHOT_ENABLE_AUDIT_LOG": "true"
}
}
}
}
π οΈ 5 Professional MCP Tools
Purpose-built for AI agents to capture, analyze, and work with visual information:
The server exposes 5 comprehensive MCP tools that enable AI agents to see and understand your applications:
1. screenshot_capture_full
Capture full screen or specific display.
Parameters:
display (string, optional): Display ID to capture (defaults to primary display)
format (string, optional): Image format - png, jpeg, webp, or bmp (default: png)
quality (number, optional): Compression quality 1-100 for lossy formats (default: 90)
savePath (string, optional): File path to save screenshot (returns base64 if not provided)
enablePIIMasking (boolean, optional): Enable PII detection and masking (default: false)
Example:
{
"name": "screenshot_capture_full",
"arguments": {
"format": "png",
"savePath": "/home/user/screenshots/desktop.png",
"enablePIIMasking": true
}
}
Response:
{
"status": "success",
"filePath": "/home/user/screenshots/desktop.png",
"metadata": {
"width": 1920,
"height": 1080,
"format": "png",
"fileSize": 245678,
"timestamp": "2024-12-01T10:30:00.000Z",
"display": {
"id": "0",
"name": "Primary Display",
"resolution": { "width": 1920, "height": 1080 },
"position": { "x": 0, "y": 0 },
"isPrimary": true
},
"piiMasking": {
"emailsRedacted": 2,
"phonesRedacted": 1,
"creditCardsRedacted": 0,
"customPatternsRedacted": 0
}
}
}
2. screenshot_capture_window
Capture specific application window by ID or title pattern.
Parameters:
windowId (string, optional): Window identifier (use windowId or windowTitle)
windowTitle (string, optional): Window title pattern to match (use windowId or windowTitle)
includeFrame (boolean, optional): Include window frame and title bar (default: false)
format (string, optional): Image format (default: png)
quality (number, optional): Compression quality 1-100 (default: 90)
savePath (string, optional): File path to save screenshot
Example:
{
"name": "screenshot_capture_window",
"arguments": {
"windowTitle": "Chrome",
"includeFrame": false,
"format": "jpeg",
"quality": 85
}
}
Response:
{
"status": "success",
"data": "iVBORw0KGgoAAAANSUhEUgAA...",
"mimeType": "image/jpeg",
"metadata": {
"width": 1280,
"height": 720,
"format": "jpeg",
"fileSize": 89234,
"timestamp": "2024-12-01T10:31:00.000Z",
"window": {
"id": "12345",
"title": "Google Chrome",
"processName": "chrome",
"pid": 5678,
"bounds": { "x": 100, "y": 100, "width": 1280, "height": 720 }
}
}
}
3. screenshot_capture_region
Capture specific rectangular region of the screen.
Parameters:
x (number, required): X coordinate of top-left corner
y (number, required): Y coordinate of top-left corner
width (number, required): Width of region in pixels
height (number, required): Height of region in pixels
format (string, optional): Image format (default: png)
quality (number, optional): Compression quality 1-100 (default: 90)
savePath (string, optional): File path to save screenshot
Example:
{
"name": "screenshot_capture_region",
"arguments": {
"x": 100,
"y": 100,
"width": 800,
"height": 600,
"format": "png"
}
}
Response:
{
"status": "success",
"data": "iVBORw0KGgoAAAANSUhEUgAA...",
"mimeType": "image/png",
"metadata": {
"width": 800,
"height": 600,
"format": "png",
"fileSize": 123456,
"timestamp": "2024-12-01T10:32:00.000Z",
"region": {
"x": 100,
"y": 100,
"width": 800,
"height": 600
}
}
}
4. screenshot_list_displays
List all connected displays with resolution and position information.
Parameters: None
Example:
{
"name": "screenshot_list_displays",
"arguments": {}
}
Response: