Filesystem for local-first & privacy
For local-first and privacy work, the reference Filesystem server is the top pick of three, because it is local by design and sandboxed by default. This Anthropic reference server gives an agent read, write, edit, search, and explore access to files, but only within directories you explicitly allow, so its reach is bounded to what you permit.
That boundary is the whole appeal for this task. Nothing leaves your machine through this server, and the agent cannot wander past the paths you grant it.
How Filesystem fits
The tools cover a full local workspace without any external dependency: read_text_file, read_multiple_files, and read_media_file for input, write_file and edit_file for changes, and create_directory, move_file, list_directory, directory_tree, search_files, and get_file_info for organizing and inspecting. Because every operation is confined to allowed directories, the agent's access is explicit rather than open-ended, which is the property a privacy-conscious setup wants.
The siblings extend the same local-first idea to other surfaces. Obsidian works over a plain-Markdown vault for notes that stay on disk, and Git exposes status, diffs, commits, and history on a local repository so version-controlled code stays on-machine. Filesystem is the general-purpose base of that trio; combine it with Obsidian and Git for a complete local workspace the agent can navigate without reaching a third-party cloud beyond the model call itself.
Tools you would use
| Tool | What it does |
|---|---|
| read_text_file | Read the complete contents of a file as text, with optional head or tail line limits. |
| read_media_file | Read an image or audio file and return its base64-encoded data with a MIME type. |
| read_multiple_files | Read the contents of multiple files simultaneously. |
| write_file | Create a new file or overwrite an existing file with the given contents. |
| edit_file | Make selective edits to a file using advanced pattern matching, with a git-style diff preview. |
| create_directory | Create a new directory or ensure one already exists, including parent directories. |
| list_directory | List the contents of a directory with [FILE] and [DIR] prefixes. |
| list_directory_with_sizes | List directory contents with [FILE] and [DIR] prefixes including file sizes. |
| directory_tree | Get a recursive JSON tree of a directory's contents. |
| move_file | Move or rename files and directories. |
FAQ
- How does the Filesystem server keep data local and private?
- Every operation is scoped to directories you explicitly allow, so the agent cannot read or write outside them. The server runs on your machine and touches only local files, so data does not leave your disk through it.
- What should I combine with Filesystem for a full local setup?
- Obsidian for a Markdown notes vault and Git for local version-controlled code. Filesystem handles general read, write, edit, and search across allowed directories; together the three give an agent a complete on-machine workspace with no external cloud dependency.