Skip to main content
Glama

annotate

Draw numbered steps, boxes, arrows, labels, highlights, spotlights, text, and solid redactions on an existing image. Preview in draft, then save PNG to output.

Instructions

Draw marks on an existing image: numbered steps, boxes, arrows, labels, highlights, spotlight, text and solid redaction. Use it once you have an image and exact rects (from capture_web, capture_window targets, locate, or grid + zoom); for a web page in one call use shoot instead. Draft by default (temp folder): check the preview, then call again with draft=false to save to the output folder. spec: {"input": path, "scale": 1|2.., "crop": "auto"|[x1,y1,x2,y2], "name": "...", "marks": [{"type": "step"|"box"|"arrow"|"highlight"|"spotlight"|"redact"|"text"|..., "rect": {x,y,w,h} or [x1,y1,x2,y2], "label": "...", "n": 1, "color": "look|bad|good|info"}]}. Every coordinate in one unit; scale converts it to image px. Full reference: resource ainotate://spec. Writes PNG files only; never changes the input image. Returns paths, image size, warnings, legend (step numbers + labels), redactions and a preview.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
lookNoMark style: "default" (bold, built in) or the name of an installed look package (e.g. "neat"). Omit it to use the spec's look, else the user's default (AINOTATE_LOOK, config.toml). A look that is not installed or fails falls back to default with a warning listing the installed looks.
specYesRender spec as a JSON object (or a JSON string). Full schema: resource ainotate://spec.
draftNotrue (default): write to a temp folder so you can check the preview first. false: save to the output folder (~/Pictures/AInotate unless configured) and the backup folder.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.1.1
    • addedInput schema / properties / draft / description
      Added value: +"true (default): write to a temp folder so you can check the preview first. false: save to the output folder (~/Pictures/AInotate unless configured) and the backup folder."
    • addedInput schema / properties / spec / description
      Added value: +"Render spec as a JSON object (or a JSON string). Full schema: resource ainotate://spec."
  2. First observedv0.1.0

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already disclose readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the safety profile is carried by structured data. The description adds genuinely useful context the annotations don't: draft writes go to a temp folder, draft=false persists to the output folder plus a backup folder, output is PNG only, and the input image is never modified. It stops short of disclosing failure behavior or how partially-valid specs are handled, so it is solid but not exhaustive.

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?

The critical scoping and workflow guidance is front-loaded in the first two sentences, and the reference pointer (ainotate://spec) prevents the spec dump from needing to be exhaustive. The middle section is a dense run-on packed with pipes and braces that takes effort to parse, which costs a point, but essentially every clause carries operational information.

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

Completeness5/5

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

For a complex, spec-driven rendering tool, the definition covers the input contract, the draft/save lifecycle, coordinate units, output location, artifact type, and return contents (paths, size, warnings, legend, redactions, preview), and links to the full spec resource for depth. Nothing an agent needs to call it correctly is missing.

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 100%, so baseline is 3, but the description goes further by inlining the actual spec grammar (input, scale, crop with 'auto' or coords, name, marks with type/rect/label/n/color) and by stating the key unit rule that every coordinate uses one unit and scale converts to image px. That meaning is not derivable from the schema, which only points at a resource.

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?

Opens with a specific verb+resource ('Draw marks on an existing image') and enumerates the exact mark types (steps, boxes, arrows, labels, highlights, spotlight, text, redaction). It explicitly distinguishes itself from the sibling 'shoot' (one-call web page capture) and from simple preview tools, so an agent can select it without opening a schema.

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

Usage Guidelines5/5

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

States the prerequisite condition plainly ('once you have an image and exact rects') and routes to the sources that produce them (capture_web, capture_window targets, locate, grid + zoom). It also names the alternative for the web-page case ('use shoot instead') and prescribes the draft-then-confirm workflow, covering when-not and how.

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