Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

GIMP Agent MCP

PYPI · GIMP-AGENT-MCP · SCANNED SEP 21

Edit in GIMP 3 with AI agents: live previews, grouped edits, pixel measurements and recipes.

Available components

+18 this week 70 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 1 of 29 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • License check failed: the license (Apache Software License) isn't a recognized OSI-approved license. See how to fix → Fail
  • Actively maintained (last published 12 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability66
  • 50% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 3679 tokens (~91/item across 40 items; 39 tools + 1 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management53
  • Stability observed for 16 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (95% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "gimp_shutdown" implies "shutdown" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 41 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the GIMP Agent MCP server?

GIMP Agent MCP runs locally as a PyPI package, launched with uvx gimp-agent-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · gimp-agent-mcp

# add to Claude Code
claude mcp add sarutobisasuke8-gimp-agent-mcp -- uvx gimp-agent-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "sarutobisasuke8-gimp-agent-mcp": {
      "command": "uvx",
      "args": [
        "gimp-agent-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "sarutobisasuke8-gimp-agent-mcp": {
      "command": "uvx",
      "args": [
        "gimp-agent-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add sarutobisasuke8-gimp-agent-mcp -- uvx gimp-agent-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sarutobisasuke8-gimp-agent-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "gimp-agent-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add sarutobisasuke8-gimp-agent-mcp --command uvx --arg gimp-agent-mcp
# ~/.hermes/config.yaml
mcp_servers:
  sarutobisasuke8-gimp-agent-mcp:
    command: "uvx"
    args: ["gimp-agent-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "sarutobisasuke8-gimp-agent-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "gimp-agent-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add sarutobisasuke8-gimp-agent-mcp -t stdio -c uvx -a gimp-agent-mcp
// mcp.json
{
  "mcpServers": {
    "sarutobisasuke8-gimp-agent-mcp": {
      "command": "uvx",
      "args": [
        "gimp-agent-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +16
    • Malware scan: unverified → pass security
  • 14 Sept 26 −15
    • Malware scan: pass → unverified security
  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 +22
    • Malware scan: unverified → pass security
    • Judged manipulation: unverified → pass security
    • Schema quality: unverified → good functional
  • 8 Sept 26 −6
    • Judged manipulation: pass → unverified security
    • Malware scan: unverified → pass security
    • Schema quality: 3248 → 3679 functional
    • Schema quality: excellent → unverified functional
    • Package version: 0.4.0 → 0.5.0 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed pypi/gimp-agent-mcp@0.5.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 29 packages
Packages resolved 29
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 39 exposed · ~3,218 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
gimp_adjust ~120

Common adjustments without discovery. action: brightness_contrast, hue_saturation, curves, desaturate, invert, blur, sharpen, noise, pixelate. mode='append' keeps GEGL actions editable; mode='merge' bakes pixels. curves is destructive and needs params={channel:'value', points:[0,0,1,1]}. Returns the installed operation description used.

NameTypeReqDescription
actionstringyes
layer_idintegeryes
modestring
name
params

Structured output declared, but exposes no named fields.

No examples provided.

gimp_apply_filter ~179

Apply a GEGL operation to a layer. mode='merge' bakes it in; mode='append' adds a non-destructive layer effect. Examples: white outline = op="gegl:dropshadow", params={"x":0,"y":0,"radius":0,"grow-radius":8,"color":"white"}; soft shadow = {"x":0,"y":6,"radius":12,"opacity":0.4}; blur = op="gegl:gaussian-blur", params={"std-dev-x":4,"std-dev-y":4}. gimp_help("filters") lists the useful ops.

NameTypeReqDescription
blend_mode
layer_idintegeryes
modestring
name
opstringyes
opacity
params

Structured output declared, but exposes no named fields.

No examples provided.

gimp_batch_recipe ~70

Run a recipe over every file matching input_glob, writing to output_dir. Recipes must accept input_path and output_path.

NameTypeReqDescription
input_globstringyes
namestringyes
output_dirstringyes
output_ext
params

Structured output declared, but exposes no named fields.

No examples provided.

gimp_canvas ~122

Common canvas operations without PDB discovery. action: scale, crop, resize, rotate (angle 90/180/270), flip (direction horizontal/vertical), merge_visible, flatten. Operations bake pixels or layer structure and return the installed PDB description plus final image info.

NameTypeReqDescription
actionstringyes
angle
direction
height
image_idintegeryes
merge_typestring
width
xinteger
yinteger

Structured output declared, but exposes no named fields.

No examples provided.

gimp_close_image ~24

Close an image without saving.

NameTypeReqDescription
image_idintegeryes

Structured output declared, but exposes no named fields.

No examples provided.

gimp_context ~74

Read a document's selected layers, selection bounds and bridge colour/brush context. Optionally select layers or present a GUI document. With multiple images pass image_id; focused-image detection is unavailable, never inferred from list order.

NameTypeReqDescription
image_id
presentboolean
selected_layer_ids

Structured output declared, but exposes no named fields.

No examples provided.

gimp_draw ~147

Fill or draw without PDB discovery. action: fill_layer, fill_selection, rectangle, ellipse, rectangle_outline, ellipse_outline, line. Colours use the normal CSS/#hex convention; coordinates are image pixels. Shapes clear their temporary selection. Drawing bakes pixels and returns every installed PDB operation used.

NameTypeReqDescription
actionstringyes
colorstring
height
image_idintegeryes
layer_idintegeryes
line_widthnumber
methodstring
width
x
x2
y
y2

Structured output declared, but exposes no named fields.

No examples provided.

gimp_drop_snapshot ~44

Release a stored comparison snapshot. At most 16 may be retained per bridge; snapshots are also cleaned up when the bridge closes.

NameTypeReqDescription
snapshot_idintegeryes

Structured output declared, but exposes no named fields.

No examples provided.

gimp_edit_batch ~146

Run 1..100 edits on one image in ONE undo group. steps=[{op:'layer'|'text'|'select'|'path'|'layer_mask'|'apply_filter', params:{...}}]. Params use the corresponding tool arguments; image_id is injected. Reference an earlier result with {'$ref':'0.id'}. Check complete/error: failure stops later steps, preserves partial work, and always closes the undo group. One Ctrl+Z in GIMP reverts it; this is not automatic rollback or programmatic undo. No edits by another bridge request interleave within the batch.

NameTypeReqDescription
image_idintegeryes
stepsarrayyes

Structured output declared, but exposes no named fields.

No examples provided.

gimp_export ~116

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.

NameTypeReqDescription
image_idintegeryes
options
pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

gimp_filter_describe ~34

Describe a GEGL operation's properties (names, types, ranges, defaults).

NameTypeReqDescription
opstringyes

Structured output declared, but exposes no named fields.

No examples provided.

gimp_filter_search ~48

Search the GEGL operations available as filters (e.g. 'blur', 'shadow', 'levels', 'noise').

NameTypeReqDescription
limitinteger
querystring

Structured output declared, but exposes no named fields.

No examples provided.

gimp_help ~58

Read this first. How to work with GIMP through this server, by topic: start, filters, colours, text, masks, paths, layers, measure, recipes, compose, errors, or all.

NameTypeReqDescription
topicstring
NameTypeReqDescription
resultstringyes

No examples provided.

gimp_image_info ~39

Full structure of one image: layer tree with item ids, channels, paths, selection bounds, resolution.

NameTypeReqDescription
image_idintegeryes

Structured output declared, but exposes no named fields.

No examples provided.

gimp_launch ~55

Start GIMP 3 with the bridge running. mode='gui' opens the normal window; 'headless' runs gimp-console with no UI.

NameTypeReqDescription
modestring
wait_secondsinteger

Structured output declared, but exposes no named fields.

No examples provided.

gimp_layer ~192

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.

NameTypeReqDescription
actionstringyes
dx
dy
fill
height
image_id
layer_id
local_originboolean
lock
merge_type
mode
name
opacity
parent_id
position
visible
width
x
y

Structured output declared, but exposes no named fields.

No examples provided.

gimp_layer_effect ~84

Edit or delete a non-destructive layer effect (ids from gimp_layer_effects). action='set' updates params/visible/opacity/blend_mode; 'delete' removes it.

NameTypeReqDescription
actionstring
blend_mode
filter_idintegeryes
opacity
params
visible

Structured output declared, but exposes no named fields.

No examples provided.

gimp_layer_effects ~31

List the non-destructive filters currently attached to a layer.

NameTypeReqDescription
layer_idintegeryes
NameTypeReqDescription
resultarrayyes

No examples provided.

gimp_layer_mask ~88

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.

NameTypeReqDescription
actionstring
layer_idintegeryes
typestring

Structured output declared, but exposes no named fields.

No examples provided.

gimp_list_fonts ~35

List installed font names, optionally filtered by a regex.

NameTypeReqDescription
filterstring
limitinteger

Structured output declared, but exposes no named fields.

No examples provided.

gimp_list_images ~25

List open images with ids, dimensions, file path, and layer count.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultarrayyes

No examples provided.

gimp_list_recipes ~20

List tested multi-step recipes and their parameters.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultarrayyes

No examples provided.

gimp_measure ~115

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.

NameTypeReqDescription
channels
image_id
kinteger
kindstringyes
layer_id
thresholdinteger
x
y

Structured output declared, but exposes no named fields.

No examples provided.

gimp_new_image ~60

Create an RGB image with one layer. fill: 'transparent', 'white', 'black', 'foreground', 'background' or any colour.

NameTypeReqDescription
fillstring
heightinteger
widthinteger

Structured output declared, but exposes no named fields.

No examples provided.

gimp_open ~41

Open an image file (PNG, JPEG, WebP, XCF, PSD, SVG, ...) and return its structure.

NameTypeReqDescription
pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

gimp_path ~148

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'.

NameTypeReqDescription
actionstring
color
image_id
layer_id
name
opstring
path_id
strokes
widthnumber

Structured output declared, but exposes no named fields.

No examples provided.

gimp_pdb_call ~162

Call any PDB procedure by name with arguments keyed by name. Pass images/items as ids, colours as strings, enums by nick. Example: name="gimp-image-scale", args={"image": 3, "new-width": 800, "new-height": 600}; name="gimp-image-select-round-rectangle", args={"image": 3, "operation": "replace", "x": 10, "y": 10, "width": 200, "height": 80, "corner-radius-x": 20, "corner-radius-y": 20}. Use gimp_pdb_describe first when unsure.

NameTypeReqDescription
args
namestringyes
undo_groupboolean

Structured output declared, but exposes no named fields.

No examples provided.

gimp_pdb_describe ~38

Describe a PDB procedure: arguments with types, defaults and enum choices, plus return values.

NameTypeReqDescription
namestringyes

Structured output declared, but exposes no named fields.

No examples provided.

gimp_pdb_search ~53

Search GIMP's Procedure Database by words in the procedure name (e.g. 'image scale', 'layer text', 'file png').

NameTypeReqDescription
limitinteger
querystring

Structured output declared, but exposes no named fields.

No examples provided.

gimp_remove_background ~115

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.

NameTypeReqDescription
alpha_mattingboolean
layer_idintegeryes
modestring
modelstring

Structured output declared, but exposes no named fields.

No examples provided.

gimp_render ~108

Render an image as PNG. layer_id isolates a layer; region crops. Diagnostic overlays may include grid, layers, selection and points. points=[{"x": 100, "y": 80, "label": "target"}]. Overlays affect only the returned preview.

NameTypeReqDescription
grid_sizeinteger
image_id
layer_id
max_sizeinteger
overlay
points
region

No output schema declared.

No examples provided.

gimp_render_compare ~82

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).

NameTypeReqDescription
drop_snapshotboolean
image_idintegeryes
max_sizeinteger
panelsstring
snapshot_idintegeryes

No output schema declared.

No examples provided.

gimp_run_python ~81

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 `result`. Pass image_id to wrap the call in one undo step.

NameTypeReqDescription
codestringyes
image_id

Structured output declared, but exposes no named fields.

No examples provided.

gimp_run_recipe ~42

Run a recipe by name with parameters. Recipes are Python jobs executed inside GIMP with defaults applied.

NameTypeReqDescription
namestringyes
params

Structured output declared, but exposes no named fields.

No examples provided.

gimp_select ~176

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.

NameTypeReqDescription
amount
color
height
image_idintegeryes
item_id
layer_id
modestring
opstring
sample_mergedboolean
thresholdnumber
width
x
y

Structured output declared, but exposes no named fields.

No examples provided.

gimp_shutdown ~44

Stop the bridge. quit_gimp defaults to True for headless sessions and False for the GUI (unsaved work is not prompted for).

NameTypeReqDescription
quit_gimp

Structured output declared, but exposes no named fields.

No examples provided.

gimp_snapshot ~39

Take a hidden snapshot of an image's current state so gimp_render_compare can show before/after later.

NameTypeReqDescription
image_idintegeryes

Structured output declared, but exposes no named fields.

No examples provided.

gimp_status ~31

Check whether GIMP and the agent bridge are reachable. Returns GIMP version, mode, and open images.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

gimp_text ~132

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.

NameTypeReqDescription
box_height
box_width
color
font
image_id
justify
layer_id
letter_spacing
line_spacing
name
size
text
x
y

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the GIMP Agent MCP server?

GIMP Agent MCP is listed in the public MCP registry as io.github.SarutobiSasuke8/gimp-agent-mcp. Edit in GIMP 3 with AI agents: live previews, grouped edits, pixel measurements and recipes. This page covers its PyPI package (gimp-agent-mcp).

Is the GIMP Agent MCP server safe to use?

GIMP Agent MCP scores 70 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the GIMP Agent MCP server expose?

GIMP Agent MCP exposes 39 tools: gimp_help, gimp_status, gimp_launch, gimp_shutdown, gimp_context, and 34 more. Their descriptions and schemas cost roughly 3,218 tokens of context every time the server is loaded.

Is the GIMP Agent MCP server still maintained?

GIMP Agent MCP is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.