Provides tools for capturing screenshots of displays and windows, recording window activity, and listing available displays and windows on macOS systems.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Screenshot MCP (macOS)take a screenshot of my main display"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Screenshot MCP (macOS)
Minimal MCP server for macOS screenshots with a Swift CLI backend. Supports:
display screenshots
window screenshots
window recording (duration or start/stop)
listing displays/windows
Requirements
macOS 12+ (CoreGraphics APIs)
Swift (Xcode CLI tools)
Node.js 18+
Screen Recording permission granted to the terminal or host app
Quickstart
SwiftUI UI (no Xcode)
Debug logs
The SwiftUI app writes logs to ~/Documents/screenshot_mcp/debug.log by default.
MCP Tools
list_displayslist_windowsscreenshot_display{ display_id, output_path? }screenshot_window{ window_id, output_path? }record_window_duration{ window_id, duration_seconds, fps?, system_audio?, output_path? }record_window_start{ window_id, fps?, system_audio?, output_path? }record_window_stop{ recording_id }
CLI Usage
Configuration
SCREENSHOT_MCP_BIN: path to the compiled Swift binarySCREENSHOT_MCP_OUTPUT_DIR: default output directory for screenshots
Notes
The Swift CLI uses
CGDisplayCreateImageandCGWindowListCreateImage.Window recording samples window frames (default 10 fps) and writes MP4 via
AVAssetWriter.System audio capture requires macOS 13+ and records all system audio, not just the window.
If screenshots are blank, ensure Screen Recording permission is granted.
License
MIT