Skip to main content
Glama

Update wiki comment

update_wiki_comment
Destructive

Edit a comment on a wiki page — your own, or anyone's with full write access in that project. Read it first with get_wiki_page(withMarkdown: true), which gives each comment its 'markdown' and 'version'. Pass 'markdown' to replace the whole comment, or 'edits' to change part of it (exact find-and-replace on that Markdown, each 'oldText' occurring exactly once) — the answer then says where each landed, not the comment. An inline comment's anchor moves with 'inlineSelection': the page text it should point at, copied exactly; an empty string turns it into an ordinary footer comment, which is the only way it ever stops being anchored. Mention someone as @Their Name, the wiki's own form. Answers with 'notified' — only the people the edit newly reaches, since names already in the old text are not notified again and the page is not re-announced to its watchers.

Input Schema

NameRequiredDescriptionDefault
editsNoExact replacements in the comment's Markdown — the text get_wiki_page returns as a comment's 'markdown'. Every 'oldText' is matched against it as you read it (not against the result of the other edits) and must occur exactly once unless 'replaceAll' is set; if any edit does not fit, none is applied.
markdownNoThe whole comment, replacing what is there. Markdown, which also carries $…$ / $$…$$ LaTeX formulas.
commentIdYesThe comment's id, as get_wiki_page lists it or add_wiki_comment returned.
inlineMatchNoWhich occurrence of 'inlineSelection' on the page to anchor to, counted from 1. Only needed when the text occurs more than once.
expectedVersionNoThe version you read (from get_wiki_page). If the comment has moved on since, the edit is refused instead of overwriting somebody else's.
inlineSelectionNoMove the inline anchor: the page text this comment should point at, copied exactly from the page. An empty string detaches it, making it a footer comment. Refused when the page does not carry that text, or carries it more than once and 'inlineMatch' does not say which — never resolved by guessing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds real behavior beyond that: notification semantics ('only the people the *edit* newly reaches', watchers not re-announced) and the fact that partial edits return landing positions rather than the comment. It does not restate atomicity or version-refusal, which live in the schema.

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?

Dense but front-loaded: the read-first guidance and the two editing modes come before the edge-case details. The em-dash parentheticals make it a single long paragraph, which slightly hurts scannability, but no sentence is filler.

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?

With no output schema, the description carries the return-value burden and does so: partial edits report where each landed, and the response includes 'notified'. For a 6-parameter destructive mutation, the guidance on versioning, anchoring, and atomic failure is sufficient to call it correctly.

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 value by explaining the mutual-exclusion trade-off between 'markdown' and 'edits', that oldText is matched against the original comment text rather than the result of prior edits, and that an empty inlineSelection converts the comment to a footer comment.

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 ('Edit a comment on a wiki page') and immediately scopes permissions ('your own, or anyone's with full write access'). It is clearly distinguishable from add_wiki_comment, delete_* siblings, and get_comments.

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?

Tells the agent to read first with get_wiki_page(withMarkdown: true) to obtain 'markdown' and 'version', then routes between the two editing modes: 'markdown' for full replacement, 'edits' for partial find-and-replace. The inlineSelection empty-string detach case is explicitly framed as the only way to unanchor.

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