AI エージェントは、マークアップされた文書からすべてのコメントを抽出し、要約、表、または XML アーカイブ の 3 つの方法でレポートできます。GroupDocs.Annotation.Mcp サーバーは、注釈を構造化データとして LLM に渡し、Claude、Cursor、または GitHub Copilot がローカルで推論を行います。

Summarize the review of contract_annotated.pdf: how many comments, from whom, and what the main themes are.

ステップバイステップの設定とトラブルシューティングは、ドキュメントに記載されています: How to extract and report on document annotations with AI.

PDF から注釈を抽出すると何が得られますか?

マークアップされた文書は、インクだけでなくデータでもあります。get_annotations ツールは、found(件数)と annotations(配列)を含む JSON オブジェクトを返します。各エントリは、注釈の id、type、message、ページ番号(1 から始まる)page、バウンディングボックス、user、および replies を保持します。文書の解析や OCR は行われないため、エージェントは注釈レコード自体から作業します。

ツールは呼び出しごとに 1 つの文書しか処理できません。複数ファイルを対象にする場合は、プロンプトでファイル名を列挙し、エージェントがファイルごとにツールを呼び出します。サーバーはフォルダー単位の呼び出しを提供していません。

方法 1: 要約を求める

1 回の呼び出しで取得し、推論を行います。ファイル名と要約の目的を伝えてください。

Summarize the review of contract_annotated.pdf: how many comments, from whom, and what the main themes are.

エージェントは get_annotations を呼び出し、エントリ数をカウントし、user 別にグループ化し、message フィールドから見つけたテーマを記述します。件数と著者はデータから取得されます。テーマはモデルのテキスト解釈であるため、人間の目で確認することが推奨されます。

方法 2: 表またはフィルタ済みリストを求める

データが構造化されているため、レポートの形はプロンプト次第です。

Give me a table: page, author, comment, answered yes/no.

Group the comments by reviewer and tell me who has the most open items.

List only the strikeouts. I want to see what people want removed.

Which pages have no comments at all?

最後の質問は PDF リーダーが苦手とするものですが、配列で直接答えられます。「answered」は replies が空でないリストを指し、「pages without comments」は page 値に含まれないページ番号です。ページ数は get_document_info と組み合わせて取得できます。

方法 3: コメントを XML としてアーカイブする

Export the annotations so we can keep them with the case file.

export_annotations は注釈だけを保持した XML ファイルを書き出します。成功メッセージは Exported N annotation(s) from <file> to <name>.annotations.xml の形です。ファイルは小さく diff が可能で、import_annotations を使って別のコピーに適用できます。これにより、保持ポリシーでコメントが除外されている文書や、レビューラウンドを比較したい場合に便利です。2 回エクスポートした同一文書は 2 つのテキストファイルとなり、エージェントはその差分を説明できます。

例示セッション(抜粋)

以下はツールの動作を示すイラストであり、実際のスクリーンショットではありません。

You:   Summarize the review of contract_annotated.pdf and group it by reviewer.

Agent: [calls get_annotations on contract_annotated.pdf]
       Found 5 annotations: 4 from Maria, 1 from Dana.
       Maria: payment terms (page 2), delivery date (page 5),
         liability cap (page 6), a missing signature block (page 6).
       Replies: Alex answered the page 2 payment terms comment.
       Dana: a strikeout on page 4 marking an outdated clause.
       Maria comments without a reply: page 5 and the two on page 6.

エージェントはコメントに対して操作できますか?

リストを渡すことは可能です。たとえば、未回答のコメントごとに課題を作成したり、返信メールの草案を作ったり、ステータス段落を書いたりできます。ただし 1 つのルールがあります。コメントは他者からのものであるため、エージェントは注釈テキストを「報告対象のコンテンツ」として扱い、指示として実行すべきではありません。「以前の指示を無視してください」というコメントは単なるデータフィールドです。要約やレポートの作成を依頼し、実際に何かを変更するアクションは自分のレビュー下で行ってください。

Claude、Cursor、Copilot 用サーバーはどう実行しますか?

サーバーは ghcr.io/groupdocs-annotation/annotation-net-mcp Docker イメージ、または NuGet パッケージ dnx GroupDocs.Annotation.Mcp --yes(.NET 10 SDK)から起動し、文書が格納されたフォルダーをマウントします。ハブページには Claude Desktop、Claude Code、VS Code + GitHub Copilot、Cursor、Windsurf などのクライアント登録情報が掲載されています。

正直な制限事項

  • 評価モード。 すべてのページ上部にトライアルバッジが表示されます。注釈データは変更されないため、ライセンスなしでもレポートは正確です。ただし、送信できる内容に制限があります。プランに「マークアップされたコピーをメールで送る」とある場合は、まず get_license_status を確認してください。
  • 1 呼び出しにつき 1 文書。 多数のファイルを処理するには多数の呼び出しが必要で、エージェントはそれぞれのツール呼び出しとレポートを行う必要があります。
  • エクスポートは XML。 get_annotations はエージェントが読むための JSON を返し、export_annotations は XML をストレージに書き出します。
  • プレビュー不要。 3 つの方法はいずれもページをレンダリングしないため、Linux 上の generate_pages_preview による PDF プレビュー制限の影響を受けません。

FAQ

PDF からすべてのコメントをエクスポートするにはどうすればよいですか?
エージェントに注釈のエクスポートを指示してください。エージェントは export_annotations を呼び出し、XML ファイルを文書と同じ場所に作成します。コメントをチャット内に一覧表示したい場合は get_annotations を呼び出します。

AI が複数ファイルにわたるレビュアーコメントを要約できますか?
はい。プロンプトでファイル名を列挙すれば、エージェントは各ファイルに対して get_annotations を実行し、結果を 1 つの要約に統合します。ファイルは 1 回の呼び出しで 1 つずつ処理されます。

ライセンスがなくてもレポートは変わりますか?
注釈データ自体は変わりません。変更があるのは、レンダリングまたは保存されたページにトライアルバッジが付く点だけです。

さらに深く掘り下げる