Skip to main content
Glama

apply_filter

Applies a Krita filter (blur, levels, invert, etc.) to a paint layer, restricted to the current selection unless ignore_selection is true.

Instructions

Apply a Krita filter (blur, levels, invert, ...) to a paint layer, restricted to the selection if any. params: filter properties from describe_filter (string/number/bool values only).

Input Schema

NameRequiredDescriptionDefault
nameYes
layerNo
paramsNo
ignore_selectionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations at all, the description carries the full burden for a mutation tool. It discloses selection-restricted application, but not whether the edit is undoable, whether it mutates the layer in place, what happens if the target is not a paint layer, whether an omitted layer means the active layer, or what the call returns on failure.

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?

Two sentences, front-loaded with the action and scope, with no filler. The second sentence's param note earns its place, though the phrasing is slightly compressed to the point of ambiguity about the 'name' parameter.

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 4-parameter mutation tool with no annotations and no output schema, the definition covers the essential workflow (discover filter properties, then apply). Gaps remain around layer defaulting, return values, and undo/error behavior that an agent would need before committing a destructive edit.

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 0%, so the description must compensate, and it does partially: it explains that params holds filter properties obtained from describe_filter and that only string/number/bool values are accepted. However 'name' allowed values are only hinted ('blur, levels, invert, ...'), 'layer' semantics with default null are never explained, and 'ignore_selection' is only obliquely implied by 'restricted to the selection if any'.

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

Purpose4/5

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

The description gives a specific verb and resource ('Apply a Krita filter') plus scope ('to a paint layer, restricted to the selection if any'), with example filters (blur, levels, invert). It implicitly separates itself from describe_filter/list_filters by consuming their output, though it never explicitly contrasts with the sibling adjust_image family.

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 only implied: the note that params come 'from describe_filter' tells an agent to call describe_filter first, which is a useful workflow hint. There is no explicit statement of when to prefer this over adjust_image/auto_enhance, no preconditions, and no when-not guidance.

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