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:

Compare contract-v1.docx with contract-v2.docx. Summarize what changed, then give me a marked-up copy.

The step-by-step version with config and troubleshooting is in the documentation: 如何使用 MCP 与 AI 代理比较文档.

为什么不应该让 AI 代理通过阅读文档来比较文档?

语言模型通过读取文本“比较”两个文档时,只会产生差异的描述,而不是对差异的度量。它可能报告不存在的更改,或漏掉实际的更改。MCP 服务器将这项工作交给比较引擎。代理仍然做它擅长的事:理解你的问题并解释结果。引擎负责格式感知的比较,并将每个更改以数据形式返回:类型、页码、组件、变更片段、周围文本,以及当更改位于表格中时的单元格。样式更改(例如从普通文字变为粗体的条款)也会被报告为更改。

你使用下面三种方式中的哪一种,取决于一个问题:你想要答案还是文档?

方式 1:请求答案并获取 analyze_changes

当问题以 “what”、 “did” 或 “how many” 开头时,代理会调用 analyze_changes。该工具以结构化数据返回差异,不会生成文件。

What changed between proposal-draft.docx and proposal-final.docx? Keep it short.

响应以 <N> change(s) detected(或 No changes detected)开头,随后是 JSON 数组。代理会过滤并汇总该数组,因此后续的 “只要删除的部分” 或 “有没有数字变化?” 等请求不会再次触及文件。默认使用此方式:它跳过渲染,因而比其他方式更快、更便宜。

方式 2:请求文档并获取 compare

当请求是 “给我一个文件” 时,代理会调用 compare。该工具渲染带标记的结果文档并保存到你的输出文件夹,文件名为 <source-stem>_compared<ext>,例如 contract-v1_compared.docx。已有文件永远不会被覆盖;会使用新名称。

Give me a marked-up copy of contract-v1.docx and contract-v2.docx that I can send to legal.

审阅者可以在 Word 或任何其他查看器中打开结果文件。他们不需要 MCP 客户端或 AI 工具。相同的更改列表也会返回给代理,所以你仍然可以就它提问。

方式 3:同时请求两者,让代理链式调用

一个强大的代理可以在一次提示中完成两次调用:analyze_changes 用于摘要,compare 用于生成文件。这就是本文开头的提示。需要先快速阅读摘要、随后把文件交给他人时使用此方式。

在比较之前,你也可以让代理检查文件:

How many pages is contract-v2.docx?

这会触发 get_document_info,返回文件类型、页数、大小以及每页尺寸,而不进行任何比较。

如何设置?

运行 dnx GroupDocs.Comparison.Mcp --yes(使用 .NET 10 SDK)或 Docker 镜像 ghcr.io/groupdocs-comparison/comparison-net-mcp,在客户端注册服务器,并将 GROUPDOCS_MCP_STORAGE_PATH 设置为存放两个版本的文件夹路径。

客户端中它的表现如何?

示例会话(略删并具示意性;实际措辞取决于你的客户端和模型):

You:    Compare contract-v1.docx with contract-v2.docx. Summarize
        what changed, then give me a marked-up copy.

Agent:  [calls analyze_changes: contract-v1.docx, contract-v2.docx]
        [calls compare: contract-v1.docx, contract-v2.docx]

        The engine detected changes, including the payment schedule
        in a table on page 4 and a clause that changed from regular
        to bold. The marked-up copy is saved as
        contract-v1_compared.docx in your output folder.

有哪些限制?

  • Evaluation cap. 未授权时服务器以评估模式运行:仅比较前 2 页,结果会带有水印。对于长文档,这会产生一份简短、令人安心的更改列表。先询问 “what is the license status of the comparison server?”,代理会调用 get_license_status,若返回 "mode": "evaluation" 则说明受限。
  • Same format on both sides. 必须在相同格式之间比较;如果两文件格式不同,请先进行转换。

FAQ

Claude 能在不上传的情况下比较两个 PDF 吗?
是的,使用 MCP 服务器时比较在本地进程中对你指定文件夹中的文件进行。你的提示以及代理引用的任何片段仍会发送到你客户端使用的模型。

analyze_changes 与 compare 有何区别?
两者检测的更改相同。analyze_changes 以数据形式返回更改,不生成文件;compare 还会渲染带标记的文档。

它只支持 Word 文件吗?
不只。工具支持 PDF、DOCX、XLSX、PPTX、ODT、RTF、TXT、HTML 以及超过 30 种其他格式。

深入了解