MCP save_note can't edit an existing comment

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Problem

save_note creates a comment on a merge request or work item, or replies to a thread. It can't change a comment that already exists. Other save_* tools (save_work_item, save_merge_request) create or update, so the name suggests editing is supported when it isn't.

When an agent needs to fix its own comment, for example to correct a link that pointed to the wrong issue or move a footnote after a reviewer's feedback, it has no MCP option. It either falls back to the REST or GraphQL API through another tool, or posts a second comment with the correction, which leaves the thread harder to read.

Proposal

  1. Add an optional note_id to save_note. When it's present, update that note's body instead of creating a new one, using the existing updateNote mutation.
  2. Keep the current target identification (url, or merge_request_iid / work_item_iid plus a project or group) so the tool can confirm the note belongs to that merge request or work item.
  3. Return the updated note, and a clear error when the note doesn't exist or the user isn't allowed to edit it.
  4. Say in the tool description that save_note creates a comment, replies to a thread, or edits an existing comment with note_id.

Open questions for engineering

  • Whether editing should be limited to the caller's own notes, matching the UI, or follow the full note edit permissions.
  • How tool governance should treat this: same write category as creating a note, or separate so admins can allow comments without allowing edits.
  • Whether internal notes need any extra handling when edited.

Out of scope

  • Deleting comments.
  • Resolving or unresolving threads.
Edited by 🤖 GitLab Bot 🤖