How to run a document review cycle with an AI agent
Leave feedback
On this page
A review round is rarely “add a comment”. It is: what is still open, who raised it, answer it, resolve it, and produce a clean copy for the next audience. All five are tool calls.
Note
The commands and config snippets on this page are for the .NET build of the server — the only platform available today. Installation and client setup: MCP server for .NET. Other platforms will expose the same tools with their own launch command; everything else on this page applies unchanged.
1. What is open?
List the annotations in contract_annotated.pdf. Which ones have no replies?
get_annotations returns every annotation with its id, author, page, message, and replies. “Unanswered” is just an empty replies array — the agent filters the list it already has, without re-reading the document.
2. Answer in threads
Reply to Maria’s comment that finance approved the terms on 12 March. Sign it as Alex.
add_reply takes the annotationId from step 1, the comment, and a userName. Supply the name: a thread without authors cannot be filtered later, and remove_replies can clean up by author only if the author was recorded.
3. Resolve what is done
There is no “resolved” flag in the model — resolution is a convention you choose:
Reply and leave it — the thread is the audit trail; nothing is deleted.
Remove the annotation — remove_annotations by id once an issue is closed, keeping only open points.
Edit the message — update_annotation to prefix [RESOLVED], which keeps the history visible in any viewer.
Pick one and tell the agent which: “mark resolved by prefixing the message, do not delete anything” is a perfectly good instruction.
4. Carry the round to the next draft
The document changes; the comments should not be lost:
Export the annotations from the reviewed copy, then import them into contract-v3.pdf.
export_annotations writes an XML file; import_annotations merges it into the new draft. Coordinates carry over as-is, so on a re-flowed document a note may land near rather than exactly on its original text — worth a preview pass afterwards.
The same pair merges two reviewers’ copies into one.
5. Hand back something clean
Remove all annotations and give me a clean copy for the counterparty.
remove_annotations with no ids clears everything into a new file. Ask the agent to confirm the count before it runs — this is the one call in the workflow with no undo.
Keeping the trail honest
Two habits make this workflow trustworthy:
Always name the file you mean. Each step writes a new file; the agent should pass the previous result forward, not the original.
Check the licence before a formal review. In evaluation mode every page carries a trial badge, which is not something to send to a counterparty — get_license_status answers in one call.
Was this page helpful?
Any additional feedback you'd like to share with us?
Please tell us how we can improve this page.
Thank you for your feedback!
We value your opinion. Your feedback will help us improve our documentation.