Skip to main content
Glama

brush_stroke

Paints a single stroke in Krita using the real brush engine and preset controls for pressure, size, opacity, flow, erasing, smoothing, and closed fills while respecting the active selection.

Instructions

Paint ONE stroke with Krita's real brush engine (texture, wet mixing, ... from the preset). points: [[x, y], ...] or [[x, y, pressure 0..1], ...] (pressure needs a pressure-sensitive preset). preset: brush preset name or unique part of it (see list_brush_presets; default: the current brush). size in px, opacity/flow 0..1, eraser=true erases with the brush. smooth=true curves through the points. closed/fill: close the path / fill it with the colour (outline=false for fill only). Painting respects the current selection. The user's own brush settings are restored afterwards.

Input Schema

NameRequiredDescriptionDefault
fillNo
flowNo
sizeNo
colorNo
layerNo
closedNo
eraserNo
pointsYes
presetNo
smoothNo
opacityNo
outlineNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does much of it: it discloses that pressure only works with a pressure-sensitive preset, that strokes are clipped to the current selection, and that the user's own brush settings are restored afterwards (an important side-effect guarantee for a mutation tool). It still omits the return value and whether the stroke is undoable as a single step.

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

Conciseness4/5

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

Compact and front-loaded with the core action, then grouped parameter notes. The telegraphic style ('size in px, opacity/flow 0..1') is efficient rather than bloated, though the fragmentary formatting is slightly harder to parse than full sentences.

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

Completeness4/5

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

For a 12-parameter mutation tool with no annotations and no output schema, this covers the critical calling semantics well, including the settings-restoration side effect. The remaining gaps are the undocumented color/layer parameters and the lack of any statement about what is returned or how failures surface.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate, and it does for most parameters: points accept [x,y] or [x,y,pressure], preset takes a name or unique fragment and defaults to the current brush, size is in px, opacity/flow are 0..1, eraser paints with the brush in erase mode, smooth interpolates a curve, and closed/fill/outline are explained. It leaves 'color' and 'layer' entirely undocumented, which matters for a tool with 12 parameters.

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 and resource ('Paint ONE stroke with Krita's real brush engine'), and the emphasis on ONE stroke plus the texture/wet-mixing phrasing distinguishes it from vector siblings like draw_shapes and from fill_selection. An agent can tell immediately that this is the raster-brush painting tool.

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?

Usage is implied rather than stated: it points to list_brush_presets for preset discovery and notes that painting respects the current selection, which is use-relevant context. However, it never says when to choose this over draw_shapes, fill_selection, or krita_action, and there are no exclusions.

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