MCP field guide / Filesystem

// mcp field guide · devops

Filesystem MCP server

The official reference server that gives an agent sandboxed read/write access to your files. Most of what it does is harmless reads — but a handful of tools can overwrite your work with no backup. Notably, it has no delete tool; the real risk is overwrite, not deletion. Here's the sourced breakdown.

Maintainer: Model Context Protocol project Package: @modelcontextprotocol/server-filesystem License: MIT (per repo LICENSE)

GUARD FIT · READ SURFACE (~10 tools)

PASS-THROUGH

The read-only majority (readOnlyHint: true) has no side effect. A guard should classify these low-risk and not add friction.

GUARD FIT · WRITE / EDIT / MOVE

STRONG

The tools the server itself flags destructiveHint: true act on your real files. An impact diff + approval before an overwrite is where a guard earns its keep.

Overall fit: MODERATE — strong precisely for its small destructive surface, near-zero value on the read majority.

What it is

@modelcontextprotocol/server-filesystem is one of the actively-maintained reference servers of the Model Context Protocol project (it is not archived — it's listed among the current reference servers, latest npm 2026.7.10).13 It gives an MCP client sandboxed access to the local filesystem, restricted to one or more directories you allow at launch. It refuses any path outside them, and every tool sets openWorldHint: false — no network reach. Within the sandbox it can read, list, search, inspect metadata, create, write, edit, and move files.12

Tools by risk surface

Grouped by each tool's own annotations in the source (readOnlyHint / destructiveHint).2

ToolRiskWhat it does
read_text_fileread-onlyRead a file's contents as text (optional head/tail limits).
read_media_fileread-onlyRead a file as base64 with its MIME type.
read_multiple_filesread-onlyRead several files in one call.
list_directoryread-onlyList a directory's contents.
list_directory_with_sizesread-onlyList with file sizes.
directory_treeread-onlyRecursive JSON tree of a directory.
search_filesread-onlyRecursively find files matching patterns.
get_file_inforead-onlyDetailed file/directory metadata.
list_allowed_directoriesread-onlyList directories the server may touch.
create_directorymutatingCreate a directory (idempotent; cleanly compensable by removing it).
write_filedestructiveCreate a new file or overwrite an existing one's entire contents. README warns to "exercise caution."
edit_filedestructiveSelective in-place edits via pattern matching — rewrites the file on disk.
move_filedestructiveMove/rename; can clobber an existing destination.

The precise risk (worth getting right): there is no delete/remove tool — no delete_file, unlink, or rmdir. So "it can delete your files" is inaccurate. The destructive surface is overwrite (write_file), in-place edit (edit_file), and clobbering move (move_file). Because the server keeps no backups, overwriting existing content is the irreversible case.

Real use cases

Local coding agent. Read a project (read_multiple_files, directory_tree, search_files), then refactor with edit_file/write_file.

Notes / docs assistant. Point it at a folder to search, summarize, and write new drafts back.

Log triage. Read-only-in-practice access to a logs directory; search_files + read_text_file (tail) to find and summarize, no writes.

Where a human-approval guard fits

Don't gate the reads. About ten of the tools are read-only; gating them is pure friction with no protective value. A good guard classifies them low-risk and passes them straight through (ChronoMCP's cascade does exactly this via readOnlyHint).

Do gate write / edit / move. These act on the user's real files, and this is where an impact diff + approval matters. The honest reversibility picture:

ActionReversible?
create_directorycompensable — remove the created dir
write_file creating a new filecompensable — delete the new file
move_filecompensable — move it back
write_file overwriting existing contentirreversible* — prior bytes are gone
edit_file (overwritten regions)irreversible*

* The honest asterisk: an overwrite is only "compensable" if the guard snapshots the original bytes before the call — the server won't do it for you. Absent a pre-image, overwrite and clobber are irreversible, and a guard should say so in the diff rather than promise an "undo." That's the compensation-is-not-undo line, applied to files.

Guard the write tools, skip the reads

ChronoMCP passes read-only calls through and gates write_file/edit_file/move_file on a human — with an honest diff of what can't be undone.

Read the quickstart → More MCP profiles

Sources

  1. Filesystem server — GitHub (README, tool table): github.com/modelcontextprotocol/servers/tree/main/src/filesystem
  2. Raw source with tool annotations (readOnlyHint/destructiveHint): index.ts
  3. npm — @modelcontextprotocol/server-filesystem (v2026.7.10); reference-server status per modelcontextprotocol.io/examples: npmjs.com/package/@modelcontextprotocol/server-filesystem

Profiles describe third-party software from its public sources; ChronoMCP is not affiliated with these projects. Capabilities reflect sources current as of Aug 2026 and can change — check the source links for the latest.