Gimp MCP

by gimp-mcp• 284•• Scanned•Claim this listing•Request removal
Design & Mediaclaude codecodexgimpgimp pluginimage editing

GIMP MCP server

Gimp MCP is an open-source mcp server by gimp-mcp, written mainly in Python, with 284 GitHub stars and the GPL-3.0 license. Its code was last updated Oct 31, 2026.

Scan summary: scanned Nov 5, 2026 at commit 7325865. Seen able to run dynamic code. Scan policy

Scanned
Full scan at 7325865 · Nov 5, 2026
Scanned Builds Boots No undeclared egress Reproducible
Static code scanwarn
Secrets scanpass
Dependency audit0 known vulnerabilitiespass
Manifestnonewarn
Buildpass
Boot & handshake79 toolspass
Network egresspass
Reproducible (×3)pass

Findings (2)

  • high
    code-execution issue
    Details are available to the maintainer after claiming this listing.
  • low
    No manifest declaring network access and environment variables (agent.json)

Network activity

During install
files.pythonhosted.orgpypi.org
While running
No connections

Tools exposed (79)

  • check_server

    Check whether the GIMP MCP plugin socket is reachable and responding. Returns a status dict: - connected: bool - host / port: where it tried - gimp_version: if connected successfully - error: description if not connected Use this before any other operation to verify the GIM

  • restart_server

    Drop and re-establish the connection to the GIMP MCP plugin. Use this when: - GIMP was restarted after Claude Code was already running - The socket connection dropped mid-session - check_server() shows not connected but GIMP is open Returns the new connection status (same forma

  • new_canvas

    Create a new blank canvas in GIMP and open it in a display window. Parameters: - width: Canvas width in pixels - height: Canvas height in pixels - name: Layer/image name (default: "Untitled") - color_mode: "RGB" (default), "RGBA", "GRAY", "GRAYA" - fill: Fill color for the b

  • get_image_bitmap

    Get the current open image in GIMP as an Image object with optional scaling and region selection. No size restrictions — pass any max_width/max_height you need. For large images, omit max_width/max_height to get the full resolution. Supports two main use cases: 1. Full image with o

  • get_image_metadata

    Get metadata about the current open image in GIMP without the bitmap data. Returns detailed information about the currently active image including: - Image dimensions (width, height) - Color mode and base type - Number of layers and channels - File information if available

  • get_gimp_info

    Get comprehensive information about the GIMP installation and environment. Returns detailed information about GIMP that AI assistants need to understand the current environment, including: - GIMP version and build information - Installation paths and directories - Available plug

  • get_state_snapshot

    Return a live visual snapshot of the current image state — no file save needed. AI agents call this to get immediate visual feedback after any edit operation, letting them verify results and decide next steps without saving to disk. Parameters: - image_index: Which open image to sn

  • get_context_state

    Get the current GIMP context state (colors, brush, settings). IMPORTANT: Context state can be changed by the user in GIMP UI at any time. Check context state before operations that depend on specific settings. Returns information about: - Foreground and background colors (RGB/RGBA

  • call_api

    Call GIMP 3.2 API methods through PyGObject console. GIMP MCP Protocol: - Use api_path="exec" to execute Python code in GIMP - args[0] should be "pyGObject-console" for executing commands - args[1] should be array of Python code strings to execute - Commands execute in persisten

  • open_image

    Open an image file in GIMP and create a display window. Parameters: - file_path: Absolute path to the image file to open (PNG, JPEG, TIFF, etc.) Returns: - image_id: internal GIMP image ID - width / height: image dimensions in pixels - color_mode: RGB / Grayscale / Indexed

  • save_xcf

    Save the current image as a GIMP XCF file (preserves all layers and metadata). Parameters: - file_path: Absolute path for the output .xcf file - image_index: Index of the image to save (default 0 = first open image) Returns: - status: "success" or "error" - file_path: confi

  • export_image

    Export the current image to a raster file (PNG, JPEG, WEBP, TIFF). Parameters: - file_path: Absolute path for the output file - format: Output format — "png" (default), "jpeg", "webp", "tiff" - quality: JPEG/WEBP quality 1-100 (default 90; ignored for PNG/TIFF) - flatten: Flatte

  • batch_export

    Export all open images (or a specific one) to a directory. Parameters: - output_dir: Directory to write exported files into - format: "png", "jpeg", "webp", "tiff" (default "png") - quality: JPEG/WEBP quality (default 90) - name_pattern: Filename template — use {name} for image

  • auto_levels

    Automatically stretch the tonal range of an image (auto levels / auto stretch contrast). Parameters: - image_index: Index of the target image (default 0) - layer_name: Name of the layer to adjust; defaults to active layer Returns status dict.

  • adjust_curves

    Adjust tonal curves for a layer. Parameters: - preset: Built-in curve shape — "s_curve" (default), "lighten", "darken", "contrast" - points: Custom control points as [[input, output], ...] override (overrides preset) - channel: "value" (all), "red", "green", "blue", "alpha" - im

  • adjust_brightness_contrast

    Adjust brightness and contrast of a layer. Parameters: - brightness: -127 to +127 (default 0) - contrast: -127 to +127 (default 0) - image_index: Target image index (default 0) - layer_name: Layer to adjust; defaults to active layer Returns status dict.

  • adjust_hue_saturation

    Adjust hue, saturation, and lightness of a layer. Parameters: - hue: Hue rotation -180 to +180 (default 0) - saturation: Saturation shift -100 to +100 (default 0) - lightness: Lightness shift -100 to +100 (default 0) - color_range: "all", "red", "yellow", "green", "cyan", "blue"

  • adjust_color_balance

    Adjust color balance (shadows / midtones / highlights) of a layer. Parameters: - cyan_red: -100 to +100 (negative = cyan, positive = red; default 0) - magenta_green: -100 to +100 (default 0) - yellow_blue: -100 to +100 (default 0) - range: "shadows", "midtones" (default), "highl

  • sharpen

    Sharpen a layer using unsharp mask. Parameters: - amount: Sharpening strength 0-500 (default 50.0) - radius: Blur radius for the mask in pixels (default 3.0) - threshold: Minimum difference before sharpening is applied (default 0) - image_index: Target image index (default 0)

  • blur

    Apply Gaussian blur to a layer. Parameters: - radius_x: Horizontal blur radius in pixels (default 5.0) - radius_y: Vertical blur radius in pixels (default 5.0) - image_index: Target image index (default 0) - layer_name: Layer to blur; defaults to active layer Returns status

  • denoise

    Reduce noise in a layer using GEGL noise-reduction. Parameters: - strength: Noise reduction strength 0-100 (default 50) - image_index: Target image index (default 0) - layer_name: Layer to denoise; defaults to active layer Returns status dict.

  • desaturate

    Convert a layer to grayscale (desaturate). Parameters: - mode: Desaturation algorithm — "luminosity" (default), "luma", "average", "lightness" - image_index: Target image index (default 0) - layer_name: Layer to desaturate; defaults to active layer Returns status dict.

  • invert_colors

    Invert all colors in a layer (create a negative). Parameters: - image_index: Target image index (default 0) - layer_name: Layer to invert; defaults to active layer Returns status dict.

  • scale_image

    Scale an image to exact pixel dimensions. Parameters: - width: Target width in pixels - height: Target height in pixels - interpolation: "cubic" (default), "linear", "none" - image_index: Target image index (default 0) Returns: {status, width, height}

  • scale_to_fit

    Scale an image to fit within a bounding box, preserving aspect ratio. Parameters: - max_width: Maximum allowed width in pixels - max_height: Maximum allowed height in pixels - interpolation: "cubic" (default), "linear", "none" - image_index: Target image index (default 0) R

  • crop_to_selection

    Crop the image canvas to the current selection bounds. Parameters: - autocrop: If True, auto-detect crop bounds instead of using selection (default False) - image_index: Target image index (default 0) Returns: {status, x, y, width, height} — crop region applied

  • crop_to_rect

    Crop the image canvas to an explicit rectangle. Parameters: - x, y: Top-left corner of the crop rectangle - width, height: Dimensions of the crop rectangle - image_index: Target image index (default 0) Returns: {status, x, y, width, height}

  • rotate_image

    Rotate the entire image. Parameters: - angle: Rotation in degrees — 90, 180, 270 use lossless GIMP rotation; other values rotate all layers with interpolation and flatten - image_index: Target image index (default 0) Returns status dict.

  • flip_image

    Flip the entire image horizontally or vertically. Parameters: - direction: "horizontal" (default) or "vertical" - image_index: Target image index (default 0) Returns status dict.

  • resize_canvas

    Resize the image canvas without scaling the content. Parameters: - width, height: New canvas dimensions in pixels - anchor: Position of existing content — "center" (default), "top-left", "top", "top-right", "left", "right", "bottom-left", "bottom", "bottom-right" - fil

  • select_rectangle

    Create a rectangular selection. Parameters: - x, y: Top-left corner of the selection - width, height: Dimensions of the selection - operation: "replace" (default), "add", "subtract", "intersect" - feather: Feather radius in pixels (default 0 = no feather) - image_index: Targ

  • select_ellipse

    Create an elliptical selection. Parameters: - x, y: Top-left corner of the bounding box - width, height: Bounding box dimensions - operation: "replace" (default), "add", "subtract", "intersect" - feather: Feather radius in pixels (default 0) - image_index: Target image index

  • select_by_color

    Select regions by color similarity. Parameters: - color: Target color as CSS name, hex (#rrggbb), or rgb() string - threshold: Color similarity tolerance 0-255 (default 15) - operation: "replace" (default), "add", "subtract", "intersect" - image_index: Target image index (defaul

  • select_all

    Select the entire image canvas. Parameters: - image_index: Target image index (default 0) Returns status dict.

  • select_none

    Remove / deselect all selections. Parameters: - image_index: Target image index (default 0) Returns status dict.

  • invert_selection

    Invert the current selection (select what is not selected). Parameters: - image_index: Target image index (default 0) Returns status dict.

  • modify_selection

    Grow, shrink, feather, border, or sharpen the current selection. Parameters: - operation: "grow", "shrink", "feather", "border", "sharpen" - amount: Pixel radius for grow/shrink/feather/border; ignored for sharpen - image_index: Target image index (default 0) Returns status dic

  • create_layer

    Create and insert a new layer into an image. Parameters: - name: Layer name (default "New Layer") - width, height: Layer dimensions; defaults to image dimensions - fill: Initial fill — "transparent" (default), "white", "black", or any CSS color - opacity: Layer opacity 0-100 (de

  • duplicate_layer

    Duplicate a layer and insert the copy above it. Parameters: - layer_name: Name of the layer to duplicate; defaults to active layer - image_index: Target image index (default 0) Returns: {layer_name, layer_id}

  • delete_layer

    Delete a layer from an image. Parameters: - layer_name: Name of the layer to delete - layer_index: Position index of the layer (alternative to layer_name) - image_index: Target image index (default 0) Provide either layer_name or layer_index. Defaults to active layer if neither

  • rename_layer

    Rename a layer. Parameters: - new_name: New name for the layer - old_name: Current name of the layer to rename - layer_index: Position index alternative to old_name - image_index: Target image index (default 0) Returns: {old_name, new_name}

  • set_layer_properties

    Set properties on an existing layer. Parameters: - layer_name / layer_index: Identify the layer (defaults to active layer) - opacity: New opacity 0-100 (omit to leave unchanged) - blend_mode: New GIMP layer mode name (omit to leave unchanged) - visible: True/False visibility (om

  • reorder_layer

    Move a layer to a new stack position. Parameters: - new_position: Target stack index (0 = bottom) - layer_name / layer_index: Identify the layer (defaults to active layer) - image_index: Target image index (default 0) Returns status dict.

  • flatten_image

    Flatten all layers into a single background layer. Parameters: - image_index: Target image index (default 0) Returns status dict.

  • merge_visible_layers

    Merge all visible layers into a single layer. Parameters: - image_index: Target image index (default 0) Returns: {layer_name, layer_id}

  • list_layers

    List all layers in an image with their properties. Parameters: - image_index: Target image index (default 0) Returns: {layers: [{name, id, visible, opacity, blend_mode, width, height, has_alpha}], count}

  • fill_layer

    Fill an entire layer with a solid color. Parameters: - color: Fill color as CSS name, hex, or rgb() string - layer_name: Layer to fill; defaults to active layer - image_index: Target image index (default 0) Returns status dict.

  • fill_selection

    Fill the current selection with a color or fill type. Parameters: - color: Fill color as CSS name, hex, or rgb() string (used when fill_type is omitted) - fill_type: Fill type override: "foreground", "background", or "transparent" - image_index: Target image index (default 0) -

  • set_colors

    Set the GIMP foreground and/or background color. Parameters: - foreground: New foreground color (CSS name, hex, rgb()); omit to leave unchanged - background: New background color; omit to leave unchanged Returns: {foreground, background} confirmation dict.

  • draw_line

    Draw a straight line on a layer. Parameters: - x1, y1: Start point - x2, y2: End point - color: Stroke color (CSS / hex / rgb); uses current foreground if omitted - width: Stroke width in pixels (default 2.0) - tool: "pencil" (default, hard edge) or "paintbrush" (soft edge)

  • draw_rectangle

    Draw a rectangle outline (stroke only) on a layer. Parameters: - x, y: Top-left corner - width, height: Rectangle dimensions - color: Stroke color; uses current foreground if omitted - line_width: Stroke width in pixels (default 2.0) - layer_name: Target layer; defaults to a

  • draw_ellipse

    Draw an ellipse outline (stroke only) on a layer. Parameters: - x, y: Top-left corner of the bounding box - width, height: Bounding box dimensions - color: Stroke color; uses current foreground if omitted - line_width: Stroke width in pixels (default 2.0) - layer_name: Targe

  • fill_rectangle

    Fill a rectangular region with a solid color. Parameters: - x, y: Top-left corner - width, height: Rectangle dimensions - color: Fill color (CSS name, hex, or rgb() string) - layer_name: Target layer; defaults to active layer - image_index: Target image index (default 0)

  • fill_ellipse

    Fill an elliptical region with a solid color. Parameters: - x, y: Top-left corner of the bounding box - width, height: Bounding box dimensions - color: Fill color (CSS name, hex, or rgb() string) - layer_name: Target layer; defaults to active layer - image_index: Target imag

  • gradient_fill

    Fill a layer or selection with a gradient. Parameters: - color1: Start color (default "black") - color2: End color (default "white") - x1, y1: Gradient start point (default top-left 0,0) - x2, y2: Gradient end point (defaults to bottom-right of image) - gradient_type: "linea

  • add_text

    Add a text layer to an image. Parameters: - text: The text string to render - x, y: Position of the text layer's top-left corner (default 0, 0) - font: Font family name — "Sans" (default), "Serif", etc. - size: Font size in pixels (default 24) - color: Text color (CSS name,

  • edit_text

    Edit an existing text layer's content or formatting. Parameters: - layer_name: Name of the text layer to edit - text: New text content (omit to leave unchanged) - font: New font family (omit to leave unchanged) - size: New font size in pixels (omit to leave unchanged) - colo

  • list_fonts

    List available fonts installed in GIMP. Parameters: - filter: Optional string to filter font names (case-insensitive substring match) Returns: {fonts: [font_name, ...], count}

  • apply_drop_shadow

    Apply a drop shadow effect to a layer. Parameters: - offset_x, offset_y: Shadow offset in pixels (default 5, 5) - blur_radius: Shadow softness radius (default 10) - color: Shadow color (default "black") - opacity: Shadow opacity 0-100 (default 60) - layer_name: Target layer;

  • apply_gaussian_blur

    Apply Gaussian blur as a destructive filter operation. Parameters: - radius: Blur radius in pixels (default 5.0) - layer_name: Target layer; defaults to active layer - image_index: Target image index (default 0) Returns status dict.

  • apply_pixelate

    Pixelate a layer using a mosaic/block effect. Parameters: - block_size: Size of each mosaic block in pixels (default 10) - layer_name: Target layer; defaults to active layer - image_index: Target image index (default 0) Returns status dict.

  • apply_emboss

    Apply an emboss (bas-relief) effect to a layer. Parameters: - azimuth: Light direction in degrees 0-360 (default 315 = top-left) - elevation: Light elevation angle 0-90 (default 45) - depth: Effect depth/intensity (default 2) - layer_name: Target layer; defaults to active layer

  • apply_vignette

    Apply a vignette darkening effect around the edges of a layer. Parameters: - softness: Edge softness / fade width (default 3.0) - shape: Shape factor — 1.0 = elliptical (default), values >1 = more rectangular - layer_name: Target layer; defaults to active layer - image_index: Ta

  • apply_noise

    Add noise/grain to a layer. Parameters: - amount: Noise intensity 0.0-1.0 (default 0.2) - layer_name: Target layer; defaults to active layer - image_index: Target image index (default 0) Returns status dict.

  • export_icon_sizes

    Export an image as a complete icon set for Android or iOS. Android sizes: 48 (mdpi), 72 (hdpi), 96 (xhdpi), 144 (xxhdpi), 192 (xxxhdpi), 512 (Play Store) iOS sizes: 20x1/2/3, 29x1/2/3, 40x2/3, 60x2/3, 76x1/2, 83.5x2, 1024x1 Parameters: - output_dir: Directory to

  • export_web_optimized

    Export an image as both JPEG and PNG, choosing the smaller format. Parameters: - output_dir: Directory to write output files - jpeg_quality: JPEG quality 1-100 (default 85) - png_compression: PNG compression level 0-9 (default 9) - max_width / max_height: Optional scaling before

  • warp_region

    Warp / liquify a region of the image by pushing pixels in a direction. Uses GEGL warp (GIMP 3 native) with plug-in-iwarp fallback. Ideal for subtle facial expression edits — e.g. turning a neutral mouth into a smile by pushing the mouth corners upward. Parameters: - vectors: Li

  • batch_resize

    Resize all open images to a common target size. Parameters: - width / height: Target dimensions in pixels (provide one or both) - scale_factor: Proportional scale (e.g. 0.5 = 50%); overrides width/height if set - maintain_aspect: Preserve aspect ratio when only one dimension is give

  • export_sprite_sheet

    Combine multiple frames into a sprite sheet PNG. Parameters: - output_path: Absolute path for the output PNG file - columns: Number of columns in the grid (defaults to square root of frame count) - padding: Pixel gap between frames (default 0) - source: "layers" (each layer is a

  • export_social_media_kit

    Export an image resized for multiple social media platforms. Platform sizes (all in pixels): - instagram_square: 1080x1080 - instagram_story: 1080x1920 - twitter_header: 1500x500 - facebook_cover: 820x312 - youtube_thumbnail: 1280x720 Parameters: - output_dir: Direc

  • list_images

    List all images currently open in GIMP. Returns: - images: list of {index, image_id, name, width, height, color_mode, num_layers, file_path, is_dirty} - count: total number of open images

  • set_active_image

    Raise a specific image to the front / make it active in GIMP. Parameters: - image_index: Index of the image to activate (from list_images) Returns status dict.

  • undo

    Undo one or more operations on an image. Parameters: - steps: Number of undo steps (default 1) - image_index: Target image index (default 0) Returns: {steps_undone}

  • redo

    Redo one or more previously undone operations on an image. Parameters: - steps: Number of redo steps (default 1) - image_index: Target image index (default 0) Returns: {steps_redone}

  • convert_color_mode

    Convert an image to a different color mode. Parameters: - mode: "RGB", "GRAY", or "INDEXED" - num_colors: Number of colors for INDEXED mode (default 256) - image_index: Target image index (default 0) Returns status dict.

  • close_image

    Close an image, optionally saving as XCF first. Parameters: - image_index: Index of the image to close (default 0) - save_first: If True, save as XCF before closing (default False) Returns status dict.

  • get_selection_bounds

    Get the bounding rectangle of the current selection. Parameters: - image_index: Target image index (default 0) Returns: {has_selection, x, y, width, height}

  • get_pixel_color

    Get the color of a single pixel. Parameters: - x, y: Pixel coordinates - image_index: Target image index (default 0) - layer_name: Layer to sample from; defaults to active layer Returns: {color_hex, color_rgb: [r, g, b], alpha}

  • get_histogram

    Get histogram statistics for a channel of the active layer. Parameters: - channel: "value" (all; default), "red", "green", "blue", "alpha" - image_index: Target image index (default 0) Returns: {mean, median, std_dev, min, max, pixels, count}

Automated result for the commit shown. See our scan policy. View the scan log

Maintainers can claim the listing to rescan, or dispute a result.

Gimp MCP alternatives

View more →

Similar mcp servers in Design & Media, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Gimp MCP (this page)
gimp-mcp
284GPL-3.0Oct 31, 2026Scanned, no flagged issues
Next AI Draw Io
DayuanJiang
37kApache-2.0Nov 1, 2026Scanned, no flagged issues
MCP For Blender
ahujasid
33kMITOct 29, 2026Scanned, no flagged issues
Figma Context MCP
GLips
16kMITOct 27, 2026Scanned, no flagged issues
Nginx UI
0xJacky
12kAGPL-3.0Nov 1, 2026Scanned, no flagged issues
Lamda
firerpa
8.7kMITSep 27, 2026Scanned, no flagged issues