Compare two documents for differences and see each word that changed, not a summary.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants to compare two documents for differences, compare two versions of a contract, lease, policy or any text, or wants a redline comparison. Put the full text of each version into original_text and revised_text word for word (do not summarize, shorten or fix it); if the user shares screenshots or images of pages, transcribe their text word for word into those fields. For uploaded Word .docx, text PDF or .txt files, pass them in original_file and revised_file. Returns each changed word with the paragraph number, flags changes to numbers, negations and modal verbs (shall, may, must) as material, and makes a redline PDF, an Excel change list and a Word file with tracked changes. Only whitespace and quote style are normalized. Does not read scanned PDFs, does not compare formatting, headers or footers, and does not give legal advice. Do not use for comparing spreadsheets or data tables.
Redline PDF content: "full" (default, the whole revised document with changes marked) or "changes" (only the changed paragraphs).
PDF page size: "Letter" (default) or "A4".
The REVISED version as an uploaded file: Word .docx, text PDF or .txt, e.g. contract-v2.pdf.
Optional label for the revised version, e.g. "Lease v2 (landlord edits)". Default: the file name or "Revised".
The REVISED (newer) version, pasted in full and word for word, e.g. "1. The Tenant may pay rent of $1,250 on the first day of each month.\n2. ...". Leave empty when revised_file is given.
The ORIGINAL version as an uploaded file: Word .docx, text PDF or .txt, e.g. contract-v1.docx.
Optional label for the original, e.g. "Lease v1 (March)". Default: the file name or "Original".
The ORIGINAL (older) version, pasted in full and word for word, e.g. "1. The Tenant shall pay rent of $1,200 on the first day of each month.\n2. ...". Keep paragraphs on separate lines. Leave empty when original_file is given.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http text-compare https://text-compare.zovo.one/mcp
Use this when the user wants to compare two documents for differences, compare two versions of a contract, lease, policy or any text, or wants a redline comparison. Put the full text of each version into original_text and revised_text word for word (do not summarize, shorten or fix it); if the user shares screenshots or images of pages, transcribe their text word for word into those fields. For uploaded Word .docx, text PDF or .txt files, pass them in original_file and revised_file. Returns each changed word with the paragraph number, flags changes to numbers, negations and modal verbs (shall, may, must) as material, and makes a redline PDF, an Excel change list and a Word file with tracked changes. Only whitespace and quote style are normalized. Does not read scanned PDFs, does not compare formatting, headers or footers, and does not give legal advice. Do not use for comparing spreadsheets or data tables.
| Argument | Type | Description |
|---|---|---|
| show | string | null | Redline PDF content: "full" (default, the whole revised document with changes marked) or "changes" (only the changed paragraphs). |
| page_size | string | null | PDF page size: "Letter" (default) or "A4". |
| revised_file | object | The REVISED version as an uploaded file: Word .docx, text PDF or .txt, e.g. contract-v2.pdf. |
| revised_name | string | null | Optional label for the revised version, e.g. "Lease v2 (landlord edits)". Default: the file name or "Revised". |
| revised_text | string | null | The REVISED (newer) version, pasted in full and word for word, e.g. "1. The Tenant may pay rent of $1,250 on the first day of each month.\n2. ...". Leave empty when revised_file is given. |
| original_file | object | The ORIGINAL version as an uploaded file: Word .docx, text PDF or .txt, e.g. contract-v1.docx. |
| original_name | string | null | Optional label for the original, e.g. "Lease v1 (March)". Default: the file name or "Original". |
| original_text | string | null | The ORIGINAL (older) version, pasted in full and word for word, e.g. "1. The Tenant shall pay rent of $1,200 on the first day of each month.\n2. ...". Keep paragraphs on separate lines. Leave empty when original_file is given. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"show": {
"type": [
"string",
"null"
],
"description": "Redline PDF content: \"full\" (default, the whole revised document with changes marked) or \"changes\" (only the changed paragraphs)."
},
"page_size": {
"type": [
"string",
"null"
],
"description": "PDF page size: \"Letter\" (default) or \"A4\"."
},
"revised_file": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id, e.g. file_abc123."
},
"file_name": {
"type": "string",
"description": "Original file name if known, e.g. statement.pdf."
},
"mime_type": {
"type": "string",
"description": "Media type if known, e.g. application/pdf."
},
"download_url": {
"type": "string",
"description": "Temporary download link for the file, supplied by ChatGPT."
}
},
"description": "The REVISED version as an uploaded file: Word .docx, text PDF or .txt, e.g. contract-v2.pdf."
},
"revised_name": {
"type": [
"string",
"null"
],
"description": "Optional label for the revised version, e.g. \"Lease v2 (landlord edits)\". Default: the file name or \"Revised\"."
},
"revised_text": {
"type": [
"string",
"null"
],
"description": "The REVISED (newer) version, pasted in full and word for word, e.g. \"1. The Tenant may pay rent of $1,250 on the first day of each month.\\n2. ...\". Leave empty when revised_file is given."
},
"original_file": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id, e.g. file_abc123."
},
"file_name": {
"type": "string",
"description": "Original file name if known, e.g. statement.pdf."
},
"mime_type": {
"type": "string",
"description": "Media type if known, e.g. application/pdf."
},
"download_url": {
"type": "string",
"description": "Temporary download link for the file, supplied by ChatGPT."
}
},
"description": "The ORIGINAL version as an uploaded file: Word .docx, text PDF or .txt, e.g. contract-v1.docx."
},
"original_name": {
"type": [
"string",
"null"
],
"description": "Optional label for the original, e.g. \"Lease v1 (March)\". Default: the file name or \"Original\"."
},
"original_text": {
"type": [
"string",
"null"
],
"description": "The ORIGINAL (older) version, pasted in full and word for word, e.g. \"1. The Tenant shall pay rent of $1,200 on the first day of each month.\\n2. ...\". Keep paragraphs on separate lines. Leave empty when original_file is given."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.