Skip to main content
Glama

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

Related MCP server: Screenshot MCP

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 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 file for details.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    An MCP server that enables capturing website screenshots with full-page, element-specific, and device-responsive capabilities through natural language commands.
    3
    22 npm
    61
    MIT