Cane
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CaneCompare these two drafts and tell me which is current and safe to recycle"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cane
A support for thinking in a mess — not a tool for cleaning one up.
Cane is a local MCP server. It hands your AI assistant deterministic evidence about your files — which of your near-identical drafts is current, which lines exist in only one place, what actually changed between two versions — so the assistant can tell you what's safe to recycle by reading the bytes, never by trusting what you named things.
It diagnoses only. It never moves, renames, or deletes. Nothing leaves your machine, there's no account and no service, and there's no API key on Cane's side — your own assistant does the reasoning, on its own model access.
What it's for
Most tools that touch a pile of files are there to fix it — dedupers, organizers, "tidy your drive" utilities. They all say the same thing: be more disciplined. Name things consistently. Version them properly. Clean as you go. For a lot of people that advice reads as be less like yourself, and it fails for the same reason every time: the discipline it asks for is exactly the thing that's in short supply.
Cane is the opposite. Cane is the tool that lets the mess happen.
Keep twenty copies. Re-derive the same idea six times. Name them all final. Then point Cane at them and ask which one is the survivor and why the difference matters — and get an evidence-backed answer instead of a lecture.
The name is the whole idea. A cane doesn't cure anything; it bears your weight so you can keep moving. Cane doesn't fix your mess — it gives you the support to make it, because the reconciliation is handled after the fact. It's a support, not a cure.
Related MCP server: ChromaDB Local MCP Server
Why not just diff, dedupe, or version control?
difftells you what changed and refuses to say whether it matters.Hash-based dedupe happily deletes the wrong copy. (Cane's own test case: the junk-looking
…(1).mdwas the superseding file — naive dedup destroys it.)Version control works — and demands upfront discipline, which is precisely the faculty in short supply. It's a solution conditioned on not having the problem.
The missing piece is judgment, not another diff. Cane produces the deterministic evidence; your assistant, guided by a shipped judgment prompt, supplies the judgment. Neither half alone is enough — the evidence keeps the judgment honest, and the judgment is what a raw diff can't give you.
What you get
Three things register with your assistant:
| Everything measurable about two files: size, modified-time, md5, byte-identical?, a containment read (which file's lines exist nowhere else → keep; which is a full subset of the other → safe to recycle), and a unified diff. The "which of these two is current?" atom. |
| Near-name families in a folder — files that are versions of each other despite different names ( |
| The judgment law: read content not labels, sole-copy lines are a finding, name the missing fact when the evidence runs out. This is what lets any model reason over the evidence the way the tool's author does. |
Tested off-substrate. Cane's payload was run past a non-Claude model (GPT-4o) against a Claude (Opus) baseline across 8 real file families. The payload proved legible — the generic model grasped what Cane was for and produced verdicts unaided — but without the creed it pruned more aggressively than is safe. Paired with Cane's shipped
cane://creed, its recycle calls converged with Claude's. That's the design, not a patch: the evidence informs, the creed governs, which is why they ship together.
Install
Cane needs Python 3.10+ and the mcp package (pip install mcp). Then clone this repo:
git clone https://github.com/kellyorkin/cane-mcp.gitClaude Code
claude mcp add --scope user cane -- python /path/to/cane-mcp/server.py--scope user makes it available in all your projects. Start a fresh session and you'll have the tools. Verify with claude mcp list (look for cane ✔ Connected).
Claude Desktop
Add this to your claude_desktop_config.json, then restart:
{
"mcpServers": {
"cane": {
"command": "python",
"args": ["/path/to/cane-mcp/server.py"]
}
}
}On Windows, use the full path to your
python.exeand double-backslash the paths. If it shows "connection timed out," the usual cause is a wrong Python path — pointcommandat the exact interpreter that hasmcpinstalled.
Then ask your assistant something like: "Use cane to compare these two files and tell me which is current and whether either is safe to recycle," and hand it two paths.
What it will not do (on purpose)
No writes. It never moves, renames, or deletes. Not in v1, not ever. It proposes; your hand acts.
No service, no account, no telemetry, no key. It's a local process. Your files never leave your machine except as whatever your assistant already sees.
No whole-drive crawl. The tools take a bounded target — two files, or one folder. Scope is the feature: an unbounded pile just relocates the overwhelm onto the model — and spends the context window doing it. Cane runs the deterministic reduction before the handoff, so the agent spends its context reasoning about the evidence instead of ingesting the pile.
Honest limits
The judgment holds while the deciding evidence fits Cane's 240-line diff cap; past that, the signal doesn't carry.
Containment is a text-file signal (it reads lines). Binary files fall back to md5/size. It normalizes line-endings and trailing whitespace — so cosmetic churn matches — but not case or indentation, which stays deliberately conservative toward keeping.
It reads inside compound documents (
.docx/.pptx/.xlsx) as text, but doesn't OCR images.
Attribution & Licensing
Cane is open-source under the MIT License — © 2026 Indifferencer LLC. The license permits broad modification and commercial use.
Cane was built to support human creators. If you build on it, integrate it into a commercial agent platform, or use it to scaffold your own operations, engineering attribution is requested (though never required). Please cite it as:
Cane MCP Server — © 2026 Indifferencer LLC. An open-source, diagnose-only MCP server for reconciling near-duplicate files. https://github.com/kellyorkin/cane-mcp
Diagnose, don't execute. Support the mess; don't punish it.
This server cannot be deployed
Maintenance
Related MCP Connectors
Versioned artifact review for people and AI agents, with contextual comments and human control.
Connect your AI assistant to governed tender and RFP dossiers: sources, versions, decisions.
Gives your AI assistant persistent memory and intelligence about your work patterns.
Deterministic fact verification for AI agents — checksums & curated data, not guesses.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables intelligent file and folder comparison with advanced text normalization, duplicate detection, and line-level diff analysis. Provides secure workspace-constrained file operations with CRC32-based exact matching and smart text comparison capabilities.-
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with persistent memory through local ChromaDB vector storage, featuring automated file ingestion and batch processing for over 70 file types. It enables advanced vector search, EXIF metadata extraction for photos, and duplicate file detection across local directories.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to analyze, rename, categorize, and organize local documents using OCR, metadata extraction, and batch processing, with preview mode and undo support.1MIT
- FlicenseAqualityDmaintenanceEnables LLM agents to find and safely delete duplicate files using content-based detection, with smart copy prioritization and dry-run mode.3-