gimp-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GIMP_MCP_MODE | No | gui abre GIMP con ventana (ves lo que hace el agente); headless lo usa sin ventana | gui |
| GIMP_MCP_PORT | No | Puerto local del puente | 9877 |
| GIMP_MCP_TIMEOUT | No | Segundos máximos por operación | 300 |
| GIMP_MCP_GIMP_DIR | No | Carpeta bin de GIMP si no está en la ruta estándar | autodetectado |
| GIMP_MCP_AUTOSTART | No | 0 para no arrancar GIMP automáticamente | 1 |
| GIMP_MCP_STARTUP_TIMEOUT | No | Segundos de espera al arrancar GIMP | 240 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gimp_statusA | Comprueba la conexión con GIMP (lo arranca si hace falta) y lista las imágenes abiertas. |
| gimp_list_imagesB | Lista las imágenes abiertas en GIMP (id, nombre, archivo, tamaño). |
| gimp_image_infoB | Detalle de una imagen: tamaño, modo, resolución, selección y árbol de capas con ids. |
| gimp_new_imageC | Crea una imagen nueva. background: color, 'transparent', 'foreground' o 'background'. |
| gimp_open_imageB | Abre un archivo de imagen (png, jpg, xcf, psd, webp, tif, pdf...) y devuelve su info. |
| gimp_save_imageA | Guarda en formato XCF de GIMP (con capas). Sin path, guarda sobre su archivo .xcf actual. |
| gimp_export_imageA | Exporta la imagen al formato que indique la extensión (png, jpg, webp, gif, tif, bmp, pdf...). quality (1-100) aplica a jpg/webp. flatten=True une las capas antes de exportar (sobre una copia, la imagen original no cambia). |
| gimp_close_imageA | Cierra una imagen. Por seguridad falla si tiene cambios sin guardar, salvo discard_changes=True. |
| gimp_duplicate_imageB | Duplica una imagen completa (con capas) en una imagen nueva. |
| gimp_previewB | Devuelve una vista previa PNG de la imagen (o de una sola capa) para VER el resultado. Úsala tras cada cambio importante para comprobar que ha quedado bien. |
| gimp_scale_imageB | Escala la imagen entera. Indica width y/o height (mantiene proporción si falta uno) o percent. |
| gimp_resize_canvasB | Cambia el tamaño del lienzo sin escalar el contenido. fill: color para rellenar el espacio nuevo (si no, queda transparente). |
| gimp_cropA | Recorta la imagen: a un rectángulo (x,y,width,height), a la selección actual (to_selection) o quitando bordes uniformes (autocrop). |
| gimp_rotate_flip_imageA | Gira la imagen entera 90/180/270 grados (sentido horario) y/o la voltea. |
| gimp_convert_modeC | Convierte el modo de color de la imagen. Para indexed, colors = nº de colores de la paleta. |
| gimp_new_layerC | Crea una capa (o un grupo de capas si group=True). fill: 'transparent' o un color. position 0 = arriba del todo. parent_id: grupo donde meterla. |
| gimp_add_layer_from_fileB | Inserta otra imagen (logo, foto...) como capa nueva. Sin x/y queda centrada. width/height opcionales para escalarla (si das uno, mantiene proporción). |
| gimp_set_layerA | Cambia propiedades de una capa: nombre, visibilidad, opacidad (0-100), modo de fusión (normal, multiply, screen, overlay, soft-light, hard-light, difference, addition, subtract, darken-only, lighten-only, hue, saturation, color, value...), posición x/y, bloqueo de alfa, o la marca como capa activa (select=True). |
| gimp_layer_orderB | Mueve una capa en la pila: raise/lower (un paso), top/bottom, o position (0 = arriba). |
| gimp_duplicate_layerC | Duplica una capa (queda justo encima de la original). |
| gimp_delete_layerC | Elimina una capa. |
| gimp_merge_layersA | Combina capas: merge_down (la capa con la de debajo), merge_visible (todas las visibles) o flatten (todo en una capa sin transparencia). |
| gimp_transform_layerB | Transforma una capa: escalar (px o %), rotar (grados, sentido horario, sobre su centro), voltear, mover a x/y absolutos (esquina superior izquierda), centrar en la imagen (align), o ajustar el tamaño del borde de la capa al de la imagen. |
| gimp_layer_maskB | Máscaras de capa: add (white=todo visible, black=todo oculto, selection=desde la selección, alpha, copy, grayscale), apply (aplica y elimina la máscara) o remove (la descarta). |
| gimp_selectA | Crea o modifica la selección. rectangle/ellipse/rounded_rectangle usan x,y,width,height (radius para las esquinas); polygon usa points=[x1,y1,x2,y2,...]; from_alpha selecciona lo opaco de layer_id. operation combina con la selección previa. feather difumina el borde (px). |
| gimp_select_by_colorC | Selecciona por color. Con color: todos los píxeles de ese color. Con x,y: la varita mágica (contiguous=True) o el color de ese punto en toda la imagen. threshold 0-255. |
| gimp_modify_selectionB | Modifica la selección actual: grow/shrink/border (px), feather (radio px), sharpen (quita difuminado). |
| gimp_set_colorsB | Ajusta el contexto de pintura: color de frente/fondo, pincel (nombre), tamaño, opacidad y modo. Sin argumentos devuelve los valores actuales. |
| gimp_fillB | Rellena la selección (o la capa entera si no hay selección). fill: 'foreground', 'background', 'white', 'transparent', 'pattern' o un color concreto ('#ff0000'). |
| gimp_stroke_selectionC | Dibuja el contorno de la selección actual con el grosor (px) y color indicados. |
| gimp_drawB | Pinta un trazo que pasa por points=[x1,y1,x2,y2,...] (coordenadas de imagen) con la herramienta indicada. closed=True cierra el trazo volviendo al primer punto. |
| gimp_gradientC | Rellena con degradado de (x1,y1) a (x2,y2). Por defecto va de start_color a end_color (o frente→fondo); gradient permite usar un degradado de GIMP por nombre. |
| gimp_add_textA | Añade una capa de texto editable. (x,y) es la ESQUINA SUPERIOR IZQUIERDA de la capa de texto, no su centro: para centrar usa align='center' (ambos ejes) o 'center_x' (centrado horizontal a la altura y). size en px. box_width fija el ancho de caja para que el texto haga saltos de línea. Usa gimp_list_resources('fonts') para ver fuentes. Comprueba en la respuesta que x+width y y+height no superan el tamaño de la imagen (si no, el texto sale cortado). |
| gimp_edit_textC | Modifica una capa de texto existente. |
| gimp_list_resourcesB | Lista recursos de GIMP (fuentes, pinceles, degradados, patrones, paletas) filtrando por texto. |
| gimp_adjustA | Ajustes de color sobre la capa (respetando la selección):
|
| gimp_apply_filterA | Aplica cualquier filtro GEGL a una capa (respeta la selección). Ejemplos: gegl:gaussian-blur {std-dev-x, std-dev-y} · gegl:unsharp-mask {std-dev, scale} · gegl:dropshadow {x, y, radius, color, opacity} · gegl:pixelize {size-x, size-y} · gegl:noise-reduction {iterations} · gegl:vignette {radius, softness, color} · gegl:cartoon · gegl:emboss · gegl:edge-sobel · gegl:mosaic · gegl:waves · gegl:ripple · gegl:lens-distortion · gegl:bloom · gegl:high-pass · gegl:oilify · gegl:motion-blur-linear {length, angle} · gegl:sepia {scale} · gegl:mono-mixer · gimp:threshold-alpha... Usa gimp_filter_info para ver las propiedades de una operación. non_destructive=True lo deja como filtro editable en vez de fusionarlo con la capa. |
| gimp_filter_infoA | Sin operation: lista las operaciones GEGL disponibles que contengan |
| gimp_pdb_searchB | Busca procedimientos de la PDB de GIMP (incluye plugins y Script-Fu) por nombre. |
| gimp_pdb_infoB | Muestra los argumentos y valores de retorno de un procedimiento PDB. |
| gimp_pdb_callA | Llama a cualquier procedimiento PDB por nombre con argumentos por nombre. Valores especiales: 'image' se rellena con image_id, 'drawable' con layer_id y 'drawables' con [layer_id]; 'run-mode' es NONINTERACTIVE por defecto; 'file' acepta una ruta; colores como texto. Consulta antes gimp_pdb_info. |
| gimp_run_pythonB | Ejecuta código Python dentro de GIMP 3 (API GObject: Gimp, Gegl, Gio, GLib ya importados).
Asigna la respuesta a la variable |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 42 tools
Most tools map to a distinct resource+action pair (image, layer, selection, color, filter, text). There is some overlap: gimp_status and gimp_list_images both report open images, and gimp_pdb_call and gimp_run_python are broad escape hatches that can accomplish many of the same things, but descriptions clarify intent well.
Every tool uses the gimp_ prefix followed by a consistent snake_case verb_noun pattern (gimp_open_image, gimp_delete_layer, gimp_create_*, gimp_list_resources). Naming is highly predictable throughout.
42 tools is heavy and pushes into the lower band, but GIMP is a genuinely large domain (images, layers, selections, color, filters, PDB, scripting) so most tools are justified. A few, like the overlapping status/list and pdb/run_python pairs, could be consolidated.
The surface covers the full image lifecycle: create/open/close/save/export/duplicate, layer CRUD and ordering, selection creation and modification, color/context, drawing, text, filters, PDB introspection and Python escape hatches. No obvious domain gaps remain.