Skip to main content
Glama

edit_annotation

Modify the text of an existing annotation—shorten, replace, or clear notes without changing position, shape, dimensions, quantities, or review records; use an annotation ID from list_annotations.

Instructions

Shorten, replace or clear the text of an existing annotation. Get annotation_id from list_annotations (annotations, not verdicts). Changes only text: position, shape, dimension length, condition links, quantities and review records stay unchanged. Empty text clears the note; a dimension still prints its measured length. Refuses an RFI-linked note: review that question's context in the browser RFI register. One undo_last step restores the previous text. Does not create a verdict or human approval.

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": {
      "annotation_id": "<annotation_id>",
      "text": "<text>"
    },
    "name": "edit_annotation"
  }
}

Input Schema

NameRequiredDescriptionDefault
textYesReplacement text; empty string clears it
annotation_idYesAn annotation id from list_annotations

Output Schema

NameRequiredDescriptionDefault
idYes
noteYes
textYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.31
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Addedv0.1.21

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does so well: it enumerates what is mutated (text only) versus what is preserved (position, shape, dimension length, condition links, quantities, review records), defines the empty-string edge case and the dimension still printing its length, discloses the RFI-linked refusal, and states one-step reversibility via undo_last. It even clarifies what the tool does not do (no verdict, no human approval). Missing only 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.

Conciseness4/5

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

Front-loads the core action, then stacks constraints in short declarative sentences with no filler. It is dense rather than bloated, though the run of five back-to-back clauses about preserved fields could be compressed for faster scanning.

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 two-parameter text mutation with an output schema (so return values need no explanation) and no annotations, the description covers scope, side effects, edge cases, refusal conditions, and reversibility. An agent has enough to invoke it correctly and to know when not to call it.

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 100% and the schema already documents both fields, including that an empty string clears the text. The description adds marginal meaning beyond that (the 'annotations, not verdicts' sourcing constraint and the dimension-length behavior after clearing), but does not explain format or length limits on the replacement text.

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 set (shorten, replace, clear) against a specific resource (existing annotation text), and immediately distinguishes itself from annotation creation by naming list_annotations as the id source and noting the 'annotations, not verdicts' distinction. An agent can identify this as the text-mutation tool without opening the schema.

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?

Gives a clear precondition (obtain annotation_id from list_annotations) and an explicit refusal path (RFI-linked notes must be reviewed in the browser RFI register), plus the recovery route via undo_last. It does not explicitly contrast with sibling write tools like annotate or link_annotation, so the routing picture is strong but not complete.

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