To summarize what changed between two document versions, ask your AI agent for the answer and not for a file. With the GroupDocs.Comparison.Mcp server, Claude Desktop, Claude Code, Cursor or GitHub Copilot calls analyze_changes, which compares the two files locally and returns the differences as data without rendering anything:
What changed between proposal-draft.docx and proposal-final.docx? Keep it short.
The step-by-step version with config and troubleshooting is in the documentation: How to summarize what changed between two documents.
Why does the summary not need a rendered document?
Rendering a marked-up document is the expensive half of a comparison: the engine has to lay out and write a new file. Questions such as “did the price change?” or “is there anything I should worry about?” want an answer, and the answer is already in the change list. analyze_changes detects the same differences as compare, but it skips rendering and saving the result file.
analyze_changes |
compare |
|
|---|---|---|
| Detects the changes | Yes | Yes |
| Writes a marked-up file | No | Yes, <source-stem>_compared<ext> |
| Leaves files in your output folder | None | One per call |
| Under metered licensing | Less consumption | More consumption |
| Use it for | Questions, summaries, loops | Files to send or archive |
How do you get one change list to answer many questions?
The tool returns <N> change(s) detected followed by a JSON array. Each entry has the change type, page, component, the changed fragment, the surrounding source and target text, the table cell, and style information. The agent keeps that array in the conversation and filters it:
Only the deletions, please. Ignore formatting and show me changes that alter meaning. Group the changes by page. Did any number change?
None of these re-reads the documents. A style change and a substantive edit are different entries, so the agent can separate “this became bold” from “this became 45 days”.
How do you set it up?
Run dnx GroupDocs.Comparison.Mcp --yes (with the .NET 10 SDK) or the Docker image ghcr.io/groupdocs-comparison/comparison-net-mcp, and set GROUPDOCS_MCP_STORAGE_PATH to the folder that holds your documents.
Which summaries can you automate with it?
Release notes for a document set. Compare the previous and the current version of a policy or specification and ask for a bullet list of changes in plain language.
Compare handbook-2025.docx with handbook-2026.docx and write release notes: one bullet per substantive change, ignore formatting.
An audit trail. Ask for a list of changes with their pages, so a reviewer can verify each one in the source.
List every change between ledger-q2.xlsx and ledger-q3.xlsx with the page of each.
An approval check. Confirm that what was approved is what was sent.
Is approved-offer.docx identical in content to sent-offer.docx?
No changes detected is a valid and useful answer here. It confirms that two files have the same content even when their bytes differ because they were re-saved or re-exported, which a byte-level diff cannot tell you for DOCX or PDF files. Under evaluation mode a clean result covers only the first 2 pages of each document, so check get_license_status before you rely on it.
Example session
Abridged and illustrative; the real wording depends on your client and model.
You: What changed between proposal-draft.docx and
proposal-final.docx? Keep it short.
Agent: [calls analyze_changes: proposal-draft.docx, proposal-final.docx]
The engine detected changes. In short: the pricing table was
edited and one paragraph was deleted. Ask for the page-by-page
list or for a marked-up copy if you need either.
If you do need a file afterwards, say so: “Now give me the marked-up copy of the ones about pricing.” The agent then calls compare. Summarize first, render on demand.
What are the limits?
- Evaluation cap. Without a license, only the first 2 pages of each document are compared and the result carries a watermark, so a long document silently reports fewer changes than it has. Ask “what is the license status of the comparison server?” first; the agent calls
get_license_status. - Failures are text. An engine failure returns text that starts with
Analyze failed for, so an automated check has to look for that prefix.
FAQ
Can an AI summarize the differences between two PDFs without me uploading them? Yes. The comparison runs in a local process against files in a folder you choose. The summary text the agent writes goes to the model your client uses.
Can I get the differences in plain English? Yes. The engine returns structured data and the agent turns it into prose at the length and detail you ask for.
Is the answer cheaper than a full comparison?
It skips rendering and writes no file, which is the part analyze_changes removes. Under metered licensing that means less consumption; the documentation does not publish a per-call figure.
Go deeper
- Documentation, canonical how-to: How to summarize what changed between two documents
- Documentation hub: GroupDocs.Comparison MCP Server
- Start here: 3 Ways to Compare Documents with AI Agents and MCP
- Related: Why an AI agent should not redline a contract by reading it
- Related: Enforce Document Comparison with Automated Workflows Using MCP
- On-premise and security model: 3 architectures for AI document processing, and the one that keeps files inside your network
- Questions: GroupDocs Comparison forum
- Source: GroupDocs.Comparison.Mcp on GitHub