A document review workflow with an AI agent can follow the same steps every round: list what is open, reply in threads, resolve, carry the comments to the next draft, and produce a clean copy. The GroupDocs.Annotation.Mcp server exposes each step as a tool, so an LLM in Claude, Cursor or GitHub Copilot can run the round locally while a person approves the outcome:
List the annotations in output/contract_annotated.pdf. Which ones have no replies?
The step-by-step version with config and troubleshooting is in the documentation: How to run a document review cycle with an AI agent.
固定されたシーケンスがないとレビューラウンドがずれる理由
レビューのラウンドはほとんど「コメントを追加する」だけではありません。未解決の項目、誰が提起したか、回答、解決、次の読者向けのクリーンコピー、という一連の流れです。人が手作業で行うと順序がばらばらになり、返信が署名なしで残り、次のドラフトでは前回のコメントが失われます。
同じシーケンスを毎回実行するエージェントを使えば、そのばらつきを排除できます。また、監査が参照するのはチャットの記録ではなく、文書内部に残されたトレイルになるため、追跡が容易です。
ワークフロー、ステップバイステップ
各ステップは 1 つのプロンプトと 1 つのツールで構成されます。
- 未解決項目を見つける。 プロンプト: 「
output/contract_annotated.pdfのアノテーションを一覧表示してください。返信がないものはどれですか?」 エージェントはget_annotationsを呼び出し、各アノテーションのid、タイプ、メッセージ、ページ、バウンディングボックス、ユーザー、返信を取得します。返信が空配列のコメントが未回答なので、エージェントは保持しているリストをフィルタリングします。 - スレッドに返信する。 プロンプト: 「Maria のコメント『12 月 3 日付で財務が条件を承認した』に対して返信してください。署名は Alex としてください。」 エージェントは
add_replyを呼び出し、annotationId、comment、userNameを渡します。userNameのデフォルトはmcp-userなので、実名を指定してください。 - 完了した項目を解決する。 ルールを決めてプロンプトに記述します。例: 返信を残してスレッドを記録にする、
remove_annotationsでアノテーションを削除する、またはupdate_annotationでメッセージの先頭に[RESOLVED]を付ける。 - 次のドラフトへ持ち越す。 プロンプト: 「レビュー済みコピーからアノテーションをエクスポートし、
contract-v3.pdfにインポートしてください。」 エージェントはexport_annotationsで XML ファイルを書き出し、続いてimport_annotationsを実行します。 - クリーンコピーを返す。 プロンプト: 「すべてのアノテーションを削除し、相手方用のクリーンコピーを作成してください。」
remove_annotationsにidsを指定しなければ、すべてのアノテーションが新しいファイルにクリアされます。
エージェントが決定すること、エンジンが行うこと
| 決定またはアクション | エージェント | エンジン |
|---|---|---|
| どのコメントに回答が必要か | get_annotations の結果を読み取り、フィルタリングする |
すべてのアノテーションとその id、作成者、返信を返す |
| 返信内容 | 指示に基づいて文章を作成する | userName で指定された名前で保存する |
| どの解決手段を採用するか | プロンプトに書かれたルールに従う | 指示された編集または削除を実行する |
| ラウンドが完了したかどうか | カウントを報告し、人間が承認する | 変更結果をストレージに保存する |
エンジンは「解決済み」とみなすかどうかを判断しません。アノテーションモデルには解決フラグがなく、解決の方法はエージェントがプロンプトで指定した慣例に従います。
人間はどこにいるのか(ループ内で)
2 か所です。ステップ 5 の前に、エージェントに「削除しようとしているアノテーションの数」を報告させ、あなたの確認を待ちます。すべてのアノテーションを削除する操作は、ワークフロー内で唯一「元に戻せない」呼び出しです。チーム外に情報が出る前に、エージェントが作成した返信内容を必ず確認してください。アノテーションのテキストは他者からのコメントなので、指示としてではなく要約すべきコンテンツとして扱います。
例示セッション(抜粋)
以下はツールの documented な動作を基にしたイメージであり、実際のスクリーンショットではありません。
You: List the annotations in output/contract_annotated.pdf. Which ones have no replies?
Agent: [calls get_annotations on output/contract_annotated.pdf]
Found 4 annotations. Two have no replies:
- id 2, page 2, Maria: "Confirm the payment terms with finance."
- id 4, page 5, Maria: "Delivery date conflicts with Schedule B."
You: Reply to the first one that finance approved the terms on 12 March.
Sign it as Alex.
Agent: [calls add_reply: annotationId=2, userName="Alex",
comment="Finance approved the terms on 12 March."]
Added reply to annotation 2 in output/contract_annotated.pdf.
(The agent uses the saved file name in the next call.)
Claude、Cursor、または Copilot 用サーバーの実行方法
Docker イメージを起動し、ドキュメントフォルダーをマウント、ストレージフォルダーとは別の出力フォルダーを指定します。
docker run --rm -i -v $(pwd)/documents:/data \
-e GROUPDOCS_MCP_OUTPUT_PATH=/data/output \
ghcr.io/groupdocs-annotation/annotation-net-mcp:latest
同じコマンドと dnx GroupDocs.Annotation.Mcp --yes の代替手順は、AI review that lands in the document, not in the chat log に記載されています。ハブページには Claude Desktop、Claude Code、VS Code + GitHub Copilot、Cursor、Windsurf など各クライアントの登録情報があります。
正直な制限
- 評価モード。 ライセンスが無い場合、すべてのページ上部にトライアルバッジが付与されます。これは相手方に送るべきものではありません。正式なレビュー前に
get_license_statusで確認してください。 - 各執筆ツールは結果をストレージに書き戻す。 したがってラウンドはファイルの連鎖を生成します。エージェントには前回の結果ファイル名を次に渡すよう指示し、編集前に必ず
get_annotationsで再読込させてください。GROUPDOCS_MCP_OUTPUT_PATHをストレージフォルダー以外に設定すれば、生成されたファイルに対するadd_reply、update_annotation、remove_annotationsがすべて成功します。デフォルト(出力がストレージフォルダーに入る)では 2 回目の書き込みがbeing used by another processエラーで失敗します。 - 座標はそのまま引き継がれる。 再フローされたドラフトでは、インポートされたノートが元テキストの近くに配置されることがあります。配置は必ず事後確認してください。
- Linux でのプレビュー。
generate_pages_previewは現在 Linux(Docker イメージ含む)上の PDF で失敗します(TypeInitializationExceptionforGdip:System.Drawing.Commonが非 Windows プラットフォームでサポートされていません)。Word やその他 Office 文書はレンダリング可能で、Windows のdnxではすべての形式が表示されます。その他 10 のツールは影響を受けません。本稿のレビュー用ツールはプレビュー描画エンジンを使用していません。
よくある質問
AI が PDF のコメントに自動で返信できますか?
はい。エージェントは get_annotations でコメントを取得し、add_reply でアノテーション ID、返信テキスト、作者名を指定して返信します。
コメントに「解決済み」ステータスはありますか?
ありません。ツール側に解決フラグはなく、スレッドを残す、アノテーションを削除する、またはメッセージ先頭に [RESOLVED] を付けるといった慣例をプロンプトで決めてください。
文書を改訂したときにコメントを残せますか?
はい。レビュー済みコピーから XML 形式でアノテーションをエクスポートし、新しいドラフトにインポートすれば、コメントを引き継げます。同じツールペアで 2 人のレビュアーのコピーを 1 つに統合することも可能です。
詳細を見る
- Documentation, canonical how-to: How to run a document review cycle with an AI agent
- Documentation hub: GroupDocs.Annotation MCP Server
- Start here: AI review that lands in the document, not in the chat log
- Related: 3 ways to extract every comment from a document set with MCP
- Related: Show the agent what it did
- On-premise and security model: 3 architectures for AI document processing, and the one that keeps files inside your network
- Questions: GroupDocs Annotation forum
- Source: GroupDocs.Annotation.Mcp on GitHub