mcpField
G
Gimp Mcp Server

Gimp Mcp Server

本地服务
github.com/maorcc媒体与设计28022 周前更新

关于 Gimp Mcp Server

GIMP MCP 是一个将 GIMP 3.2 图像编辑功能通过 MCP 暴露给 AI 助手的服务。用户可以用自然语言描述编辑需求,AI 还能通过实时快照检查每一步结果,适合非专业用户及需要执行多步骤流程的专业人员。

主要功能

  1. 01提供 56 个 GIMP 编辑工具,涵盖调整、变换、图层等
  2. 02get_state_snapshot 可在不保存文件的情况下返回 PNG 预览
  3. 03支持区域快照,用于检查局部细节
  4. 04兼容 GIMP 3.2.x 的 API 变更
  5. 05附带 56 项测试套件用于验证环境

适用场景

  1. 01通过自然语言移除图片背景并迭代检查结果
  2. 02对人物图像进行表情编辑或色调调整
  3. 03批量执行打开、编辑、导出等多步骤图像流程

MCP 相关

该服务通过 stdio 运行 MCP 服务器,将工具调用经 TCP 转发给 GIMP 内的插件执行,并向 MCP 客户端暴露各类图像编辑工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

GIMP MCP

License: GPL v3 Works with Claude Desktop GIMP 3.2 MCP Compatible CodeRabbit

演示

GIMP MCP 实际运行效果 — AI Agent 通过自然语言操控 GIMP

完整演示(含音频):https://github.com/maorcc/gimp-mcp/raw/main/docs/demo.mp4

AI Agent 使用 GIMP MCP 移除背景、编辑角色表情并验证结果——所有操作均通过 Claude 中的自然语言完成


概述

GIMP MCP 通过 Model Context Protocol,将 GIMP 的专业图像编辑能力与 AI 助手连接起来。你只需描述想要的效果,就能编辑图像;同时,AI 还可以实时查看图像,验证每项修改后再继续操作。

它与其他 GIMP 集成方案的不同之处:

  • AI 可以在工作流的任意阶段查看图像,无需保存到磁盘(get_state_snapshot)
  • 支持完全自主的多步骤流水线:打开 → 编辑 → 验证 → 优化 → 导出
  • 提供 56 条专用工具命令,涵盖 GIMP 的所有主要操作
  • 完全兼容 GIMP 3.2.x(所有不兼容的 API 变更均已解决)

主要功能

👁️ 实时视觉反馈get_state_snapshot 可在工作流进行中返回 PNG 预览,让 AI 验证每一步
🎨 56 种 GIMP 工具调整、变换、选区、图层、绘图、文本、滤镜——全部通过 MCP 操作
🔧 兼容 GIMP 3.2已修复并测试所有 GIMP 3.2 API 变更(56/56 项通过)
🔁 迭代式工作流AI 会循环执行,直到达成目标——例如持续移除背景,直至没有剩余像素
🖼️ 区域快照放大任意区域以便详细验证(脸部、嘴巴、角落等)
🔌 通用 MCP支持 Claude Desktop、Claude Code、Gemini CLI、PydanticAI 等

可以做什么?

通过迭代验证移除背景

AI 移除背景后,会拍摄快照检查结果、检测残留像素,并循环处理,直至图像干净:

"Remove the background from this image and keep looping until only the character remains"
编辑表情
"Make the character smile — paint a smile arc with teeth over her mouth"
复杂的多步骤流水线
"Open navi_portrait.png, remove the background, verify it's clean,
 then make her smile and export the final result as a PNG"
色彩与色调处理
"Boost the contrast, shift the hue 15 degrees warmer, then show me a before/after zoom of the face"
文本与合成
"Add a bold title at the top in white with a subtle drop shadow, then export for web"

前置条件

  • GIMP 3.2+ — 已在 GIMP 3.2.2 上测试(Windows、macOS、Linux)
  • Python 3.8+ — 用于 MCP 服务
  • uv — Python 包管理器(pip install uv)
  • 兼容 MCP 的 AI 客户端 — Claude Desktop、Claude Code、Gemini CLI、PydanticAI 等

快速开始

1. 安装依赖
git clone https://github.com/maorcc/gimp-mcp.git
cd gimp-mcp
uv sync
2. 安装 GIMP 插件

将 gimp-mcp-plugin.py 复制到 GIMP 的 plug-ins 目录,然后重启 GIMP。

目录在哪里? GIMP 会使用其主版本.次版本号(3.0、3.2、3.4……)命名每个用户的文件夹,并在每次次版本升级时新建文件夹,因此升级 GIMP 时文件夹也会更换(例如 3.0 → 3.2)。下面的代码片段会自动选择最新的文件夹,因此升级后也能继续使用。若要手动查看路径,请打开 GIMP 并进入编辑 → 首选项 → 文件夹 → 插件。

运行此操作前,请至少启动一次 GIMP,以便创建其配置文件夹。

macOS / Linux:

# Pick the base directory for your platform:
BASE="$HOME/Library/Application Support/GIMP"     # macOS
# BASE="$HOME/.config/GIMP"                        # Linux (standard)
# BASE="$HOME/snap/gimp/current/.config/GIMP"      # Linux (Snap)

# Auto-select the newest GIMP 3.x config directory (3.0, 3.2, 3.4, ...):
GIMP_DIR="$(ls -d "$BASE"/3.* 2>/dev/null | sort -V | tail -1)"
if [ -z "$GIMP_DIR" ]; then
  echo "No GIMP 3.x config dir found under $BASE — launch GIMP once, then re-run." >&2
  exit 1
fi
mkdir -p "$GIMP_DIR/plug-ins/gimp-mcp-plugin"
cp gimp-mcp-plugin.py "$GIMP_DIR/plug-ins/gimp-mcp-plugin/"
chmod +x "$GIMP_DIR/plug-ins/gimp-mcp-plugin/gimp-mcp-plugin.py"
echo "Installed into: $GIMP_DIR/plug-ins/gimp-mcp-plugin"

Windows:

%APPDATA%\GIMP\<VERSION>\plug-ins\gimp-mcp-plugin\gimp-mcp-plugin.py

将 <VERSION> 替换为 GIMP 的主版本.次版本号(例如 3.2)。Windows 上无需 chmod。只需复制并重启 GIMP。

适用于所有平台:GIMP 插件安装指南

3. 在 GIMP 中启动 MCP 服务
  1. 在 GIMP 中打开任意图像
  2. 前往 工具 > MCP > 启动 MCP 服务
  3. 服务将在 localhost:9877 上启动
4. 配置 MCP 客户端
Claude Desktop

~/.config/Claude/claude_desktop_config.json(Linux/macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "gimp": {
      "command": "uv",
      "args": ["run", "--directory", "/full/path/to/gimp-mcp", "gimp_mcp_server.py"]
    }
  }
}
Claude Code
cd /path/to/gimp-mcp
claude  # .mcp.json is auto-detected

或手动配置:

claude mcp add gimp-mcp -- uv run --directory /full/path/to/gimp-mcp gimp_mcp_server.py
Gemini CLI

~/.config/gemini/.gemini_config.json:

{
  "mcpServers": {
    "gimp": {
      "command": "uv",
      "args": ["run", "--directory", "/full/path/to/gimp-mcp", "gimp_mcp_server.py"]
    }
  }
}
PydanticAI
from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerStdio

server = MCPServerStdio('uv', args=['run', '--directory', '/path/to/gimp-mcp', 'gimp_mcp_server.py'])
agent = Agent('openai:gpt-4o', mcp_servers=[server])

可用的 MCP 工具

👁️ 视觉反馈
get_state_snapshot(image_index, max_size, region, label)

返回当前图像状态的实时 PNG——这是 AI 的主要反馈机制。进行任何编辑后都可以调用此工具来验证结果,无需保存到磁盘。

# Full image snapshot
snapshot = get_state_snapshot(max_size=512)

# Zoom into a face region for detail inspection
snapshot = get_state_snapshot(
    region={"x": 140, "y": 80, "width": 240, "height": 300},
    max_size=512,
    label="face-check"
)

这支持迭代式 Agent 工作流:编辑 → 快照 → 评估 → 优化 → 重复。

get_image_bitmap(image_index, max_width, max_height, region)

较低层级的位图获取工具,支持提取区域并缩放。返回 base64 编码的 PNG。

🎨 调整
工具描述
adjust_brightness_contrast亮度和对比度
adjust_curves按通道调整曲线(RGB/R/G/B/A)
adjust_hue_saturation色相、饱和度、亮度
adjust_color_balance阴影/中间调/高光色彩平衡
auto_levels自动拉伸色阶
desaturate转换为灰度(保留 RGB 模式)
invert_colors反转所有通道
sharpen使用反锐化蒙版锐化
blur高斯模糊
denoise降噪
🔄 变换
工具描述
scale_image缩放到指定尺寸
scale_to_fit在边界框内缩放(保持纵横比)
crop_to_rect裁剪为矩形
rotate_image旋转 90/180/270 度或任意角度
flip_image水平或垂直翻转
resize_canvas调整画布大小,不缩放内容
✂️ 选区
工具描述
select_rectangle矩形选框
select_ellipse椭圆选框
select_by_color按颜色选择(全局)
select_all / select_none全选 / 取消选择
invert_selection反选
modify_selection扩展、收缩、羽化或描边
🗂️ 图层
工具描述
create_layer新建空白图层
duplicate_layer复制当前图层
delete_layer删除指定名称的图层
rename_layer重命名图层
set_layer_properties不透明度、混合模式、可见性
reorder_layer调整图层在图层堆栈中的顺序
merge_visible_layers将可见图层合并为一个图层
flatten_image合并所有图层
list_layers列出所有图层及其属性
🖌️ 绘制与填充
工具描述
fill_layer用颜色填充整个图层
fill_selection填充选区(前景色/背景色/透明)
fill_rectangle填充矩形区域
fill_ellipse填充椭圆区域
draw_line绘制线条(铅笔或画笔)
draw_rectangle绘制矩形轮廓
draw_ellipse绘制椭圆轮廓
gradient_fill应用线性或径向渐变
set_colors设置前景色/背景色
🔤 文本
工具描述
add_text添加文本图层
edit_text编辑现有文本图层
list_fonts列出可用字体
✨ 滤镜与效果
工具描述
apply_gaussian_blur高斯模糊滤镜
apply_pixelate像素化/马赛克效果
apply_emboss浮雕效果
apply_vignette暗角效果
apply_noise添加噪点/颗粒
apply_drop_shadow投影效果
📁 文件操作
工具描述
open_image打开图像文件
export_image导出为 PNG、JPEG、BMP、TIFF
new_canvas创建空白画布
close_image关闭图像
list_images列出已打开的图像
🔍 信息与上下文
工具描述
get_image_metadata图像尺寸、模式、图层、文件名
get_gimp_infoGIMP 版本、平台、功能
get_context_state当前颜色、画笔、不透明度、模式
get_pixel_color特定像素处的颜色值
get_histogram某个通道的直方图数据
get_selection_bounds当前选区边界

AI Agent 反馈循环

get_state_snapshot 工具支持这样一种模式:AI 持续循环,直到通过视觉确认达成目标:

┌─────────────┐
│  Apply edit │
└──────┬──────┘
       │
       ▼
┌─────────────────┐
│ get_state_      │  ← AI sees live PNG, no disk save needed
│ snapshot()      │
└──────┬──────────┘
       │
       ▼
┌─────────────────┐     ┌──────────────────┐
│ Goal achieved?  │─ No─▶ Adjust & retry   │
└──────┬──────────┘     └──────────────────┘
       │ Yes
       ▼
┌─────────────┐
│   Export    │
└─────────────┘
示例:迭代移除背景

完整示例请参见 bg_remove_iterative.py。AI 会:

  1. 使用边缘播种的连续选择移除背景
  2. 获取快照以检查结果
  3. 扫描剩余的背景色像素
  4. 使用越来越精细的网格(25px → 1px)执行有针对性的移除
  5. 最后执行一次去斑处理,以清除孤立像素
  6. 循环处理,直到不再有背景像素

示例脚本

脚本描述
run_tests.py包含 56 项测试的测试套件 — 在你的 GIMP 中运行,以验证所有工具均可正常工作
bg_remove_iterative.py通过快照检查点迭代移除背景
bg_remove.py简单的单次背景移除
agent_edit_demo.py完整流程:打开 → 移除背景 → 编辑表情 → 导出

运行测试套件以验证你的设置:

python run_tests.py
# Expected: 56/56 PASSED

技术架构

插件 ↔ 服务通信
AI Client (Claude, etc.)
      │  MCP (stdio)
      ▼
gimp_mcp_server.py          ← MCP tool definitions
      │  TCP JSON  :9877
      ▼
gimp-mcp-plugin.py          ← Runs inside GIMP process
      │  PyGObject
      ▼
GIMP 3.2 (gi.repository.Gimp)
  • MCP 服务将工具调用转换为 JSON 命令,并通过 TCP 发送给插件
  • 插件通过 PyGObject 直接在 GIMP 进程中执行操作
  • 两种消息格式:命名工具使用 {"type": "...", "params": {...}},任意执行使用 {"cmds": ["python..."]}
GIMP 3.2 兼容性说明

GIMP 3.x 相较于 GIMP 2.x 引入了不兼容的 API 变更。本版本包含的关键修复:

问题修复
layer.copy(False) → 错误GIMP 3.2 中的 layer.copy() 不接受参数
已移除 Gimp.text_fontname()使用 PDB gimp-text-fontname
已移除 gimp-blend使用 GEGL gegl:linear-gradient / gegl:radial-gradient
曲线中的 GimpDoubleArray TypeError直接使用 drawable.curves_spline()
Gimp.fonts_get_list() 返回 Font 对象在 JSON 序列化前通过 .get_name() 转换
已移除 image.select_none()使用 PDB gimp-selection-none
layer.get_pixel() 返回 Gegl.Color使用 .get_rgba() 提取浮点分量

故障排除

“无法连接到 GIMP”
  • GIMP 必须正在运行,并且已打开图像
  • 启动 MCP 服务:工具 > 启动 MCP 服务
  • 检查端口 9877 是否被防火墙阻止
在 GIMP 中看不到插件
  • 查看 工具 > MCP(该插件会添加一个 MCP 子菜单,而不是顶级 工具 菜单项)
  • 确认插件文件位于正确的目录中(参见上文安装步骤)
  • 最近升级了 GIMP? 次要版本升级(例如 3.0 → 3.2)会将每用户配置文件夹移至新的版本目录;请将插件重新安装到新版本的 plug-ins 文件夹中。可通过 编辑 > 首选项 > 文件夹 > 插件 确认当前路径。
  • 在 Linux/macOS 上:确保文件具有执行权限(chmod +x)
  • 安装后重启 GIMP
  • 在 滤镜 > Script-Fu > 控制台 中查看错误消息
测试失败

运行测试套件并检查失败列表:

python run_tests.py

每项失败都会包含工具名称和错误信息 — GIMP 3.2 中的大多数问题都已由上述修复解决。

调试模式
GIMP_MCP_DEBUG=1 uv run --directory /path/to/gimp-mcp gimp_mcp_server.py

示例输出

GIMP MCP 示例

“给我画一张脸和一只羊”——完全通过自然语言,经由 GIMP MCP 生成


未来增强

  • 📚 配方集:可复用的工作流模板(人像清理、产品照片等)
  • ↩️ 撤销系统:通过 MCP 管理历史记录并回滚
  • 🚀 动态发现:从 GIMP 的完整 PDB 过程数据库自动生成 MCP 工具
  • 🔒 安全性:对不可信的命令输入进行沙箱执行
  • ⚡ 性能:优化大图像的位图传输
  • 🌐 远程访问:可通过网络访问 GIMP 实例

贡献

欢迎贡献——包括修复错误、开发新工具、完善文档或编写示例脚本。请在 GitHub 上提交 PR 或 issue。

开发环境设置

安装开发依赖并启用 pre-commit 钩子,以便每次提交时运行 ruff:

uv sync
uv run pre-commit install

完成后,每次执行 git commit 时,ruff 都会检查暂存文件(并自动应用 --fix)。CI 中也会运行相同的检查,因此该钩子只是一个快速的本地安全网。

之后如需更新固定的钩子版本:

uv run pre-commit autoupdate

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。