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 つのツールで構成されます。

  1. 未解決項目を見つける。 プロンプト: 「output/contract_annotated.pdf のアノテーションを一覧表示してください。返信がないものはどれですか?」 エージェントは get_annotations を呼び出し、各アノテーションの id、タイプ、メッセージ、ページ、バウンディングボックス、ユーザー、返信を取得します。返信が空配列のコメントが未回答なので、エージェントは保持しているリストをフィルタリングします。
  2. スレッドに返信する。 プロンプト: 「Maria のコメント『12 月 3 日付で財務が条件を承認した』に対して返信してください。署名は Alex としてください。」 エージェントは add_reply を呼び出し、annotationId、comment、userName を渡します。userName のデフォルトは mcp-user なので、実名を指定してください。
  3. 完了した項目を解決する。 ルールを決めてプロンプトに記述します。例: 返信を残してスレッドを記録にする、remove_annotations でアノテーションを削除する、または update_annotation でメッセージの先頭に [RESOLVED] を付ける。
  4. 次のドラフトへ持ち越す。 プロンプト: 「レビュー済みコピーからアノテーションをエクスポートし、contract-v3.pdf にインポートしてください。」 エージェントは export_annotations で XML ファイルを書き出し、続いて import_annotations を実行します。
  5. クリーンコピーを返す。 プロンプト: 「すべてのアノテーションを削除し、相手方用のクリーンコピーを作成してください。」 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 で失敗します(TypeInitializationException for Gdip: System.Drawing.Common が非 Windows プラットフォームでサポートされていません)。Word やその他 Office 文書はレンダリング可能で、Windows の dnx ではすべての形式が表示されます。その他 10 のツールは影響を受けません。本稿のレビュー用ツールはプレビュー描画エンジンを使用していません。

よくある質問

AI が PDF のコメントに自動で返信できますか?
はい。エージェントは get_annotations でコメントを取得し、add_reply でアノテーション ID、返信テキスト、作者名を指定して返信します。

コメントに「解決済み」ステータスはありますか?
ありません。ツール側に解決フラグはなく、スレッドを残す、アノテーションを削除する、またはメッセージ先頭に [RESOLVED] を付けるといった慣例をプロンプトで決めてください。

文書を改訂したときにコメントを残せますか?
はい。レビュー済みコピーから XML 形式でアノテーションをエクスポートし、新しいドラフトにインポートすれば、コメントを引き継げます。同じツールペアで 2 人のレビュアーのコピーを 1 つに統合することも可能です。

詳細を見る