filesystem-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": true,
"listChanged": true
} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| createA | Write whole text files: create new ones, overwrite, or append. Missing parent directories are created. edit or patch changes part of an existing file. |
| deleteA | Permanently delete files, directories, or symlinks, like rm or rm -r. Paths are exact; globs are not expanded. |
| diffA | Compare two text files and return a unified diff from a to b, like diff -u. |
| edit | Edit text files in place by replacing exact oldText with newText, like str_replace. Each oldText must match exactly once, and a file is written only if all its edits match. replace_text replaces every occurrence across files. |
| listA | List a directory's files and subdirectories as a tree of names, like ls or tree. stat returns sizes and dates. |
| moveA | Move, rename, or copy files and directories, like mv or cp -r. Each destination is the full new path, not a folder to move into; missing parent directories are created. |
| patchA | Apply a single-file unified diff to one existing text file, like git apply. Nothing is written unless every hunk applies in file order with exactly matching context; hunks are found by their context, so start line numbers may be off. |
| read | Read text files, like cat: whole, or one slice via head, tail, or startLine/endLine. Images and audio return as media; other binary files are rejected. |
| replace_text | Find and replace every occurrence of literal text or an RE2 regex, like sed -i, in one file or all files under a directory, optionally filtered by glob. The pattern runs over the whole file: it can span lines, and ^ and $ anchor to file start and end. edit replaces one unique exact match. |
| list_rootsA | List the directories this server can access, as absolute paths, including any the user granted during this session. Other tools can ask the user to grant access to a path outside them. |
| search_text | Search file contents for literal text or an RE2 regex, like grep; returns matching lines with line numbers and paths relative to the root, ready to pass to read or edit. Patterns match within one line. find_files matches file names. |
| find_files | Find files by name or glob pattern; returns file paths relative to the root, ready to pass to read or edit. A pattern without / matches file names at any depth. search_text searches contents. |
| stat | Get metadata without reading contents, like ls -ld: type, size (files only; use list for directory contents), tokenEstimate, timestamps, permissions (readOnly on Windows), MIME type guessed from the extension, and symlink target. Also checks whether paths exist. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| get-help | Navigation guide for filesystem-mcp tools and constraints. Use list_roots to inspect configured or accepted roots, then list/find_files -> stat -> read. Never guess paths. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| filesystem-mcp-instructions | Navigation guide for filesystem-mcp tools and constraints. Use list_roots to inspect configured or accepted roots, then list/find_files -> stat -> read. Never guess paths. |
TDQS
Scored across 13 tools
Each tool targets a clearly distinct file operation (read, write, edit, diff, patch, search, metadata) with explicit cross-references in the descriptions. Overlaps like edit vs replace_text are well delineated by exact-match uniqueness vs global replacement.
All names use consistent snake_case with imperative verbs (create, delete, list, read, move, stat, etc.). Multi-word names like replace_text, search_text, and find_files follow the same verb_noun pattern.
13 tools is well-scoped for a filesystem server, covering essential operations without redundancy. Each tool earns its place by handling a specific action or resource.
Core file lifecycle (create, read, update, delete, move, list, search, diff, stat) is well covered, with parent directory creation handled implicitly. Minor gaps remain for permission changes (chmod/chown) and link creation, but agents can work around most needs.