GIMPBLOCK
GIMP MCP server
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://www.gnu.org/licenses/gpl-3.0) [](https://claude.ai/desktop) [](https://gimp.org) [](https://modelcontextprotocol.io) [](https://coderabbit.ai)
Demo
Full demo (with audio): https://github.com/maorcc/gimp-mcp/raw/main/docs/demo.mp4
AI agent using GIMP MCP to remove a background, edit a character's expression, and verify results — all through natural language via Claude
Overview
GIMP MCP bridges GIMP's professional image editing capabilities with AI assistants through the Model Context Protocol. It lets you edit images by describing what you want — and gives the AI a live visual feedback channel to verify each change before moving on.
What makes it different from other GIMP integrations:
- The AI can see the image at any point in the workflow without saving to disk (
get_state_snapshot) - Supports fully autonomous multi-step pipelines: open → edit → verify → refine → export
- 56 dedicated tool commands covering every major GIMP operation
- Fully compatible with GIMP 3.2.x (all breaking API changes resolved)
Key Features
01fdc0e7cac1OBSERVED · 2026-10-06Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add gimp-mcp -- uvx gimp-mcp
{
"mcpServers": {
"gimp-mcp": {
"command": "uvx",
"args": [
"gimp-mcp"
]
}
}
}Exposed tools (79)
50 read · 25 write · 4 destructive. Blast radius: 4 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
add_text | write | Add a text layer to an image. |
adjust_brightness_contrast | read | Adjust brightness and contrast of a layer. |
adjust_color_balance | read | Adjust color balance (shadows / midtones / highlights) of a layer. |
adjust_curves | read | Adjust tonal curves for a layer. |
adjust_hue_saturation | read | Adjust hue, saturation, and lightness of a layer. |
apply_drop_shadow | destructive | Apply a drop shadow effect to a layer. |
apply_emboss | write | Apply an emboss (bas-relief) effect to a layer. |
apply_gaussian_blur | write | Apply Gaussian blur as a destructive filter operation. |
apply_noise | write | Add noise/grain to a layer. |
apply_pixelate | write | Pixelate a layer using a mosaic/block effect. |
apply_vignette | write | Apply a vignette darkening effect around the edges of a layer. |
auto_levels | read | Automatically stretch the tonal range of an image (auto levels / auto stretch contrast). |
batch_export | read | Export all open images (or a specific one) to a directory. |
batch_resize | read | Resize all open images to a common target size. |
blur | write | Apply Gaussian blur to a layer. |
call_api | read | Call GIMP 3.2 API methods through PyGObject console. |
check_server | read | Check whether the GIMP MCP plugin socket is reachable and responding. |
close_image | read | Close an image, optionally saving as XCF first. |
convert_color_mode | read | Convert an image to a different color mode. |
create_layer | write | Create and insert a new layer into an image. |
crop_to_rect | read | Crop the image canvas to an explicit rectangle. |
crop_to_selection | read | Crop the image canvas to the current selection bounds. |
delete_layer | destructive | Delete a layer from an image. |
denoise | read | Reduce noise in a layer using GEGL noise-reduction. |
desaturate | read | Convert a layer to grayscale (desaturate). |
draw_ellipse | read | Draw an ellipse outline (stroke only) on a layer. |
draw_line | read | Draw a straight line on a layer. |
draw_rectangle | read | Draw a rectangle outline (stroke only) on a layer. |
duplicate_layer | write | Duplicate a layer and insert the copy above it. |
edit_text | write | Edit an existing text layer |
export_icon_sizes | write | Export an image as a complete icon set for Android or iOS. |
export_image | read | Export the current image to a raster file (PNG, JPEG, WEBP, TIFF). |
export_social_media_kit | read | Export an image resized for multiple social media platforms. |
export_sprite_sheet | read | Combine multiple frames into a sprite sheet PNG. |
export_web_optimized | read | Export an image as both JPEG and PNG, choosing the smaller format. |
fill_ellipse | read | Fill an elliptical region with a solid color. |
fill_layer | read | Fill an entire layer with a solid color. |
fill_rectangle | read | Fill a rectangular region with a solid color. |
fill_selection | read | Fill the current selection with a color or fill type. |
flatten_image | read | Flatten all layers into a single background layer. |
flip_image | read | Flip the entire image horizontally or vertically. |
get_context_state | read | Get the current GIMP context state (colors, brush, settings). |
get_gimp_info | read | Get comprehensive information about the GIMP installation and environment. |
get_histogram | read | Get histogram statistics for a channel of the active layer. |
get_image_bitmap | read | Get the current open image in GIMP as an Image object with optional scaling and region selection. |
get_image_metadata | read | Get metadata about the current open image in GIMP without the bitmap data. |
get_pixel_color | read | Get the color of a single pixel. |
get_selection_bounds | read | Get the bounding rectangle of the current selection. |
get_state_snapshot | write | Return a live visual snapshot of the current image state — no file save needed. |
gradient_fill | read | Fill a layer or selection with a gradient. |
invert_colors | write | Invert all colors in a layer (create a negative). |
invert_selection | read | Invert the current selection (select what is not selected). |
list_fonts | read | List available fonts installed in GIMP. |
list_images | read | List all images currently open in GIMP. |
list_layers | read | List all layers in an image with their properties. |
merge_visible_layers | write | Merge all visible layers into a single layer. |
modify_selection | write | Grow, shrink, feather, border, or sharpen the current selection. |
new_canvas | write | Create a new blank canvas in GIMP and open it in a display window. |
open_image | write | Open an image file in GIMP and create a display window. |
redo | read | Redo one or more previously undone operations on an image. |
rename_layer | write | Rename a layer. |
reorder_layer | write | Move a layer to a new stack position. |
resize_canvas | read | Resize the image canvas without scaling the content. |
restart_server | destructive | Drop and re-establish the connection to the GIMP MCP plugin. |
rotate_image | read | Rotate the entire image. |
save_xcf | write | Save the current image as a GIMP XCF file (preserves all layers and metadata). |
scale_image | read | Scale an image to exact pixel dimensions. |
scale_to_fit | read | Scale an image to fit within a bounding box, preserving aspect ratio. |
select_all | read | Select the entire image canvas. |
select_by_color | read | Select regions by color similarity. |
select_ellipse | write | Create an elliptical selection. |
select_none | destructive | Remove / deselect all selections. |
select_rectangle | write | Create a rectangular selection. |
set_active_image | write | Raise a specific image to the front / make it active in GIMP. |
set_colors | write | Set the GIMP foreground and/or background color. |
set_layer_properties | write | Set properties on an existing layer. |
sharpen | read | Sharpen a layer using unsharp mask. |
undo | read | Undo one or more operations on an image. |
warp_region | read | Warp / liquify a region of the image by pushing pixels in a direction. |
Trust audit
BLOCKgrade D · trust 62/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- none-observed
- Shell
- declared (4 observation(s))
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (15)
exec(command, context)
vals = [str(eval(e)) for e in a[1]]
exec(cmd, self.context)
__import__(module_name)
apply_drop_shadow, delete_layer, restart_server, select_none
.coderabbit.yaml
.pre-commit-config.yaml
raw = base64.b64decode(b64)
raw = base64.b64decode(r['results']['image_data'])
as_bytes = base64.b64decode(base64_data)
raw_bytes = base64.b64decode(b64_data)
raw = base64.b64decode(r['results']['image_data'])
docs/demo.mp4
docs/mcpInAction.gif
tests/continuous_edit_test/files/bg_night_2048.png
Gates applied: no_behavioural_pass.
01fdc0e7cac1full audit observations/trust-audit/mcp-server/maorcc__gimp.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-06 | 01fdc0e7cac1 | BLOCK | D | 62 | first audit |
Questions
What is the GIMP MCP server?
GIMP MCP server
What tools does GIMP expose?
79 in total: 50 read-only, 25 that write, and 4 that can delete or overwrite (apply_drop_shadow, delete_layer, restart_server, select_none). Every one is listed on this page with its risk.
Is GIMP safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (62/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 4 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does GIMP need?
No credential environment variables were found in its source, so it appears to need none.
How current is this page?
The grade is for one exact copy of the source (01fdc0e7cac1), read on 2026-10-06. The repository is watched and re-audited when it changes.