dcc-mcp-gimp
Production-oriented GIMP 3 adapter for the DCC Model Context Protocol ecosystem.
Illustrative workflow generated with OpenAI ImageGen from the retained source in docs/images/sources; it is not a GIMP screenshot or host-validation artifact.
The adapter keeps GIMP API ownership inside a persistent GIMP 3 Python plug-in. An authenticated loopback JSON-lines bridge accepts a fixed catalog of typed commands, bounds connections, requests, responses, queue depth, image size, layer traversal, paths, file size, and execution time, then marshals every host operation onto GIMP's GLib main thread. It exposes no arbitrary Python, Script-Fu, action, or PDB-procedure execution.
Install
See the canonical Install SOP v1 guide for agent-first plan, status, verification, upgrade, uninstall, receipts, exit codes, and platform troubleshooting.
pip install dcc-mcp-gimp
dcc-mcp-gimp install --yes --json --dcc-path /path/to/gimp-3.0 --python /path/to/python
dcc-mcp-gimp verify --json --dcc-path /path/to/gimp-3.0 --python /path/to/python
dcc-mcp-gimp-doctor
Set at least one allowed file root before launching GIMP and the MCP server:
export DCC_MCP_GIMP_ALLOWED_ROOTS=/absolute/project/root
dcc-mcp-gimp
On Windows, separate multiple roots with ;; on POSIX, use :. The plug-in and
client share a per-user token at ~/.dcc-mcp/gimp-bridge-token by default. An
explicit token may instead be supplied through DCC_MCP_GIMP_BRIDGE_TOKEN and
must contain at least 32 characters. Token values are never returned by status
or diagnostics.
Restart GIMP after installation. Its no-argument persistent
python-fu-dcc-mcp-gimp-bridge procedure starts automatically. Follow the
machine-executable next_steps to start the adapter with the selected Python
and verify the exact host instance. The MCP endpoint defaults to
http://127.0.0.1:8767/mcp; the plug-in bridge defaults to 127.0.0.1:3848.
Typed capabilities
- Inspect bridge readiness, open images, active image metadata, and recursive layer trees.
- Create or open bounded images under configured roots.
- Create/select/fill/rename/show/hide/lock/fade/delete layers through typed parameters.
- Preserve layered work as XCF and export PNG, JPEG, WebP, or TIFF with byte counts and SHA-256 digests.
- Flatten only with
confirm=true; overwrite only withoverwrite=true. - Close only bridge-opened displays, and require
discard_changes=truefor dirty images.
GIMP image and layer IDs are process-local and must be rediscovered after a restart. File paths outside configured roots are rejected; paths attached to untrusted user images are redacted to a basename.
Architecture and validation
The GIMP host remains the sole owner of image state and main-thread affinity. The Python package owns MCP lifecycle, typed Skill declarations, installation, diagnostics, and the authenticated bridge client. No generic code evaluation crosses this boundary.
python -m pip install -e ".[dev]"
python -m pytest
python -m ruff check src tests tools
python tools/lint_skills.py
python -m build
python -m twine check dist/*
The real-host acceptance script is tests/live_gimp_smoke.py. It creates a
bounded layered image, exercises all typed commands, saves XCF, exports PNG,
verifies both artifacts, reopens the XCF, and cleans up only bridge-owned
displays.
Official references: GIMP 3 Python plug-ins, GIMP Image API, and GIMP file save/export API.
Metadata
Release files for dcc-mcp-gimp 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dcc_mcp_gimp-0.4.1.tar.gz | 48.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dcc_mcp_gimp-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 94.5 kB
Release files / dcc_mcp_gimp-0.4.1.tar.gz
| Download URL | dcc_mcp_gimp-0.4.1.tar.gz |
|---|---|
| Size | 48.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d0c2dcc0c4d20934715d0087f5671435abe556230f70befd9e132325836483d5
|
|
BLAKE2b-256 checksum How to use checksums |
6dd3f236c03270d00670dd6a618549040598d4d586f7759ed47e390578a7facc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency logRelease files / dcc_mcp_gimp-0.4.1-py3-none-any.whl
| Download URL | dcc_mcp_gimp-0.4.1-py3-none-any.whl |
|---|---|
| Size | 45.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5cbc37af4a927f4d29f9b036e4961caa08b9b0c477d737534e206f01d4333614
|
|
BLAKE2b-256 checksum How to use checksums |
94082e79c3a888f161bbd43263da3b5ca0d5702cf5c8fd0ce37d6cb492c1cb0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency log