add_reply

add_reply adds a reply to an existing annotation, which is what turns isolated notes into threads. Call get_annotations first for the target annotationId. Example prompt: “Reply to Maria’s comment that finance approved it”.

Tool description (as the AI agent sees it):

Adds a reply to an existing annotation and saves the result back to storage. Supports PDF, DOCX, XLSX, PPTX, and 50+ more document and image formats. Call get_annotations first to retrieve the target annotation ‘id’. Call this tool whenever the user asks to reply to an annotation, add a comment thread, or respond to a review note. Do NOT pre-check whether files exist — pass the filename the user provided directly. Returns a saved-path message (‘Added reply to annotation in ’). On failure, the response text starts with ‘Reply add failed for’ followed by the underlying exception type, message, and inner-exception chain.

Parameters

NameTypeRequiredDescription
fileobjectyesFileInput shape
annotationIdintegeryesAnnotation ID to reply to (from get_annotations)
commentstringyesReply comment text
userNamestringnoName of the user posting the reply. Defaults to ‘mcp-user’.
passwordstringnoPassword for protected documents

Example call

{
  "name": "add_reply",
  "arguments": {
    "file": {
      "filePath": "contract_annotated.pdf"
    },
    "annotationId": 3,
    "comment": "Finance approved these terms on 12 March",
    "userName": "Alex"
  }
}

Result

A message naming the saved document with the reply attached to the annotation.

userName sets the reply’s author; supply it so a later remove_replies by author, or a report grouped by reviewer, has something to work with.

On failure the text starts with Reply failed for, followed by the exception type and message.

Example prompts

  • “Reply to Maria’s comment that finance approved these terms.”
  • “Answer every open question on page 2 with a short status.”
  • “Add a reply to annotation 4 saying this was fixed in revision 3.”

See it used end-to-end: Run a review cycle with replies.