A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Enhanced FileSystem MCP server
A secure, single-binary MCP server for filesystem operations. No runtime dependencies — download, configure allowed directories, and connect to any MCP client.
Tested extensively with Claude Desktop and Claude Code across real-world coding workflows including file editing, codebase search, refactoring, and multi-file batch operations.
Download the latest binary for your platform from the Releases page:
| Platform | Binary |
|---|---|
| macOS (Apple Silicon) | filesystem-mcp-darwin-arm64 |
| macOS (Intel) | filesystem-mcp-darwin-amd64 |
| Linux (x86_64) | filesystem-mcp-linux-amd64 |
| Linux (ARM64) | filesystem-mcp-linux-arm64 |
| Windows | filesystem-mcp-windows-amd64.exe |
Make it executable (macOS/Linux):
chmod +x filesystem-mcp-darwin-arm64
go build -ldflags="-s -w" -o bin/filesystem-mcp ./cmd
Set allowed directories using the environment variable:
export MCP_ALLOWED_DIRS="/path1,/path2,/path with spaces/dir3"
read_file — Read a single file, with optional start_line/end_line for partial readsread_multiple_files — Read multiple files simultaneously in one callsearch_in_files — Recursive regex search across files. Returns file paths, line numbers, and matched text. Skips binary files automatically. Params: path, pattern, file_extensions, max_results, case_sensitivewrite_file — Create or overwrite a file. Auto-creates parent directoriesappend_to_file — Add content to end of file. Creates file if it doesn't existprepend_to_file — Add content to beginning of file. Creates file if it doesn't existAll replacement tools support dry_run to preview changes without applying them.
replace_in_file — Replace exact string occurrences in a file. Params: path, search, replace, occurrence (0=all), dry_runreplace_in_file_regex — Replace regex pattern matches with capture group support ($1, $2). Params: path, pattern, replace, occurrence, case_sensitive, dry_runreplace_in_files — Batch replace a string across multiple files. Validates all paths before applying. Params: paths, search, replace, dry_runAll insertion tools support dry_run and autoIndent (match surrounding indentation).
insert_after_regex — Insert content after a regex pattern match. Params: path, pattern, content, occurrence (0=all, default 1), autoIndent, dry_runinsert_before_regex — Insert content before a regex pattern match. Same params as abovecopy_lines — Copy a line range from source to destination file directly on disk (no context overhead). Params: source_path, destination_path, start_line, end_line, appendlist_directory — List directory contents with filtering by pattern, file type, recursion depth, hidden files, and metadata. Params: path, pattern, file_type, recursive, max_depth, max_results, include_hidden, include_metadatacreate_directory — Create directory and parents (idempotent)list_allowed_directories — Show accessible directoriesmove_file — Move or rename files and directoriesget_file_info — Get file metadata (size, permissions, modification time)Add to claude_desktop_config.json:
{
"mcpServers": {
"filesystem": {
"command": "/path/to/filesystem-mcp-darwin-arm64",
"env": {
"MCP_ALLOWED_DIRS": "/path1,/path2,/path with spaces/dir3"
}
}
}
}
The server implements defense-in-depth security to prevent unauthorized file access.
filepath.EvalSymlinks() before validation../ escape attempts/allowed matching /allowed_attackerSECURITY: prefixMCP_ALLOWED_DIRS with the minimum necessary directoriesSECURITY: messagesMIT License
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots