gimp-agent-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GIMP_AGENT_ALLOW_PYTHON | No | Set to 0 to disable the gimp_run_python tool, which executes arbitrary Python inside GIMP. Defaults to enabled when unset. | 1 |
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 | Check whether GIMP and the agent bridge are reachable. Returns GIMP version, mode, and open images. |
| gimp_launchB | Start GIMP 3 with the bridge running. mode='gui' opens the normal window; 'headless' runs gimp-console with no UI. |
| gimp_shutdownA | Stop the bridge. quit_gimp defaults to True for headless sessions and False for the GUI (unsaved work is not prompted for). |
| gimp_list_imagesA | List open images with ids, dimensions, file path, and layer count. |
| gimp_image_infoA | Full structure of one image: layer tree with item ids, channels, paths, selection bounds, resolution. |
| gimp_new_imageA | Create an RGB image with one layer. fill: 'transparent', 'white', 'black', 'foreground', 'background' or any colour. |
| gimp_openB | Open an image file (PNG, JPEG, WebP, XCF, PSD, SVG, ...) and return its structure. |
| gimp_exportA | Export an image; the extension chooses the format (.png .webp .jpg .tiff .bmp .gif .xcf). options are passed to the format's export procedure, e.g. {"quality": 0.85} for JPEG (0..1), {"quality": 80, "lossless": false} for WebP, {"compression": 9} for PNG. Unknown option names return the valid list. |
| gimp_close_imageA | Close an image without saving. |
| gimp_renderB | Render the current state of an image as a PNG you can see. Optional layer_id isolates one layer; region={x,y,width,height} crops before scaling. |
| gimp_pdb_searchA | Search GIMP's Procedure Database by words in the procedure name (e.g. 'image scale', 'layer text', 'file png'). |
| gimp_pdb_describeA | Describe a PDB procedure: arguments with types, defaults and enum choices, plus return values. |
| gimp_pdb_callA | Call any PDB procedure by name with arguments keyed by name. Pass images/items as ids, colours as strings, enums by nick. |
| gimp_filter_searchB | Search the GEGL operations available as filters (e.g. 'blur', 'shadow', 'levels', 'noise'). |
| gimp_filter_describeA | Describe a GEGL operation's properties (names, types, ranges, defaults). |
| gimp_apply_filterB | Apply a GEGL operation to a layer. mode='merge' bakes it in; mode='append' adds a non-destructive layer effect. |
| gimp_layer_effectsC | List the non-destructive filters currently attached to a layer. |
| gimp_measureA | Measure pixels instead of guessing from a render. kind='color' (rgba at image x,y), 'bbox' (bounding box of non-transparent pixels), 'histogram' (mean/median/std per channel), 'dominant' (top k colours). Defaults to the selected layer. |
| gimp_snapshotA | Take a hidden snapshot of an image's current state so gimp_render_compare can show before/after later. |
| gimp_render_compareB | Side-by-side render of a snapshot and the current image. panels is a comma list of before, after, diff (diff = pixel difference, black means identical). |
| gimp_selectA | Selection in one tool. mode: rect, ellipse (x,y,width,height), color (color, threshold 0..1, layer_id), alpha (layer_id: select the layer's opaque pixels), item (item_id: path or channel), all, none, invert, grow/shrink/feather/border (amount), bounds (just report). op: replace, add, subtract, intersect. Returns the selection bounds. |
| gimp_layer_maskA | Layer masks. action='add' with type selection|alpha|alpha-transfer|white|black|copy; 'apply' bakes the mask in; 'remove' discards it; 'enable'/'disable' toggle it; 'show'/'hide' preview it. |
| gimp_layerB | Layer operations. action: new (image_id, name, width, height, fill, x, y, position), set (name, visible, opacity, mode, x, y, lock), move (dx, dy), reorder (position, parent_id), duplicate, merge_down, delete, resize_to_image, scale (width, height), add_alpha, crop_to_content, info. |
| gimp_layer_effectA | Edit or delete a non-destructive layer effect (ids from gimp_layer_effects). action='set' updates params/visible/opacity/blend_mode; 'delete' removes it. |
| gimp_list_fontsB | List installed font names, optionally filtered by a regex. |
| gimp_textA | Create a text layer (image_id + text) or edit one (layer_id). size in px, font by name (gimp_list_fonts), colour, justify left|center|right|fill, spacing, optional fixed box. |
| gimp_pathB | Vector paths. action='create' (image_id, strokes=[{type:'line'|'bezier', points:[[x,y],...], closed:bool}]; bezier points after the first are control1, control2, anchor triples), 'select' (path to selection), 'stroke' (draw it on layer_id with color and width), 'fill' (fill it on layer_id), 'delete'. |
| gimp_remove_backgroundA | AI subject cut-out. Runs a segmentation model on the layer and writes the result as an editable layer mask (mode='mask') or bakes it into the alpha channel (mode='apply'). Needs the optional segmentation extra. Models: u2net (default), isnet-general-use, u2net_human_seg, isnet-anime, silueta. |
| gimp_run_pythonA | Run Python inside GIMP. Gimp, Gegl, Gio, GLib and helpers image_by_id/item_by_id/make_color are available; the namespace persists between calls. Returns stdout plus the expression value or |
| gimp_list_recipesA | List tested multi-step recipes and their parameters. |
| gimp_run_recipeC | Run a recipe by name with parameters. Recipes are Python jobs executed inside GIMP with defaults applied. |
| gimp_batch_recipeA | Run a recipe over every file matching input_glob, writing to output_dir. Recipes must accept input_path and output_path. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| gimp_workflow_guide | How to work with GIMP effectively through this server. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| recipes_resource |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SarutobiSasuke8/gimp-agent-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server