gimp-mcp
Provides tools for image editing operations such as opening, resizing, cropping, flipping, rotating, blurring, desaturating, text overlay, exporting, and batch resizing, using GIMP as the backend in live mode or Pillow in mock mode.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gimp-mcpcrop this image to 500x500"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gimp-mcp
gimp-mcp is an MCP server so AI agents can drive GIMP-style image operations: open/create images, resize, crop, flip, rotate, blur, desaturate, text overlay, export, and batch resize.
Mode | Backend | When |
mock (default) | Pillow | CI, offline, no GIMP install |
live |
| Machine with GIMP 2.10 / 3.x |
Product: mergeos-bounties/gimp-mcp · Funded: prj_0525
Install (one command)
Grok — recommended
pip install "git+https://github.com/mergeos-bounties/gimp-mcp.git" && grok plugin install mergeos-bounties/gimp-mcp --trustThis installs the Python CLI (gimp-mcp) and the Grok plugin (skill + MCP server from .mcp.json).
Check:
gimp-mcp version
gimp-mcp doctor
gimp-mcp demo
grok plugin list
grok mcp listLocal clone:
git clone https://github.com/mergeos-bounties/gimp-mcp.git
cd gimp-mcp
pip install -e ".[dev]"
grok plugin install . --trustOther agents (stdio MCP)
After pip install "git+https://github.com/mergeos-bounties/gimp-mcp.git", point any MCP host at:
Field | Value |
command |
|
args |
|
env |
|
Claude Desktop — merge examples/claude_desktop_config.json into Claude MCP config.
Cursor — merge examples/cursor_mcp.json.
Grok config.toml (manual, without plugin):
[mcp_servers.gimp_mcp]
command = "gimp-mcp"
args = ["serve"]
env = { GIMP_MCP_MODE = "mock" }
enabled = trueOne-liner via Grok CLI:
pip install "git+https://github.com/mergeos-bounties/gimp-mcp.git"
grok mcp add gimp-mcp -- gimp-mcp serveRelated MCP server: MCP OpenAI Image Generation Server
Supported AI agents / hosts
Host | Support | Install |
Grok (CLI / TUI / Build) | Yes |
|
Claude Desktop | Yes | Copy examples/claude_desktop_config.json into Claude MCP settings |
Cursor | Yes | Merge examples/cursor_mcp.json into Cursor MCP config |
Claude Code | Yes | stdio MCP: same |
VS Code (MCP / Continue / Cline) | Yes | Generic stdio server config pointing at |
Windsurf / Cascade | Yes | stdio MCP entry with |
Codex CLI | Yes (stdio) | Register MCP server command |
ChatGPT Desktop | Partial | Only if host supports custom MCP stdio servers |
Gemini CLI | Partial | Only if MCP stdio plugins are enabled |
All packages speak MCP over stdio (gimp-mcp serve). Default mode is mock (offline, no simulator/terminal/GIMP required).
Highlights
Capability | Description |
MCP tools |
|
CLI |
|
Offline demo | Always works with Pillow mock |
Live GIMP 3 |
|
Live GIMP 2 | Script-Fu batch |
Grok plugin |
|
Quick start (developers)
cd mcp\GIMP-mcp
pip install -e ".[dev]"
gimp-mcp version
gimp-mcp doctor
gimp-mcp demo
pytest -qLive GIMP (optional)
# Install GIMP 3.x, then:
$env:GIMP_MCP_MODE = "live"
# optional override:
# $env:GIMP_MCP_BIN = "$env:LOCALAPPDATA\Programs\GIMP 3\bin\gimp-console.exe"
gimp-mcp doctor
gimp-mcp live-smokeMCP host config
Plugin ships .mcp.json. Manual examples: examples/claude_desktop_config.json, examples/cursor_mcp.json.
{
"mcpServers": {
"gimp-mcp": {
"command": "gimp-mcp",
"args": ["serve"],
"env": { "GIMP_MCP_MODE": "live" }
}
}
}CLI / tools
Command | Purpose |
| Package + detected console |
| Backend health |
| Mock end-to-end smoke |
| Live console smoke (skips if missing) |
| MCP tool names |
| One-shot tool ( |
| Full real-photo pipeline → multiple exports |
| Stdio MCP server |
Real photos
$env:GIMP_MCP_MODE = "live"
gimp-mcp process "C:\path\to\photo.jpg" --out-dir ".\examples\real-run" --watermark "MergeOS"Writes *_processed.png, *_gray.png, *_crop_flip_*.png, and batch_thumbs/ (GIMP 3 scale via python-fu-eval).
MCP tools: gimp_mode, gimp_doctor, gimp_seed_demo, gimp_list_images, gimp_close, gimp_new_image, gimp_open, gimp_info, gimp_resize, gimp_thumbnail, gimp_crop, gimp_flip, gimp_rotate, gimp_blur, gimp_sharpen, gimp_desaturate, gimp_invert, gimp_brightness, gimp_contrast, gimp_auto_orient, gimp_text_overlay, gimp_pipeline, gimp_export, gimp_batch_resize.
Env:
Variable | Meaning |
|
|
| Path to |
| Working directory for temp images |
| Batch timeout seconds |
Development
pip install -e ".[dev]"
ruff check src tests
pytest -qPlugin layout:
.grok-plugin/plugin.json # Grok plugin manifest
.mcp.json # MCP stdio server for Grok
skills/gimp-mcp/ # Skill (auto-loaded after plugin install)
.grok/skills/gimp-mcp/ # Same skill for in-repo discoveryMergeOS bounties
Follow mergeos-bounties + star mergeos and mergeos-contracts. Claim issues → PR to master → 25–200 MRG.
See docs/BOUNTY.md.
License
MIT — see LICENSE.
Live test note (maintainer)
Verified on Windows with GIMP 3.2.4 at%LOCALAPPDATA%\Programs\GIMP 3\bin\gimp-console.exe
Live resize uses python-fu-eval +
--quit(not Script-Fu hang)gimp-mcp live-smokecompletes in a few secondsFilters may still use Pillow assist by design
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/mergeos-bounties/gimp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server