Skip to main content
Glama

Paint: Gradient wash

paint_gradient

Draw linear or radial gradients across a named canvas or area for skies, glows, metal, and shadows. Optionally target a layer.

Instructions

Linear or radial gradient over the canvas or an area — skies, glows, metal, shadows.

Target the canvas by name (created with paint_canvas) and optionally a layer index. Layers, filters and undo work the same for every drawing tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoEnd point (linear only)
areaNoRestrict to a rectangle; omit for the whole canvas
fromNoStart point (linear) or centre (radial)
typeNolinear
blendNoBlend mode for this strokenormal
layerNoTarget layer index; defaults to the active layer (see paint_canvas).
shapeNorect
stopsNo
canvasYesCanvas name. Letters, digits, space, dot, dash, plus; the .png/.paint suffix may be included or omitted.
colorsYesEvenly spaced colours
radiusNoRadial radius
opacityNo0..1 strength of this stroke
previewNoImage reply: auto/thumb = downscaled picture back into the result, full = unpixelated, none = text only
preview_sizeNoLongest edge of the returned thumbnail

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it is a non-destructive, non-idempotent mutation, so the safety profile is covered. The description adds useful context that undo applies ('undo work the same for every drawing tool'), but says nothing about what happens to existing pixels under the gradient or any auth/permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with what the tool does, then the targeting rule and cross-tool behavior. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, nested-schema, no-output-schema tool this is thin. It omits the stops-vs-colors semantics, preview behavior, and blend-mode intent, leaving the agent to reconstruct a meaningful call primarily from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 79%, so the schema does most of the work for the 14 parameters. The description clarifies canvas targeting and the `area` option, but never explains the important distinction between `stops` (positioned) and `colors` (evenly spaced) or when to use `radius`/`to`/`from` — a real gap for a parameter-heavy tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (paint) and resource (linear or radial gradient) with scope (canvas or an `area`) and use-case examples (skies, glows, metal, shadows). This clearly distinguishes it from sibling tools like paint_fill or paint_rect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the prerequisite that the canvas is created with paint_canvas and that a layer index is optional, and notes cross-tool consistency of layers/filters/undo. However, it never says when to prefer a gradient over paint_fill or other paint_* alternatives, so the routing guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.