GIMP Studio MCP

com.twelvetake由 twelvetake.com 发布v0.4.0更新于 Oct 24, 2026

Enables AI assistants to edit images in GIMP 3, with tools for print and DTF transfer production.

已验证STDIO仅桌面开发者工具媒体与设计

概览

AI 生成的概览

本地 MCP 服务器,让 AI 助手在 GIMP 3 中编辑图像,并支持印刷与 DTF 转印生产流程。

可以做什么
  • 打开、新建并导出图像,支持保留透明通道的 PNG 导出与元数据读取
  • 管理图层、蒙版、Alpha 通道与选区,包括边缘感知抠图与硬边颜色抠除
  • 绘画、创建和设置文字图层,并调整颜色、色调与滤镜
  • 准备印刷与 DTF 输出:白色底墨、边缘收缩、按衣服颜色智能去底、半色调分色、拼版与 300 DPI 导出
  • 通过可视预览、直方图与区域读取检查图像,并管理 ICC 色彩配置
  • 对图像状态做检查点与回滚,并通过逃生工具执行原始 GIMP Python
适用场景
适合希望助手完成常规 GIMP 修图而无需手写 GIMP Python 的场景,尤其适合印刷或 DTF 转印准备,例如衣服颜色去底、底墨和透明胶片用 PNG 导出。
运行要求
以 stdio 在本地运行(PyPI 包,可用 uvx 启动或经 pipx 安装)。需要 GIMP 3.x(在 3.2.4 上测试)、Python 3.10+ 以及兼容 MCP 的客户端。需用 install-plugin 命令安装 GIMP 端桥接并重启 GIMP。可选环境变量可控制无头模式、exec、端口、超时和 GIMP 可执行文件路径。
安装前请注意
与本地用户处于同一信任边界:任何接入的智能体都能操作 GIMP,并可通过原始 exec 工具在 GIMP 进程中执行任意 Python,因此打开的图片中若藏有提示注入会有风险。可设置 GIMP_MCP_NO_EXEC=1 跳过该工具。可能进行破坏性编辑,建议使用检查点。桥接仅监听本机回环地址并使用会话令牌。目前为 beta 版本。

安装

在 SourceWeft 中

  1. 打开 控制台中的 GIMP Studio MCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

GIMP Studio MCP

A TwelveTake Studios project.

[PyPI] [CI] [Python] [Tools] [License: MIT] [Buy Me a Coffee] [Ko-fi]

Listed in the MCP Registry as mcp-name: com.twelvetake/gimp-studio-mcp.

GIMP Studio MCP is a Model Context Protocol server that enables AI assistants to edit images in GIMP 3. Every tool returns a structured result with captured errors, and checkpoints restore an earlier state of the image on request. It includes tools for print and DTF (direct-to-film) transfer production.

119 tools across 13 groups, each tested against a real GIMP instance.

Status: beta. Tested on GIMP 3.2.4, headless and live. Releases up to 0.3.3 were also tested on GIMP 3.0.4.

Why this server

It is built around print and DTF production: physical dimensions at print resolution, garment-color knockout, and transparent PNG output ready for film. Every tool returns a structured result, so the assistant does not need to write GIMP Python for routine edits.

The design rules (every tool follows these)

  1. Structured returns: { ok, result, stdout, warnings, error }; output is never lost, even on error.
  2. Raw exec stays: the universal escape hatch (gimp_exec) survives, with proper capture. (Opt out with GIMP_MCP_NO_EXEC=1; see Security model.)
  3. Compat / quirk layer: one module handles GIMP 3 differences and known issues.
  4. Mode-agnostic tools: work identically whether GIMP is live (visible canvas) or headless.
  5. Vision-first: get_bitmap returns a viewable image the agent can actually see (with region/scale/byte-budget), for self-verification.
  6. Safety by default: checkpoint / restore around destructive ops.
  7. Validated params everywhere.
  8. Print-aware throughout: DPI / inches are first-class; DTF output is a headline feature.

Architecture (hybrid, day one)

Live and headless differ only in who launches GIMP, not how we talk to it — so it's one bridge:

  • Live: a persistent GIMP extension (installed by gimp-mcp install-plugin) starts on launch and publishes a loopback endpoint; the MCP server auto-attaches to the running GIMP, canvas visible.
  • Headless: if no live GIMP is found, the server spawns a long-running gimp -i and loads the same bridge.

Both speak one loopback-TCP, length-prefixed-JSON, token-authenticated protocol; pixel export works in both.

Capability areas (119 tools)

GroupToolsWhat it covers
Session5health/status, open-image list, active-image switch, raw gimp_exec, namespace reset
Document4new/open image, metadata, alpha-safe export (preserves transparency)
Layers18create/duplicate/delete/reorder/move, opacity, blend mode, groups, merge, content-offset + seam-check (tileable textures)
Masks & Alpha9add/apply/remove masks, alpha add/lock, alpha↔selection, luminance→alpha, color→alpha (soft) + cutout_color (crisp hard knockout)
Selections15rect/ellipse/by-color/fuzzy/from-path/from-alpha, grow/shrink/feather/border, invert, to-channel, foreground_select (edge-aware subject/matting)
Paint10pencil/paintbrush, bucket fill, gradient, stroke, fg/bg + brush + opacity context
Text5create/edit text layers, props, outline, font check/substitute
Color & Tone10brightness/contrast, levels, curves, hue/sat, color balance, desaturate, posterize, invert, threshold, normalize (auto stretch-contrast)
Filters & Effects4gaussian blur, unsharp mask, drop shadow, generic GEGL apply_filter
Print / DTF13white underbase, edge choke/spread, trim-to-content, knockout_background (garment-aware), clean-for-DTF, halftone separation, gang sheet (22″@300), DTF PNG export, geometry/bleed
Color Management7assign/convert ICC profiles, grayscale/RGB conversion, profile inspect
Analysis12get_bitmap (viewable preview), histogram (perceptual, matches levels), color-at, region read, metadata, op describe, GEGL/procedure listing
Safety7checkpoint/restore (scriptable rollback), undo groups, list checkpoints

Tools are self-describing through your MCP client; describe_op and list_* tools enumerate ops and resources at runtime.

Requirements

  • GIMP 3.x (tested on 3.2.4)
  • Python 3.10+ (for the MCP server)
  • An MCP-compatible AI assistant (e.g. Claude Code / Claude Desktop)

Installation

1. Install the server

From PyPI:

bash
pipx install twelvetake-gimp-studio-mcp

Or from a clone:

bash
git clone https://github.com/TwelveTake-Studios/gimp-studio-mcpcd gimp-studio-mcppip install -e .

2. Install the GIMP-side bridge

bash
gimp-mcp install-plugin     # copies the bridge into GIMP's plug-ins dirgimp-mcp doctor             # verify install + GIMP exe + bridge reachability

Restart GIMP (or it loads on next launch). The bridge auto-starts as a persistent extension.

3. Register with your MCP client

Add to your client's MCP config (e.g. .mcp.json):

json
{  "mcpServers": {    "gimp": {      "command": "gimp-mcp",      "args": ["serve"]    }  }}

The server attaches to a running GIMP if one is available, and otherwise spawns a headless GIMP automatically. Set GIMP_MCP_HEADLESS=1 to always run headless.

Quick start

General editing

"Open logo.png and tell me its size and layers""Add a 12px white outline to the text layer""Auto-crop the image to its content, then export a transparent PNG""Show me the current canvas"          → get_bitmap returns a viewable preview

DTF (direct-to-film) — the headline workflow

"Knock out the black shirt color behind this artwork"     → knockout_background, garment-aware"Add a white underbase choked 2px so it doesn't peek"      → white_underbase + edge_choke"Clean this up for DTF and export a 300-DPI transparent PNG""Gang up 12 copies of this design onto a 22-inch sheet at 300 DPI"

knockout_background is garment-aware: pass a shirt= preset (black, navy, heather_gray, red, …) and it picks the right removal technique (color-to-alpha for dark garments where black is the shirt showing through, hard select-and-clear for light/saturated ones). list_shirt_presets shows the catalog.

Security model

This server runs on the same trust boundary as the local user. Installing it grants any attached AI agent the ability to drive GIMP on your machine — and, through gimp_exec, to run arbitrary Python in GIMP's process. That is intended for a single-user workstation; it is not a sandbox.

  • Loopback only + token. The bridge listens on 127.0.0.1 with an ephemeral port and a per-session token. It is not exposed to the network.
  • gimp_exec is arbitrary host code execution by design. A malicious or prompt-injected instruction (for example, hidden in an image you ask the agent to open) could reach gimp_exec. Only attach trusted agents and trusted content.
  • Disable switch. Set GIMP_MCP_NO_EXEC=1 to skip registering gimp_exec entirely; the other 118 structured tools still work.

See SECURITY.md for the full threat model and reporting instructions.

Environment variables

VariableEffect
GIMP_MCP_HEADLESSAlways run a headless GIMP (spawn gimp -i) instead of attaching to a running one (1/true/yes/on).
GIMP_MCP_NO_EXECSkip registering the raw gimp_exec host-code-exec tool (1/true/yes/on).
GIMP_MCP_DISABLEDThe in-GIMP bridge acks and does not serve.
GIMP_MCP_ENDPOINT_FILEExplicit endpoint-file path (advanced / headless).
GIMP_MCP_PORTPin a bridge port instead of an ephemeral one.
GIMP_MCP_EXEPath to GIMP's gimp-console executable, for an installation the server does not find automatically.
GIMP3_DIRECTORYGIMP's own variable for a non-default GIMP profile folder. gimp-mcp install-plugin installs the bridge there and gimp-mcp doctor checks it there.
GIMP_MCP_OPERATION_TIMEOUTSeconds a single GIMP operation may run before it returns a timeout error (default 120).
GIMP_MCP_START_TIMEOUTSeconds to wait for a headless GIMP to start (default 60).
GIMP_MCP_CONNECT_TIMEOUTSeconds to wait when connecting to GIMP (default 10).

Troubleshooting

Run gimp-mcp doctor first — it checks the install, locates the GIMP executable, and round-trips the bridge. Add --headless to also spawn a headless GIMP and verify a full round-trip.

  • "Bridge not reachable" with GIMP open: make sure you ran gimp-mcp install-plugin and restarted GIMP so the bridge extension loaded.
  • Edited the server but tools look unchanged: the MCP server does not hot-reload — restart your MCP client session.

License

MIT — see LICENSE.


TwelveTake Studios LLC Website: twelvetake.com Contact: [email protected]

来源:README.md,提交 e961111

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

3
  1. v0.4.0最新Oct 20, 2026
  2. v0.3.4Sep 30, 2026
  3. v0.3.3Sep 29, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分