EditX
by Retgex
README.md
# 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
```bash
cd /path/to/EditX
pip install -r requirements.txt
```
### System Dependencies (Linux)
For interactive area selection, install one of:
```bash
# Ubuntu/Debian
sudo apt install gnome-screenshot
# OR
sudo apt install scrot
```
## Configuration
Add to `~/.claude.json`:
```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 screen
- `mode`: "fullscreen" | "area" | "region"
- `output_path`: (optional) where to save
- `x, y, width, height`: (for "region" mode)
### Editing Tools
- **`load_image`**: Load existing image file
- `image_path`: path to image
- **`add_arrow`**: Draw arrow
- `start_x, start_y`: arrow start
- `end_x, end_y`: arrowhead position
- `color`: arrow color
- `width`: line width
- **`add_rectangle`**: Draw rectangle
- `x, y`: top-left corner
- `width, height`: dimensions
- `color`: border color
- `border_width`: border thickness
- `fill`: (optional) fill color
- **`add_step_number`**: Add numbered circle
- `x, y`: center position
- `number`: step number (1, 2, 3...)
- `size`: circle diameter
- `bg_color`: circle color
- `text_color`: number color
- **`add_text`**: Add text annotation
- `x, y`: text position
- `text`: text content
- `color`: text color
- `size`: font size
- `bg_color`: (optional) background
### Effects
- **`blur_region`**: Blur specific area
- `x, y, width, height`: region
- `blur_amount`: intensity (5-50)
- **`pixelate_region`**: Pixelate area (privacy)
- `x, y, width, height`: region
- `pixel_size`: block size (5-30)
- **`crop_image`**: Crop to region
- `x, y, width, height`: crop area
### Management
- **`save_image`**: Save edited image
- `output_path`: where to save
- `format`: "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
1. Screenshot is captured and auto-loaded into editor
2. All edits are applied to the loaded image
3. Editor maintains history (up to 10 states)
4. Undo/reset available at any time
5. 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 `end` coordinates
- **History**: Max 10 undo states kept in memory
- **Formats**: Use PNG for transparency, JPEG for smaller files
## License
MIT License - see [LICENSE](LICENSE) file for details.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues