Supports running the screenshot server as a containerized service, allowing deployment and execution within Docker containers.
Integrates with macOS Preview.app to open captured and annotated screenshots for additional markup and editing using native tools like freehand drawing, shapes, text, and signatures.
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., "@MCP Screenshot Servercapture a screenshot and add a red arrow pointing to the submit button"
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.
MCP Screenshot Server πΈ
A powerful Model Context Protocol (MCP) server for capturing screenshots and annotating images with boxes, lines, arrows, circles, text, and highlights.
Features
π― Smart Annotation (NEW!)
π§ Unified - One tool for all annotation types
π Flexible Positioning - Named positions ("top-left", "center"), percentages ("50%,30%"), or pixels
β Anchor & Offset - Control which part of annotation aligns to position, with pixel-level fine-tuning
π Auto-Adjust - Annotations automatically stay within image bounds
β‘ Batch Annotations - Apply multiple annotations in a single call
π·οΈ Quick Labeling - Label multiple regions with one command
π― Pixel-Perfect Mode -
precise_annotatefor exact coordinate control
π€ AI Vision Integration
Works great with Gemini, Claude, and other vision models for intelligent annotation placement
AI can analyze images and provide exact coordinates for annotations
Combine vision analysis with
precise_annotatefor pinpoint accuracy
Capture & Load
π· Screenshot Capture - Full screen, region, or window-specific captures
π Load Images - Load existing image files for annotation
Annotations
π¦ Box Annotation - Draw rectangles with customizable colors and fill
β‘οΈ Arrow Annotation - Draw directional arrows with adjustable head sizes
π Line Drawing - Simple line annotations
β Circle/Ellipse - Draw circles and ellipses
π Text Overlay - Add text with custom fonts and backgrounds
π¦ Highlight Regions - Semi-transparent highlight overlays
π’ Numbered Callouts - Auto-numbered callouts for step-by-step guides
πΌοΈ Border Tool - Add borders around images
Editing
π² Blur/Pixelate - Hide sensitive information (passwords, emails)
βοΈ Crop - Crop images to specific regions
π Resize - Resize with scale or exact dimensions
π Rotate/Flip - Rotate 90/180/270 degrees, flip horizontal/vertical
π Brightness/Contrast - Adjust image appearance
π§ Watermark - Add text watermarks
β©οΈ Undo - Undo annotations (up to 10 levels)
Export
πΎ Save Images - Export to PNG, JPG, WebP, and more
β‘ Quick Save - One-click save to Desktop/Downloads
π Clipboard Support - Copy images directly to system clipboard
ποΈ Preview Integration - Open in macOS Preview.app for native editing
π³ Docker Ready - Run as a containerized service
Examples
Screenshots captured from the browser and annotated using the MCP Screenshot Server tools:
Basic Annotations
Box, arrow, text, highlight, and circle annotations:

Numbered Callouts
Step-by-step guides with numbered markers:

Highlights & Regions
Highlight important sections and mark areas for blur:

Pixel-Perfect Annotations
Using precise_annotate with exact coordinates:
![]()
PII Redaction
Blur or redact sensitive information:

Quick Start
Installation
Running the Server
Integration with Cursor AI
Method 1: Local Installation (Recommended)
Install the package:
pip install mcp-screenshot-server # or uv tool install mcp-screenshot-serverAdd to Cursor settings (
~/.cursor/mcp.jsonor workspace.cursor/mcp.json):{ "mcpServers": { "screenshot": { "command": "mcp-screenshot-server", "args": [] } } }Restart Cursor to load the MCP server.
Method 2: Using uvx (No Installation)
Method 3: Using Docker
Build the Docker image:
docker build -t mcp-screenshot-server .Add to Cursor settings:
{ "mcpServers": { "screenshot": { "command": "docker", "args": ["run", "-i", "--rm", "mcp-screenshot-server"] } } }
Method 4: HTTP Transport
Start the server:
mcp-screenshot-server --transport streamable-http --port 8000Add to Cursor settings:
{ "mcpServers": { "screenshot": { "url": "http://localhost:8000/mcp" } } }
Available Tools
π― Smart Annotation Tools (Recommended!)
These tools use flexible positioning and auto-adjustment for easier annotation:
Tool | Description |
| Unified annotation with smart positioning |
| Pixel-perfect annotations at exact coords |
| Apply multiple annotations in ONE call |
| Quickly label multiple areas with one command |
Position Formats:
Named:
"top-left","center","bottom-right","top-right-quarter", etc.Percentage:
"50%, 30%"(from top-left)Pixels:
"100px, 200px"(absolute coordinates)
Anchor Options (controls which part of annotation aligns to position):
"top-left","top-center","top-right""center-left","center","center-right""bottom-left","bottom-center","bottom-right"
Examples:
π€ Using with AI Vision Models
For the most accurate annotations, combine with vision-capable AI models:
Screenshot Capture
Tool | Description |
| Capture full screen, region, or window screenshots |
| Load an existing image file for annotation |
Basic Annotation Tools (for pixel-precise control)
Tool | Description |
| NEW! Pixel-perfect multi-type tool |
| Draw rectangles/boxes on images |
| Draw lines on images |
| Draw arrows on images |
| Add text annotations |
| Draw circles/ellipses |
| Add semi-transparent highlight regions |
| Add auto-numbered callouts (1, 2, 3...) |
| Add border around entire image |
Editing Tools
Tool | Description |
| Blur/pixelate sensitive areas |
| Crop image to specific region |
| Resize with scale or dimensions |
| Rotate 90, 180, or 270 degrees |
| Flip horizontal or vertical |
| Adjust image brightness |
| Adjust image contrast |
| Add text watermark |
| Undo last annotation (up to 10 levels) |
| Check available undo operations |
| Reset auto-numbering to 0 |
Image Management
Tool | Description |
| List all images in the current session |
| Get a specific image by ID |
| Create a copy of an existing image |
| Remove an image from the session |
Export Tools
Tool | Description |
| Save image to disk (PNG, JPG, WebP, etc.) |
| Quick save to Desktop/Downloads/Documents |
| Copy image to system clipboard |
| Get image as base64-encoded string |
| Open image in macOS Preview or default viewer |
| Open any image file in Preview/default viewer |
macOS Preview Integration
On macOS, you can use the open_in_preview tool to open images in the native Preview.app, which provides additional markup tools.
Preview's Native Tools:
βοΈ Sketch - Freehand drawing
β¬ Shapes - Rectangles, circles, arrows, speech bubbles
π Text - Add text boxes with custom fonts
βοΈ Signature - Add your saved signature
π¨ Colors - Full color picker
π Border - Adjust line thickness
This allows you to combine MCP annotations with Preview's native tools for more complex edits.
Usage Examples
Basic Screenshot and Annotation
Creating a Bug Report Screenshot
Annotating an Existing Image
Docker Usage
Build and Run
Docker Compose
Configuration
Environment Variables
Variable | Description | Default |
| Host for HTTP transport |
|
| Port for HTTP transport |
|
Command Line Arguments
Platform Support
Platform | Screenshot | Clipboard | Notes |
macOS | β
Native | β AppleScript | Full support |
Windows | β PIL ImageGrab | β PowerShell | Full support |
Linux | β PIL/scrot | β xclip/wl-copy | Requires X11/Wayland |
Docker | β With Xvfb | β οΈ Limited | Headless mode |
Development
Setup Development Environment
Project Structure
Troubleshooting
macOS: "screencapture" requires screen recording permission
Go to System Preferences > Privacy & Security > Screen Recording and enable the terminal or IDE you're using.
Linux: Clipboard not working
Install clipboard tools:
Docker: Screenshots are blank
The Docker container runs in headless mode. For actual screen capture, you need to run the server natively on the host system.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Built with MCP Python SDK
Image processing powered by Pillow