GIMP MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GIMP_MCP_GIMP | No | Path to the GIMP executable. | |
| GIMP_MCP_EXPERT | No | Enable expert tools. | |
| GIMP_MCP_TIMEOUT | No | Timeout for GIMP operations. | |
| GIMP_MCP_PREVIEW_MAX | No | Maximum preview size. | |
| GIMP_MCP_SESSION_ROOT | No | Directory where session XCFs are stored. | |
| GIMP_MCP_ALLOWED_ROOTS | No | Comma-separated list of allowed filesystem roots for writes. Defaults to ~/Pictures, ~/Downloads, ~/gimp-mcp/workspace, /tmp/gimp-mcp. | ~/Pictures,~/Downloads,~/gimp-mcp/workspace,/tmp/gimp-mcp |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gimp_statusA | Verify the real GIMP binary, Python GI bridge and PDB availability. Read-only. Use this first when diagnosing setup problems. |
| live_bridge_statusA | Return whether the persistent visible GIMP bridge is connected. When connected, successful edits are mirrored into an open GIMP display. |
| session_listA | List active and recovered artwork sessions, including preview paths and undo depth. |
| events_recentC | Return recent live operation events for observers and control UIs. |
| provider_statusB | Report native official-provider account status. No credentials are returned. |
| provider_modelsA | List models exposed by an already-linked ChatGPT, Claude, Gemini or Mistral account. |
| triforce_statusA | Report independently configured AILinux/TriForce status without exposing its bearer token. |
| triforce_modelsB | List models available to the currently logged-in AILinux/TriForce account. |
| session_createB | Create a new isolated artwork session and XCF working document. Returns a session_id used by all editing tools. |
| session_openA | Open an existing image/XCF into an isolated session copy so source files are never edited in-place. |
| session_infoB | Return dimensions, layers and current XCF state for an artwork session without modifying it. |
| session_undoB | Undo the last successful mutating MCP operation using the session snapshot journal. |
| session_redoC | Redo the last snapshot-level undo in this session. |
| session_closeB | Close a session. Set discard=true to delete its temporary XCF and history. |
| document_save_asB | Commit the current session document to an allowed XCF path. Refuses overwrites unless explicitly enabled. |
| document_resizeA | Resize the canvas without scaling pixels. offset_x/y position the old image within the new canvas. |
| document_scaleC | Scale the full image and all layers to width x height. |
| document_cropC | Crop the image to a bounded rectangle in canvas pixels. |
| document_autocropC | Autocrop the image to non-empty content, optionally using a specific layer as the reference drawable. |
| document_flattenB | Flatten all visible image content to one layer. Snapshot-undoable. |
| shape_createC | Create a filled ellipse or rectangle on its own transparent full-canvas layer. |
| layer_createA | Create a transparent layer. Width/height default to canvas dimensions. opacity is 0..100; blend_mode accepts normal/multiply/screen/overlay and other valid GIMP LayerMode names. Returns a persistent layer_id. |
| layer_deleteB | Delete one layer identified by layer_id. The operation is snapshot-undoable. |
| layer_duplicateC | Duplicate a layer and return a new persistent layer_id. |
| layer_resizeC | Resize a layer boundary without scaling its pixels. |
| layer_resize_to_imageC | Resize a layer boundary to the current image canvas. |
| layer_add_alphaC | Ensure a layer has an alpha channel. |
| layer_merge_downC | Merge one layer into the next layer below and return the resulting layer_id. |
| layers_merge_visibleB | Merge all visible layers while preserving hidden layers. |
| layer_updateC | Update layer name, visibility, opacity, absolute offsets, blend mode and/or alpha lock. |
| layer_fillA | Fill the selected area of a layer with a CSS/Gegl color; with no selection this fills the layer. Snapshot-undoable. |
| layer_reorderB | Move a layer to a zero-based stack position; 0 is the top of the layer stack. |
| selection_setC | Create/combine geometry selections or modify the current selection. Polygon points are a flat x/y list. |
| guide_addC | Add a horizontal or vertical image guide. |
| guide_listC | List image guides and positions. |
| guide_deleteC | Delete one image guide by guide_id. |
| import_layerC | Import an allowed image file as a new layer in the current artwork session. |
| text_createB | Create an editable GIMP text layer at pixel position x/y. Optional color accepts CSS/Gegl syntax. |
| text_updateC | Update an existing editable GIMP text layer. |
| transform_layerC | Transform one layer. values may be arrays or semantic objects: translate=[dx,dy] or {x,y}/{dx,dy}; rotate=[degrees] or {degrees,cx,cy}; scale=[x0,y0,x1,y1] or {x,y,width,height}. |
| filter_listA | Discover available GEGL operations. Use this before filter_describe/filter_apply when the exact operation name is unknown. |
| filter_describeA | Describe a GEGL operation's configurable properties so an AI can construct a valid filter_apply call. |
| filter_applyB | Apply a GEGL operation as a non-destructive GIMP DrawableFilter to a layer. Discover parameters first if uncertain. |
| export_imageB | Export the session to PNG/JPEG/WebP or another GIMP-supported format inferred from the extension. |
| export_artworkC | Export the current artwork as an editable XCF project, PNG, or JPEG. |
| publish_artwork_downloadsB | Export the final artwork to XCF, JPEG and PNG and return three expiring HTTPS download links for external/autonomous clients. |
| preview_renderB | Render a bounded PNG preview. A successful preview also refreshes the coordinate-overlay and rolling GIF vision resources without modifying the artwork. |
| vision_captureB | Force a fresh AI vision frame using GIMP canvas pixels. Prefer the visible live GIMP image; fall back to the current session preview. Re-read returned MCP resources whenever the AI wants to visually review progress. |
| pdb_searchB | Expert discovery: search GIMP PDB procedure names without exporting thousands of procedures as MCP tools. |
| pdb_callA | Expert GIMP 3 PDB bridge. Calls a discovered official PDB procedure against a session. Use pdb_describe first. GimpImage args accept any value and bind to the session; Drawable/Layer/Item args accept layer_id; GFile accepts a path; RunMode accepts NONINTERACTIVE/INTERACTIVE/WITH_LAST_VALS. |
| headless_workspace_statusA | Report visible/headless workspace state and configured headless GIMP worker pool without exposing credentials. |
| pdb_describeA | Expert discovery: inspect the arguments and returns of one GIMP PDB procedure. This tool is read-only. |
| artwork_job_createB | Create and persist an AI-to-GIMP artwork job without running it yet. |
| artwork_job_statusB | Return persistent artwork-job state and progress. |
| artwork_job_listB | List persisted artwork jobs, newest active jobs first. |
| artwork_job_runC | Run a queued/paused artwork job through the selected AI provider and semantic GIMP tools. |
| artwork_job_pauseA | Cooperatively pause an artwork job at the next safe step boundary. |
| artwork_job_resumeA | Clear the pause flag for an artwork job. Call artwork_job_run to continue execution. |
| artwork_job_cancelC | Cancel an artwork job at the next safe step boundary. |
| artwork_followupC | Apply a follow-up art direction to the existing session and preserve undo history. |
| artwork_make_it_coolerC | Ask the selected model for a few targeted improvements and execute them through safe semantic GIMP actions. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 61 tools
Many tools target distinct GIMP operations, but the set has overlapping persistence/export tools (export_artwork, export_image, publish_artwork_downloads, document_save_as), multiple status tools, and several artwork-job/session tools that could be confused. Descriptions generally help differentiate, but boundaries are not consistently sharp across all 61 tools.
Mostly snake_case and readable, but conventions mix noun_verb (layer_create, session_open) and verb_noun (export_artwork, import_layer, transform_layer), plus phrasing like artwork_make_it_cooler. This is understandable but not a predictable single pattern.
61 tools is far beyond the typical well-scoped MCP server range and creates a very heavy surface. Even for a complex domain like GIMP, this is an extreme count that burdens discovery and selection.
The set covers sessions, layers, selections, text, shapes, guides, GEGL filters, undo/redo, export, and jobs, with pdb_call providing an expert escape hatch. Some common semantic operations (e.g. masks, freehand/path selection, many paint tools) are only reachable through generic PDB calls, leaving minor gaps.