Zovo Document Compare MCP
Compares two document versions to identify word-level differences, generating a redline PDF, an Excel change list, and a Word file with tracked changes. It handles various formats including .docx, text PDFs, and .txt files, flagging material changes like numbers and negations.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://text-compare.zovo.one/mcpWhat its tools do
1 tool, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (1)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Compare two versions of a contract or lease for differences
- Generate a redline PDF with deleted and inserted words
- Create an Excel list of all text changes
- Produce a Word file with real tracked changes
Source and maintenance
Protocol and capabilities
- Server
- text-compare 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 1 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
1 advertised
compare_documents — Compare two documents
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.
{
"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."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"identical",
"summary",
"original",
"revised",
"counts",
"changes",
"material_changes",
"normalized",
"notes",
"redline",
"page_size",
"downloads"
],
"properties": {
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"counts": {
"type": "object",
"required": [
"changes",
"replaced",
"inserted",
"deleted",
"moved",
"paragraph_breaks",
"material",
"words_deleted",
"words_inserted"
],
"properties": {
"moved": {
"type": "number"
},
"changes": {
"type": "number"
},
"deleted": {
"type": "number"
},
"inserted": {
"type": "number"
},
"material": {
"type": "number"
},
"replaced": {
"type": "number"
},
"words_deleted": {
"type": "number"
},
"words_inserted": {
"type": "number"
},
"paragraph_breaks": {
"type": "number"
}
},
"additionalProperties": false
},
"changes": {
"type": "array",
"items": {
"type": "object",
"required": [
"no",
"type",
"old",
"new",
"original_paragraph",
"revised_paragraph",
"material"
],
"properties": {
"no": {
"type": "number"
},
"new": {
"type": "string"
},
"old": {
"type": "string"
},
"type": {
"type": "string"
},
"material": {
"type": "array",
"items": {
"type": "string"
}
},
"revised_paragraph": {
"type": "number"
},
"original_paragraph": {
"type": "number"
}
},
"additionalProperties": false
}
},
"redline": {
"type": "string"
},
"revised": {
"type": "object",
"required": [
"name",
"source",
"paragraphs",
"words",
"pages"
],
"properties": {
"name": {
"type": "string"
},
"pages": {
"type": [
"number",
"null"
]
},
"words": {
"type": "number"
},
"source": {
"type": "string"
},
"paragraphs": {
"type": "number"
}
},
"additionalProperties": false
},
"summary": {
"type": "string"
},
"original": {
"type": "object",
"required": [
"name",
"source",
"paragraphs",
"words",
"pages"
],
"properties": {
"name": {
"type": "string"
},
"pages": {
"type": [
"number",
"null"
]
},
"words": {
"type": "number"
},
"source": {
"type": "string"
},
"paragraphs": {
"type": "number"
}
},
"additionalProperties": false
},
"downloads": {
"type": "object",
"required": [
"pdf",
"xlsx",
"docx"
],
"properties": {
"pdf": {
"type": "string"
},
"docx": {
"type": "string"
},
"xlsx": {
"type": "string"
}
},
"additionalProperties": false
},
"identical": {
"type": "boolean"
},
"page_size": {
"type": "string"
},
"normalized": {
"type": "string"
},
"changes_shown": {
"type": "object",
"required": [
"shown",
"total"
],
"properties": {
"shown": {
"type": "number"
},
"total": {
"type": "number"
}
},
"additionalProperties": false
},
"material_changes": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
}{
"title": "Compare two documents",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
text-compare-widget — Zovo Document Compare view
Interactive view for Zovo Document Compare.
ui://widget/text-compare-v1-1.0.0-29bd5867e66ba18372c5263750da7a5d8799125c41fb57ea59c641819a371089.htmltext-compare-widget-legacy — Zovo Document Compare view (previous versions)
ui://widget/text-compare-{version}.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1366 ms
- 95th percentile latency
- 1366 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1366 ms · metadata changed · 1 tool(s), 1 resource(s), 1 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http zovo-document-compare-mcp https://text-compare.zovo.one/mcpCodex
codex mcp add zovo-document-compare-mcp --url https://text-compare.zovo.one/mcpCursor
{
"mcpServers": {
"zovo-document-compare-mcp": {
"url": "https://text-compare.zovo.one/mcp"
}
}
}Cline
{
"mcpServers": {
"zovo-document-compare-mcp": {
"type": "streamableHttp",
"url": "https://text-compare.zovo.one/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"zovo-document-compare-mcp": {
"type": "http",
"url": "https://text-compare.zovo.one/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http zovo-document-compare-mcp https://text-compare.zovo.one/mcpClaude Desktop
https://text-compare.zovo.one/mcpWindsurf
{
"mcpServers": {
"zovo-document-compare-mcp": {
"serverUrl": "https://text-compare.zovo.one/mcp"
}
}
}Let your agent find its tools
Find servers like Zovo Document Compare MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.