
GIMP Agent MCP
io.github.SarutobiSasuke8由 GitHub 账号 SarutobiSasuke8 发布v0.5.0更新于 Oct 24, 2026
Edit in GIMP 3 with AI agents: live previews, grouped edits, pixel measurements and recipes.
概览
让 AI 助手在运行中的 GIMP 3 里编辑图像,支持预览、测量、成组编辑和批量配方。
- 可以做什么
- 通过本地桥接把 MCP 客户端连接到 GIMP 3,助手可以打开、新建、编辑和导出图像,并保留命名图层、文本、路径和蒙版。它提供预览与前后对比、像素测量、PDB 与 GEGL 查询、可合并为一次撤销的结构化编辑批次,以及十个配方,用于精灵图、贴纸、水印、联系表等任务。无头模式可对文件夹中的图像批量执行相同流程。
- 适用场景
- 适合希望图像编辑留在 GIMP 中并保持可继续编辑的场景,例如分层素材、精灵图、图标集、批量缩放或按文件大小目标导出。也适合需要助手检查并测量实际输出、而不只是生成一张合并文件的用户。
- 运行要求
- 同一台机器上需安装 GIMP 3.2.x、Python 3.11+、uv 和 MCP 客户端。需先启动一次 GIMP 以生成用户配置,安装桥接插件与技能,并在 GIMP 的 Filters 菜单中启动桥接。可选的背景移除需要额外模型运行时,首次使用会下载模型。环境变量 GIMP_AGENT_ALLOW_PYTHON 设为 0 可移除 gimp_run_python 工具。
安装
在 SourceWeft 中
- 打开 控制台中的 GIMP Agent MCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
GIMP Agent MCP
Let your AI agent edit in GIMP. Keep the layers. See what changed.
[GIMP Agent MCP v0.5.0: your AI agent now works in GIMP]
[CI] [Windows GIMP] [Linux GIMP] [macOS GIMP] [PyPI] [License]
Connect Claude, Codex, Cursor or another MCP client to GIMP 3. The agent can work in your open window, inspect the result, refine an edit and save an XCF you can keep working on. Headless mode runs the same workflows over folders of images.
See it working
[GIMP walkthrough: original, three MCP text edits, one Ctrl+Z, redo]
Watch the 20-second MP4 · Open the editable XCF · Reproduce the MCP session
This is a captured-step walkthrough of the real GIMP window, with pauses shortened. Three text layers are changed through MCP in one batch. One Ctrl+Z restores all three; Ctrl+Y brings them back. The text, artwork and background stay on separate named layers. This demonstrates actual tool execution, not a claim that every model will follow the same plan from a prompt.
Try asking
“Change the headline and supporting text in this card. Keep them as text layers, group the edits into one undo step, and show me the result before exporting.”
“Make this transparent artwork into a Telegram sticker with a white outline and shadow. Save a 512 × 512 PNG.”
“Pack these equal-sized PNG frames into a sprite sheet. Keep an XCF master, write the atlas JSON and verify the exported pixels against the originals.”
[Sticker recipe: source and finished sticker]
The included skills guide layered artwork, sprite sheets and batch jobs. They tell the agent to inspect and measure the actual output before calling a job complete.
Install
You need GIMP 3.2.x, Python 3.11+, uv and an MCP client. GIMP must be installed on the same machine as the server. Start GIMP once so its user profile exists.
Restart GIMP after installing or upgrading the bridge. In your open GIMP window, choose Filters → Development → Start Agent Bridge.
Add this configuration to your client's MCP settings:
For Claude Code:
Claude Code can also install the server and skills as a plugin; see skills installation. For AI background removal, install the optional model runtime with uvx --from "gimp-agent-mcp[segmentation]" gimp-agent-mcp serve (use the same arguments in your MCP config). The first use downloads a model; image processing stays local.
Working from source? Run uv sync --extra dev, then uv run gimp-agent-mcp install-plugin. Configure the server as uv run --no-sync --directory /absolute/path/to/repo gimp-agent-mcp serve. --no-sync avoids Windows executable-lock errors when another server is running.
Work in your window, or run a batch
- Your existing window: start the bridge from the menu. Continue editing the same document by hand.
- A shortcut:
uvx gimp-agent-mcp shortcutcreates a launcher that starts GIMP with the bridge enabled. - Agent-launched:
gimp_launch(mode="gui")opens GIMP;mode="headless"runs without a window.
gimp_status and gimp_list_images report the image attached to GIMP's active user display, its selected layer ids, selection bounds and dirty state. When the user says "this layer" or "the selection", read that context before editing. Use gimp_context(image_id) for a specific document or to bring it forward with present=true. If multiple bridges run, gimp_status follows the newest bridge file; isolate test profiles when a user session is active.
What makes this useful
Other GIMP MCP projects also provide TCP bridges and visual feedback. This project's emphasis is editable output, measurement, grouped edits and reproducible validation. Generic API access is broad, but does not guarantee that every GIMP procedure or GEGL operation works with every argument combination.
Tools (40)
Images and items use integer IDs. Colours accept hex, common names, CSS RGB strings or component arrays; enums use nicks returned by the describe tools. Call gimp_help("batch") for grouped-edit examples. gimp_run_python may be disabled, reducing the tool count by one.
Common work no longer needs procedure discovery. For example, use gimp_adjust(layer_id, "brightness_contrast", {"brightness": 0.15}), gimp_canvas(image_id, "crop", width=1200, height=630, x=40, y=20), or gimp_draw(image_id, layer_id, "line", color="#ffffff", x=20, y=40, x2=300, y2=40, line_width=6). Adjustments default to editable layer effects where GIMP supports them; canvas and drawing actions bake pixels or structure. Every result identifies the runtime operation selected before execution.
For visual placement, ask for a diagnostic preview without marking the working image:
Recipes
Brand kits for compose
Store a brand's colours, fonts, assets and canvas sizes once, then refer to them by token. Profiles are JSON files in the per-user config directory (%APPDATA%\gimp-agent-mcp\brands on Windows, ~/Library/Application Support/gimp-agent-mcp/brands on macOS, $XDG_CONFIG_HOME/gimp-agent-mcp/brands elsewhere; GIMP_AGENT_BRANDS_DIR overrides). Font names are checked against the running GIMP when a profile is saved.
Tokens are resolved in the server before anything reaches GIMP, so a token manifest becomes exactly the manifest you would have written by hand. Literal values still work and win over the profile; an unknown token fails with the profile name and its available keys. gimp_help("compose") has the full rules.
Recipe arguments and examples · Asset workflows · Skills
Tested scope and limits
Version 0.5.0, beta. Tested with Windows GIMP 3.2.4, Linux GIMP 3.2.2 (Ubuntu 26.04), and macOS 15 GIMP 3.2.4 on Apple Silicon and Intel. Each platform runs the full smoke suite, targeted capability proof and all 23 everyday editing actions against real GIMP. GIMP 2.10 is unsupported; earlier 3.x releases are not part of the current test matrix.
gimp_edit_batchaccepts bounded layer, text, selection, path, mask and filter edits.gimp_undo_group(image_id, action="start", name="agent: sticker pass")holds a group across calls; end it withaction="end".gimp_statuslists open groups. A client disconnect closes its groups. The supplied name is tracked by the bridge, but GIMP 3's public undo-group API cannot set the Undo History label. The human uses GIMP's Undo/Redo; there is no programmatic undo endpoint.uv run python scripts/undo_group_smoke.pychecks three edits against a pre-turn snapshot after you press Ctrl+Z once in a GUI GIMP session. The headlessgimp-agent-mcp smokecheck covers group lifecycle and disconnect cleanup.- Some GEGL source operations, including linear gradients, are not drawable filters. Use the PDB gradient-fill procedure instead. Vector warp/liquify parity is not claimed; see the warp investigation note.
- Sprite packing takes equal-sized frames (
sprite_sheet_pack, with margin and spacing) or mixed-size PNGs and open layers (sprite_atlas_pack, with padding and trimming). Neither aligns animation or rotates sprites. - Long work reports progress and can be cancelled with
gimp_cancelat checkpoints: between recipe items, batch files and edit-batch steps, between passes ofgimp_run_pythoncode that callscheckpoint(), and before a filter starts. A single GEGL merge already running cannot be interrupted, and GIMP's own per-procedure progress is not forwarded yet.
Verify your setup
CI checks supported Python versions, and separate jobs exercise real GIMP on Windows, Linux and both macOS architectures. Release publication depends on all three real-GIMP workflows passing. The general capability proof measures curves, gradients and brush output and checks batch recovery, document boundaries, diagnostic overlays, nested previews and snapshot cleanup. A second proof resolves and exercises every action in gimp_adjust, gimp_canvas and gimp_draw, recording dimensions, layer counts and measured pixels. See validation details.
Each smoke and proof script runs on a GIMP it launched itself and, when it shuts that GIMP down, waits until the bridge is really gone (port closed, bridge file removed, plug-in process exited) before returning. A bridge that has been asked to shut down refuses new connections and new requests at once. The smoke asserts this in its shutdown (bridge gone before return) check, and CI sets GIMP_AGENT_REQUIRE_OWN_GIMP=1 so a proof that finds an earlier step's bridge still answering fails with that reason instead of borrowing it. This fixed the macOS arm64 live-smoke failures of 15 October 2026, which looked like GIMP crashes but were a proof attaching to the previous step's GIMP while it quit. The live jobs do not retry checks: if the macOS job fails, its log says whether macOS wrote a GIMP crash report, and the macos-gimp-proof-<arch> artifact holds the proof reports, the GIMP launch log and any crash reports.
Architecture and trust
MCP client → stdio server → authenticated loopback TCP → plug-in inside GIMP
The plug-in runs operations on its GLib main loop, without worker threads. It uses a per-install token and only binds to 127.0.0.1. PDB calls, recipes and Python can execute code with your user permissions: connect only trusted clients. Disabling gimp_run_python is not a sandbox. Security · Architecture
Clean-room implementation under Apache-2.0; no code copied from other GIMP MCP projects. Roadmap · Changelog · Report a bug
来源:README.md,提交 1c1ae39
工具
0版本历史
1- v0.5.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分