DiffMint by Harlo
Diff two texts by line, word or char: unified diff, HTML redline, patch apply, similarity.
Should I use this
Quality & Safety
Findings (2)
- LOWin apply_patch
- LOWin text_similarity
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"diffmint": {
"url": "https://diffmint.mike-tusa.workers.dev/mcp"
}
}
}Remote endpoints
https://diffmint.mike-tusa.workers.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢diff_text(a, b, mode, ignore_case, ignore_whitespace, ...)
Compare text a with text b by lines (default), words or chars. Returns ops (equal/insert/delete), a unified diff (lines mode), optional escaped HTML redline, stats and similarity. Deterministic diff (Myers algorithm via jsdiff), not an AI or semantic comparison. Limits per side: lines mode 64 KB and 1,000 lines, words mode 8 KB, chars mode 4 KB. If the texts need more than 250 inserted plus deleted units, the API returns 422 too_different instead of a partial diff. Patches up to 64 KB apply to text up to 64 KB. No 3-way merge, no binary files. Stateless: text is not stored or logged; no URL fetching.
Input Schema
{
"type": "object",
"properties": {
"a": {
"type": "string",
"description": "Original text."
},
"b": {
"type": "string",
"description": "Changed text."
},
"mode": {
"type": "string",
"enum": [
"lines",
"words",
"chars"
]
},
"ignore_case": {
"type": "boolean"
},
"ignore_whitespace": {
"type": "boolean",
"description": "lines mode only"
},
"context": {
"type": "integer",
"minimum": 0,
"maximum": 20
},
"formats": {
"type": "array",
"items": {
"type": "string",
"enum": [
"ops",
"unified",
"html"
]
}
},
"label_a": {
"type": "string"
},
"label_b": {
"type": "string"
}
},
"required": [
"a",
"b"
]
}🟢apply_patch(text, patch, fuzz)
Apply a single-file unified diff (patch) to text and return the patched text, or applied:false if a hunk does not match. Optional fuzz 0-2.
Input Schema
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"patch": {
"type": "string",
"description": "Unified diff with @@ hunks."
},
"fuzz": {
"type": "integer",
"minimum": 0,
"maximum": 2
}
},
"required": [
"text",
"patch"
]
}🟢text_similarity(a, b, mode, ignore_case)
Similarity ratio 0-1 between two texts (2 x unchanged chars / total chars) on chars (default), words or lines granularity, plus change stats.
Input Schema
{
"type": "object",
"properties": {
"a": {
"type": "string",
"description": "Original text."
},
"b": {
"type": "string",
"description": "Changed text."
},
"mode": {
"type": "string",
"enum": [
"lines",
"words",
"chars"
]
},
"ignore_case": {
"type": "boolean"
}
},
"required": [
"a",
"b"
]
}Community
Evidence