Skip to main content
Glama

Update comment

update_comment
Destructive

Edit a comment on an issue: pass 'body' to replace the whole of it, or 'edits' to change part of it — exact find-and-replace against the comment as get_comments hands it back, each 'oldText' occurring exactly once. One body axis per call. With 'edits' the answer says where each one landed rather than giving the comment back, so correcting one number in a long comment costs neither a resend nor a re-read. Nothing here takes a version and none is needed: an 'oldText' is matched against the comment as it stands now, so an edit whose text somebody has since rewritten is refused rather than applied over their words. The author may edit their own comment; anyone with full write access in the project may edit any. Answers with 'notified' — and note that this is only the people the edit newly reaches: names already present in the old text are not notified again, and the comment is not re-announced to watchers.

Input Schema

NameRequiredDescriptionDefault
keyYesIssue key the comment is on, e.g. 'UK-1'.
bodyNoThe new body, replacing the old one entirely. Markdown is kept as written, and carries $…$ / $$…$$ LaTeX formulas and [~username] mentions.
editsNoExact replacements in the comment, changing part of it in place. Matched against the body as get_comments returns it — stored as written, so what you read is what an 'oldText' has to equal, whitespace and line breaks included. Every edit is looked for in that text, not in what the edits before it produced; if any one does not fit, none is applied.
commentIdYesThe comment's id, as returned by get_comments or add_comment.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

While annotations already flag destructiveHint=true, the description adds what annotations cannot: there is no version parameter and none is needed because matching is against current text, a stale oldText is refused rather than applied, batch edits are all-or-nothing, and notification is limited to newly reached names without re-announcing to watchers. That is substantial behavioral context beyond the structured hints.

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-loaded correctly: purpose and mode choice come first, then matching semantics, then permissions, then return shape. A few flourishes ('costs neither a resend nor a re-read') and some restatement of the schema's exact-match rule could be cut without losing 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?

There is no output schema, and the description compensates by describing both return shapes: 'edits' returns landing positions instead of the comment, and the response carries 'notified'. Combined with the authorization and concurrency notes, an agent has everything needed to call this correctly and interpret the result.

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; the description still adds meaning by stating the body/edits exclusivity, that oldText is matched against the Markdown source as get_comments returns it (whitespace and line breaks included), and that each edit is evaluated against the original text rather than the output of prior edits. Most of the per-field detail is redundant with the schema, which caps this at 4.

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?

Opening clause names a specific verb and resource ('Edit a comment on an issue') and immediately scopes it to issue comments, which separates it from update_wiki_comment and from add_comment. The two operating modes are named in the same sentence, so an agent knows exactly what the tool does before reading further.

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?

Explicit mode-selection rule ('pass body to replace the whole of it, or edits to change part of it... One body axis per call'), plus an authorization rule for who may call it. It also references get_comments as the source of the text edits are matched against, giving the agent the full call pattern rather than just the verb.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources