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. |
| 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_statusA | Report optional official-provider account status through the shared AICoder adapter. No credentials are returned. |
| provider_modelsA | List models exposed by an already-linked ChatGPT, Claude, Gemini or Mistral account. |
| triforce_statusB | Report the existing AILinux/TriForce login reused from AICoder without exposing its bearer token. |
| triforce_modelsB | List models available to the currently logged-in AILinux/TriForce account. |
| session_createC | 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. |
| layer_createB | Create a transparent layer. Width/height default to canvas dimensions. Returns a persistent GIMP tattoo-based layer_id. |
| layer_deleteB | Delete one layer identified by layer_id. The operation is snapshot-undoable. |
| layer_updateB | Rename a layer and/or set visibility/opacity. Opacity is percent 0..100. |
| layer_reorderB | Move a layer to a zero-based stack position; 0 is the top of the layer stack. |
| selection_setB | Set the current selection. rectangle uses pixel coordinates and dimensions; other actions ignore geometry. |
| text_createB | Create an editable GIMP text layer at pixel position x/y. Size is pixels; returns the new layer_id. |
| transform_layerB | Transform one layer. translate=[dx,dy] pixels; rotate=[degrees] or [degrees,cx,cy]; scale=[x0,y0,x1,y1]. |
| 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. |
| preview_renderB | Render a bounded PNG preview of the current artwork for vision review. Returns a gimp-preview resource URI. |
| pdb_searchB | Expert discovery: search GIMP PDB procedure names without exporting thousands of procedures as MCP tools. |
| pdb_describeA | Expert discovery: inspect the arguments and returns of one GIMP PDB procedure. This tool is read-only. |
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 28 tools
Most tools have clearly distinct purposes (e.g., layer_create vs. layer_update vs. layer_delete). However, there is potential confusion between session_undo/redo and GIMP's native undo/redo, and provider_status/triforce_status overlap in reporting account status.
All tool names follow a consistent snake_case verb_noun pattern (e.g., layer_create, session_close, filter_apply). No deviations or mixed conventions.
28 tools is slightly heavy but reasonable for a comprehensive image editing integration. Each tool appears to serve a distinct function, though some grouping (e.g., provider/triforce status) could reduce count.
The surface covers core operations: session management, layer manipulation, filters, text, export, and discovery. Minor gaps exist, such as no direct layer merge or a tool to list all layers in a session (though session_info returns layer info).