Lucy
Indexes approved Dropbox folders synced locally, fingerprints files with SHA-256, compares copies across sources, and provides gated, logged read access with secret masking for MCP clients.
Indexes approved iCloud Drive folders synced locally, fingerprints files with SHA-256, compares copies across sources, and provides gated, logged read access with secret masking for MCP clients.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Your work lives in Dropbox, iCloud Drive and on a drive under the desk. Your AI tools get wired into all of it, with full access, and none of them can tell you which copy of a file is the current one.
Lucy is a small local server that fixes both problems:
One index. It maps every folder you approve, fingerprints each file with SHA-256 and tells you which copies match, which differ and which are only a cloud placeholder that was never downloaded.
One gate. Claude Code, Codex or any MCP client asks Lucy for a file. Lucy answers with a short excerpt, secrets masked, from approved folders only. Every request is logged, allowed or denied.
It moves nothing, deletes nothing, downloads nothing and makes no network calls.
Install
Needs macOS, Python 3.11 or newer and uv.
git clone https://github.com/ckaico/lucy && cd lucy
uv sync
claude mcp add --scope user lucy -- "$PWD/bin/lucy" mcpAny other MCP client: run bin/lucy mcp over stdio. For Codex, in ~/.codex/config.toml:
[mcp_servers.lucy]
command = "/path/to/lucy/bin/lucy"
args = ["mcp"]Lucy keeps its config, catalog and log in ~/.lucy (set LUCY_HOME to move it).
Related MCP server: lupa-mcp
Approve a folder
Nothing is readable until you approve it. A source is one folder, tied to one project.
bin/lucy source-add film-dropbox --kind dropbox --root ~/Dropbox/Film --project film --exclude private
bin/lucy source-add film-icloud --kind icloud --root ~/Library/Mobile\ Documents/com~apple~CloudDocs/Film --project film
bin/lucy source-add film-raid --kind raid --root /Volumes/MY_RAID/Film --project film
bin/lucy scan--exclude keeps a subfolder out of the index and blocks reads of it. A raid source is pinned to
the volume's identity, so a different drive mounted at the same path is not trusted. If a drive is
unplugged, Lucy says so. It never concludes your files are gone.
Which copy is current?
bin/lucy versions film HANDOFF.md{
"asset": "HANDOFF.md",
"copies": 3,
"verdict": "divergent: no history proves which is current; needs your decision",
"versions": [
{ "sha256": "64550b1c…", "copies": [ { "source": "film-raid" }, { "source": "film-dropbox" } ] },
{ "sha256": "a3a0fab0…", "copies": [ { "source": "film-icloud" } ] }
]
}(Output shortened.) Two copies match, one differs. Lucy will not pick a winner from modified dates, because dates lie across sync services. It names a newer version only when it has watched one replace the other.
What an assistant can and cannot do
allow | search and list files in approved folders, one project at a time |
allow | short text excerpts with secrets masked |
allow | check that a handoff's files exist and are unchanged |
deny | any path that leaves an approved folder, symlinks included |
deny | shell, SQL, URL fetch, general file read |
deny | instructions found inside a document: file text is returned as data, never obeyed |
deny | writes, until you set |
$ bin/lucy read film-dropbox ../../.ssh/id_ed25519
{ "error": "Denied", "detail": "path must be relative to the source root, with no '..'" }Everyday commands
Question | Command |
Where is this file? |
|
Which copy is current? |
|
What differs between sources? |
|
Is this handoff complete? |
|
Does this old handoff doc point at real files? |
|
What do we know about a project? |
|
Save a decision |
|
Copy a folder somewhere safe |
|
Check my repos for leaked keys |
|
Is this safe to make public? |
|
repo-audit uses gitleaks and osv-scanner when they are installed, and reports which checks did not run.
What it does not do
No encryption. Snapshots are plain local copies. Encrypted backups with keys you hold are planned.
No malware scanning.
No Dropbox, iCloud or Google Drive API. Lucy sees the folders synced to this Mac.
No sharing between machines yet, and no remote access. There is no network endpoint.
macOS only.
The full list, with what is tested and what is not: docs/STATUS.md. How it is built and what it defends against: docs/ARCHITECTURE.md.
Where it is going
Now: one index. Your files stay where they are. Lucy maps them and guards the door.
Next: one network. Every Mac you own in one view, Google Drive, a live board for every project, encrypted backups.
Later: one server. Your clouds and drives as one pool, with a database and logins for the apps you build.
Only the first is built. Early access to the rest: lucy.so.
Tests
.venv/bin/python -m unittest tests.test_acceptance -v19 tests on throwaway folders: traversal and symlink escape, cross-project access, instructions hidden in documents, secret redaction, revoked sources, a disconnected drive, stale writes, and a check that Lucy's own code contains no network calls.
Security
Found a way past the gate? See SECURITY.md.
Licence
Apache 2.0. See LICENSE and NOTICE. © 2026 Christian Kai (CKAI).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Read and search folders on your own computer with explicit consent. Files are never uploaded.
Safe folder access for ChatGPT and Claude: read, write and search files, risky tools opt-in.
Your own computer's files from ChatGPT or Claude: folder rules, confirmations and undo.
Connect AI assistants to your approved computer for files, commands, browser and desktop tasks.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceLocal daemon that bridges AI assistants to the local filesystem with read-only commands and optional write mode, enforcing strict security filters to prevent credential leakage.15 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search a Mac's documents by content using a local index, returning ranked paths and matching snippets. It supports formats like PDF, DOCX, HWP, and OCR'd scans, with Korean-aware search, while keeping everything offline and without requiring filesystem access.65 npmMIT
- AlicenseAqualityBmaintenanceEnables local AI agents to perform hybrid search (BM25 + vector) over privately indexed local files, including notes, PDFs, DOCX, source code, and OCR'd images. All indexing and retrieval stay on the machine with read-only, whitelist-scoped access.3MIT
- AlicenseAqualityBmaintenanceEnables privacy-first, offline indexing and full-text search across local document workspaces while automatically redacting PII/secrets and enforcing path access controls before snippets reach LLMs.3MIT