Skip to main content
Glama

Image and still operations (colors, palettes, grade, gate, packaging)

image_ops
Destructive

Run named image and still operations—such as analyze, edit, extract colors, generate palettes, grade, match, or package—by passing an operation and its parameters.

Instructions

Run one image/still operation by name; params holds its arguments. Required arguments: list_operations; full schema: describe_operation.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "operation": "<operation>"
    },
    "name": "image_ops"
  }
}

Input Schema

NameRequiredDescriptionDefault
paramsNoThe operation's arguments.
operationYes
overwriteNoAllow replacing existing media files.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.0

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is known. The description adds nothing beyond that: it never mentions overwriting media, whether operations are reversible, or that these mutate files, even though the schema's overwrite flag implies destructive file replacement. With rich annotations the bar is lower, but this adds essentially no behavioral context.

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 short sentences, front-loaded with the core dispatch behavior followed by the discovery instructions. Nothing is redundant, though the terseness borders on under-specification for a dispatcher covering eight operations.

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?

An output schema exists so return values needn't be explained, and deferral to describe_operation is a legitimate design for per-operation params. However, for an open-world, destructive dispatcher spanning image and still operations, the description gives no sense of what any individual operation does or its side effects, requiring extra round-trips before a correct call.

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 67%, so baseline is mid-range. The description only restates what the schema says about params ('params holds its arguments') and points to describe_operation for per-operation arguments; the semantics of overwrite and of each enum value are left entirely to the schema and the referenced discovery tool.

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?

States a specific verb and resource: 'Run one image/still operation by name', and the enum enumerates the eight concrete operations. This distinguishes it from the video_* siblings, but the description never says what the operations themselves do (e.g. still_grade vs still_package), leaving the agent to discover that elsewhere.

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

Usage Guidelines4/5

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

The line 'Required arguments: list_operations; full schema: describe_operation' gives concrete routing guidance: call list_operations to discover per-operation arguments and describe_operation for the full schema. It does not specify when to prefer this tool over a sibling family, but the prerequisite discovery path is explicit and actionable.

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