You can compare two versions of a document with an AI agent and get a short answer, a marked-up file, or both, while the files stay on your machine. Install the GroupDocs.Comparison.Mcp server, put both versions in one folder, and ask Claude Desktop, Claude Code, Cursor or GitHub Copilot locally:

contract-v1.docx と contract-v2.docx を比較してください。変更点を要約し、マークアップされたコピーを作成してください。

The step-by-step version with config and troubleshooting is in the documentation: How to compare documents with AI agents using MCP.

AIエージェントが文書を読んで比較すべきでない理由

テキストを読んで「比較」する言語モデルは、違いの記述を生成するだけで、実際の測定は行いません。存在しない変更を報告したり、実際にある変更を見逃したりする可能性があります。MCPサーバーはその作業を比較エンジンに委譲します。エージェントは得意なこと、すなわち質問を理解し結果を説明することに専念します。エンジンはフォーマットを意識した比較を行い、各変更をデータとして返します:変更の種類、ページ、コンポーネント、変更されたフラグメント、周囲のテキスト、テーブル内の変更であればセル情報などです。通常から太字への変更などのスタイル変更も変更として報告されます。

以下の3つの方法のどれを使うかは、回答が欲しいか文書が欲しいかという一つの質問に依存します。

方法 1: 回答を求めて analyze_changes を取得する

質問が「what」「did」「how many」で始まる場合、エージェントは analyze_changes を呼び出します。このツールは差分を構造化データとして返し、ファイルは書き出しません。

proposal-draft.docx と proposal-final.docx の間で何が変わったか教えてください。簡潔にお願いします。

レスポンスは <N> change(s) detected(または No changes detected)で始まり、続いて JSON 配列が出力されます。エージェントはその配列をフィルタリング・要約するため、後続の「削除だけ」や「数値は変わったか?」といった質問でもファイルに再度アクセスすることはありません。デフォルトではこの方法を使用してください。レンダリングをスキップするため、代替手段よりも高速かつ低コストです。

方法 2: 文書を求めて compare を取得する

リクエストが「ファイルをください」の形の場合、エージェントは compare を呼び出します。このツールはマークアップされた結果文書を生成し、出力フォルダーに <source‑stem>_compared<ext> という名前で保存します(例: contract-v1_compared.docx)。既存のファイルは決して上書きされず、代わりに新しい名前が付けられます。

法務部に送るための、contract-v1.docx と contract-v2.docx のマークアップされたコピーを作ってください。

レビュアーは結果を Word やその他のビューアで開くだけです。MCP クライアントや AI ツールは不要です。同じ変更リストがエージェントに返されるので、引き続き質問できます。

方法 3: 両方を求めてエージェントに呼び出しを連鎖させる

高度なエージェントは 1 つのプロンプトから 2 回呼び出します:要約用に analyze_changes、ファイル用に compare。これは本記事冒頭のプロンプトです。今すぐ短い要約を読み、後で別の人にファイルを渡したい場合に使用してください。

比較する前に、エージェントにファイル情報を確認させることもできます:

contract-v2.docx は何ページですか?

これにより get_document_info がトリガーされ、比較は行わずにファイルタイプ、ページ数、サイズ、ページごとの寸法が返されます。

設定方法は?

.NET 10 SDK がインストールされた環境で dnx GroupDocs.Comparison.Mcp --yes を実行するか、Docker イメージ ghcr.io/groupdocs-comparison/comparison-net-mcp を使用します。クライアント側でサーバーを登録し、GROUPDOCS_MCP_STORAGE_PATH を両バージョンが格納されたフォルダーに設定してください。

クライアントでの表示はどうなるか?

例示的なセッション(省略・イラスト的;実際の文言はクライアントとモデルに依存):

あなた:    contract-v1.docx と contract-v2.docx を比較してください。変更点を要約し、マークアップされたコピーを作成してください。

エージェント:  [calls analyze_changes: contract-v1.docx, contract-v2.docx]
               [calls compare: contract-v1.docx, contract-v2.docx]

               エンジンは変更を検出しました。ページ4の表にある支払スケジュールや、通常から太字に変更された条項などです。マークアップされたコピーは出力フォルダーに contract-v1_compared.docx として保存されました。

制限事項は何ですか?

  • 評価上限。 ライセンスがない場合、サーバーは評価モードで動作し、最初の 2 ページだけが比較対象となり、結果には透かしが入ります。長文ドキュメントでも短く安心できる変更リストが得られます。まず「比較サーバーのライセンス状態は?」と尋ねてください。エージェントは get_license_status を呼び出し、"mode": "evaluation" が返ってきたら上限が適用されていることを意味します。
  • 両側とも同じ形式。 同じ形式同士で比較してください。形式が異なる場合は事前に変換が必要です。

FAQ

Claude は PDF をアップロードせずに比較できますか?
はい。MCP サーバーを使用すれば、ローカルフォルダー内のファイルに対してローカルプロセスで比較が実行されます。プロンプトやエージェントが引用するフラグメントは、使用しているクライアントのモデルに送信されます。

analyze_changes と compare の違いは何ですか?
どちらも同じ変更を検出します。analyze_changes は変更をデータとして返し、ファイルは生成しません。一方 compare はマークアップされた文書も生成します。

Word ファイルだけで動作しますか?
いいえ。ツールは PDF、DOCX、XLSX、PPTX、ODT、RTF、TXT、HTML など、30 以上のフォーマットに対応しています。

さらに詳しく