GetScreen MCP Server
A lightweight Model Context Protocol (MCP) Server for rapid capture of screenshots from all available monitors with automatic compression.
Features
- Multi-Monitor Support: Automatically captures all connected displays
- WSL Support: Works seamlessly in Windows WSL through PowerShell integration
- Fast Compression: Utilizes Sharp for optimal JPEG compression
- Simple Integration: Single tool with optional parameters
- Lightweight: Minimal dependencies, maximum performance
- Cross-Platform: Linux, macOS, and Windows (including WSL)
New Features
Enhanced WSL Support
WSL support has been improved with automatic detection and PowerShell integration. The tool now works seamlessly whether you use the wsl command approach or the simpler Node-based direct execution method.
Key Features:
- Automatic WSL detection via
/proc/versionenvironment inspection - Seamless PowerShell integration for capturing Windows host displays
- Support for both direct Node execution and WSL command wrapper
- No additional configuration needed for WSL environment detection
How It Works: When running in WSL, the tool automatically detects the environment and leverages PowerShell on the Windows host to capture screenshots. This approach ensures access to all display information from the Windows side while maintaining full compatibility with WSL-based tools.
Installation
git clone https://github.com/Kirchlive/getscreen_mcp.git
cd getscreen_mcp
npm install
npm run build
Configuration
Claude Code
Add the following to your Claude configuration:
macOS:
~/Users/USERNAME/.claude.json
Windows:
C:\Users\USERNAME\.claude.json
Linux/WSL:
~/home/USERNAME/.claude.json
{
"mcpServers": {
"getscreen": {
"command": "node",
"args": ["/ABSOLUT/PATH/TO/getscreen_mcp/build/index.js"]
}
}
}
Usage
Screenshot Tool
The screenshot tool captures all available monitors and returns the compressed images.
Parameters (all optional):
quality(number, 1-100): JPEG quality. Default: 80maxWidth(number): Maximum width in pixels. Images are resized proportionally.
Examples:
Take a screenshot
Take a screenshot with high quality (quality: 95)
Take a screenshot and resize it to max. 1920px width (maxWidth: 1920)
Technical Details
Platform Detection
The tool automatically detects the environment and selects the optimal method:
- WSL: Uses PowerShell on the Windows host via
powershell.exe - Linux/macOS: Uses
screenshot-desktopfor native capture
Components
- WSL Capture: PowerShell System.Windows.Forms and System.Drawing
- Native Capture:
screenshot-desktopfor Linux/macOS - Compression:
sharpfor fast image processing and JPEG compression - Format: Images are returned as base64-encoded JPEGs
- Performance: Parallel capture of all monitors for maximum speed
WSL Implementation
In WSL environments:
- Detection via
/proc/version(checks for "microsoft" or "WSL") - PowerShell script is executed on Windows host
- All monitors are captured via
System.Windows.Forms.Screen::AllScreens - Screenshots captured as PNG, then compressed to JPEG with desired quality
- Base64-encoded transmission back to WSL
License
MIT
