EditX
An MCP server for taking screenshots and editing images with annotations, shapes, and effects.
README
EditX - Screenshot & Image Editor MCP Server
MCP server for taking screenshots and editing images with annotations, shapes, and effects. Inspired by ShareX functionality for Linux.
Features
šø Screenshot Capture
- Fullscreen: Capture entire screen
- Area Selection: Interactive region selection (GUI)
- Region: Capture specific coordinates programmatically
āļø Drawing Tools
- Arrows: Point to specific areas
- Rectangles: Highlight regions
- Step Numbers: Numbered circles for tutorials (1, 2, 3...)
- Text: Add text annotations
šØ Effects
- Blur: Gaussian blur for privacy
- Pixelate: Stronger privacy effect (faces, sensitive data)
- Crop: Cut image to specific region
š¾ Image Management
- Load existing images
- Save in PNG/JPEG
- Undo operations
- Reset to original
- Image info and history
Installation
cd /path/to/EditX
pip install -r requirements.txt
System Dependencies (Linux)
For interactive area selection, install one of:
# Ubuntu/Debian
sudo apt install gnome-screenshot
# OR
sudo apt install scrot
Configuration
Add to ~/.claude.json:
{
"mcpServers": {
"editx": {
"type": "stdio",
"command": "python",
"args": [
"/absolute/path/to/EditX/src/server.py"
]
}
}
}
Replace /absolute/path/to/EditX with the actual path where you cloned this repository.
Usage Examples
Basic Workflow
1. Take screenshot
ā take_screenshot(mode="fullscreen")
2. Add annotations
ā add_arrow(start_x=100, start_y=100, end_x=200, end_y=150)
ā add_rectangle(x=150, y=150, width=300, height=200)
ā add_step_number(x=250, y=250, number=1)
3. Add privacy blur
ā blur_region(x=400, y=100, width=200, height=50)
4. Save result
ā save_image(output_path="/path/to/annotated.png")
Tutorial Screenshot with Steps
take_screenshot(mode="area")
add_step_number(x=100, y=100, number=1, bg_color="red")
add_step_number(x=100, y=200, number=2, bg_color="blue")
add_step_number(x=100, y=300, number=3, bg_color="green")
add_arrow(start_x=150, start_y=100, end_x=300, end_y=100)
save_image(output_path="tutorial.png")
Privacy Screenshot
take_screenshot(mode="fullscreen")
blur_region(x=100, y=100, width=300, height=200, blur_amount=20)
pixelate_region(x=500, y=500, width=200, height=200, pixel_size=15)
save_image(output_path="private.png")
Edit Existing Image
load_image(image_path="/path/to/existing.png")
add_rectangle(x=50, y=50, width=400, height=300, color="red", border_width=5)
add_text(x=60, y=60, text="Important!", color="red", size=24, bg_color="white")
save_image(output_path="/path/to/annotated.png")
Available Tools
Screenshot Tools
take_screenshot: Capture screenmode: "fullscreen" | "area" | "region"output_path: (optional) where to savex, y, width, height: (for "region" mode)
Editing Tools
-
load_image: Load existing image fileimage_path: path to image
-
add_arrow: Draw arrowstart_x, start_y: arrow startend_x, end_y: arrowhead positioncolor: arrow colorwidth: line width
-
add_rectangle: Draw rectanglex, y: top-left cornerwidth, height: dimensionscolor: border colorborder_width: border thicknessfill: (optional) fill color
-
add_step_number: Add numbered circlex, y: center positionnumber: step number (1, 2, 3...)size: circle diameterbg_color: circle colortext_color: number color
-
add_text: Add text annotationx, y: text positiontext: text contentcolor: text colorsize: font sizebg_color: (optional) background
Effects
-
blur_region: Blur specific areax, y, width, height: regionblur_amount: intensity (5-50)
-
pixelate_region: Pixelate area (privacy)x, y, width, height: regionpixel_size: block size (5-30)
-
crop_image: Crop to regionx, y, width, height: crop area
Management
-
save_image: Save edited imageoutput_path: where to saveformat: "PNG" | "JPEG"
-
get_image_info: Get image details -
undo: Undo last operation -
reset_image: Reset to original
Technical Details
Architecture
EditX/
āāā src/
ā āāā server.py # MCP server (main entry)
ā āāā screenshot.py # Screenshot capture (mss)
ā āāā editor.py # Image editor manager
ā āāā shapes.py # Drawing shapes (Pillow)
ā āāā effects.py # Image effects (Pillow + OpenCV)
āāā requirements.txt
āāā README.md
Technology Stack
- MCP Framework: Server implementation
- python-mss: Fast cross-platform screenshots
- Pillow (PIL): Image manipulation and drawing
- OpenCV: Advanced effects (blur, pixelate)
- NumPy: Array operations
Workflow
- Screenshot is captured and auto-loaded into editor
- All edits are applied to the loaded image
- Editor maintains history (up to 10 states)
- Undo/reset available at any time
- Save to desired format
Colors Available
red,blue,green,yellow,black,white,orange
Tips
- Step numbers: Use different colors for different workflows
- Blur vs Pixelate: Blur for slight privacy, pixelate for strong privacy
- Arrow direction: Arrow points to
endcoordinates - History: Max 10 undo states kept in memory
- Formats: Use PNG for transparency, JPEG for smaller files
License
MIT License - see LICENSE file for details.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.