Skip to content

Tool Selection Guide

This guide helps you choose the right tool from the 17 core MCP tools available in Filesystem Ultra.

For Claude Code compatibility, these aliases work identically to the core tools:

Alias→ CoreAlso Available
Viewread_fileread_text_file
Editedit_fileedit
Writewrite_filewrite, create_file
Replacewrite_filewrite
LSlist_directorydirectory_tree
GlobToolsearch_filessearch
GrepToolsearch_filessearch
Do you need to read a file?
├── Full file → read_file
├── Specific line range → read_file with start_line + end_line
└── Binary/base64 → read_file with encoding:"base64"
Need to create or overwrite a file?
├── Text content → write_file
└── Binary/base64 → write_file with encoding:"base64" or content_base64
What kind of edit?
├── Single replacement → edit_file
├── Replace Nth occurrence → edit_file with occurrence:N
├── Regex-based transform → edit_file with mode:"regex"
├── Bulk replace across files → edit_file with mode:"search_replace"
└── Multiple replacements in one file → multi_edit
What are you looking for?
├── File name or content → search_files
├── Content with regex + context → search_files (with case_sensitive/whole_word/include_context)
├── Count occurrences only → search_files with count_only:true
└── Find and replace across files → edit_file with mode:"search_replace"

TaskToolWhy
Read any fileread_fileAuto-optimizes: direct for small, chunked for large
Read specific linesread_file with start_line + end_lineMost token-efficient
Read first/last N linesread_file with mode + max_linesTail logs, preview files
Read binary as base64read_file with encoding:"base64"Images, binaries
TaskToolWhy
Replace specific textedit_fileAuto-backup, risk assessment, smart matching
Replace Nth occurrenceedit_file with occurrence:NPrecise control
Regex transformationedit_file with mode:"regex"Capture groups, advanced patterns
Bulk replace across filesedit_file with mode:"search_replace"Recursive with file pattern filter
Multiple replacementsmulti_editAtomic, single read/write cycle
TaskToolWhy
Create or overwrite filewrite_fileAuto-streams large content, creates dirs
Write binary from base64write_file with encoding:"base64"Images, binaries
TaskToolWhy
Find files by namesearch_filesFast smart search
Find code in filessearch_files with include_contentContent search
Regex with context linessearch_files with include_contextAdvanced text search
Count matchessearch_files with count_only:trueQuick count without reading
TaskToolWhy
Rename filemove_fileRename is a move within the same directory
Copy filecopy_filePreserves permissions
Move filemove_fileAtomic move
Delete safelydelete_fileSoft-delete by default (recoverable)
Delete permanentlydelete_file with permanent: truePermanent
Get file infoget_file_infoSize, date, permissions
TaskToolWhy
List contentslist_directoryFast, cached
Create directorycreate_directoryCreates parents too
TaskToolWhy
View backupsbackupNo params = list all
Backup detailsbackup with backup_idFull info
Compare with backupbackup with backup_id + file_pathSee differences
Clean old backupsbackup with cleanup: trueFree space
Restore filebackup with action:"restore" + backup_idPreview option with preview: true
TaskToolWhy
Analyze fileanalyze_operation with operation: "file"Size, type, strategy
Get optimization adviceanalyze_operation with operation: "optimize"Best approach
Preview edit impactanalyze_operation with operation: "edit"Risk level
Preview write impactanalyze_operation with operation: "write"Dry-run
Preview delete impactanalyze_operation with operation: "delete"Impact analysis
TaskToolWhy
Copy between WSL/Windowswsl with action:"sync" + source_pathAuto-detects direction
Sync workspacewsl with action:"sync" + directionBidirectional sync
Check statuswsl with action:"status"Environment info
Configure auto-syncwsl with action:"status" + enabledToggle sync
TaskToolWhy
Multiple operationsbatch_operations with request_jsonAtomic with rollback
Rename many filesbatch_operations with rename_json8 rename modes
Multi-step pipelinebatch_operations with pipeline_jsonChained steps with conditions
TaskToolWhy
Performance statsserver_info with action:"stats"Cache hit rates, throughput
Get helpserver_info with action:"help"Tool documentation
Capture artifactserver_info with action:"artifact"Save/retrieve artifacts

  1. search_files(".", "buggy_function") — Find location
  2. read_file("file.go", start_line: 100, end_line: 120) — Read only that section
  3. edit_file("file.go", "old_code", "fixed_code") — Apply fix
  1. search_files("file.go", "oldName", count_only: true) — Check count
  2. analyze_operation("file.go", "edit", old_text: "oldName", new_text: "newName") — Preview
  3. edit_file("file.go", "oldName", "newName") — Apply

Scenario 3: Create Multiple Files Atomically

Section titled “Scenario 3: Create Multiple Files Atomically”
batch_operations({
request_json: JSON.stringify({
operations: [
{ type: "write", path: "file1.go", content: "..." },
{ type: "write", path: "file2.go", content: "..." },
{ type: "create_dir", path: "new_folder" }
],
atomic: true
})
})
  1. backup() — List recent backups
  2. backup({ backup_id: "...", file_path: "..." }) — Compare
  3. backup({ action: "restore", backup_id: "...", preview: true }) — Preview
  4. backup({ action: "restore", backup_id: "..." }) — Restore

Scenario 5: Regex Refactor with Capture Groups

Section titled “Scenario 5: Regex Refactor with Capture Groups”
edit_file({
path: "handler.go",
mode: "regex",
pattern: "fmt\\.Errorf\\(\"(\\w+): %v\", err\\)",
replacement: "fmt.Errorf(\"$1: %w\", err)"
})
batch_operations({
pipeline_json: JSON.stringify({
name: "refactor-todos",
stop_on_error: true,
create_backup: true,
steps: [
{ id: "find", action: "search", params: { path: ".", pattern: "TODO", file_types: [".go"] } },
{ id: "count", action: "count_occurrences", input_from: "find", params: { pattern: "TODO" } },
{ id: "fix", action: "edit", input_from: "find",
condition: { type: "count_gt", step_ref: "count", value: "0" },
params: { old_text: "TODO", new_text: "DONE" } }
]
})
})

  1. Use search_files before reading large files — find the exact location first
  2. Use read_file with start_line/end_line when you know the lines
  3. Use edit_file instead of write_file for changes — sends only the diff
  4. Use multi_edit for multiple changes in one file — single read/write cycle
  5. Use batch_operations with pipeline_json for multi-step operations — 4x token reduction

The consolidated tools automatically choose the best strategy:

  • read_file — Direct read or chunked streaming based on file size
  • write_file — Direct write or streaming write based on content size
  • edit_file — Direct edit or line-by-line streaming based on file size
  • Directory listings are cached (98%+ hit rate)
  • Repeated reads of same file use cache
  • Use server_info with action:"stats" to check cache performance

Migration from v3 (59 tools) to v4 (16 tools)

Section titled “Migration from v3 (59 tools) to v4 (16 tools)”
Old Tool (v3)New Tool (v4)How
mcp_readread_fileSame params
mcp_writewrite_fileSame params
mcp_editedit_fileSame params
mcp_searchsearch_filesSame params
mcp_listlist_directorySame params
read_file_rangeread_fileAdd start_line + end_line
read_base64read_fileAdd encoding:"base64"
write_base64write_fileAdd encoding:"base64"
rename_filemove_fileSame params (rename = move)
search_and_replaceedit_fileAdd mode:"search_replace"
replace_nth_occurrenceedit_fileAdd occurrence:N
regex_transform_fileedit_fileAdd mode:"regex"
count_occurrencessearch_filesAdd count_only:true
execute_pipelinebatch_operationsPass pipeline_json instead of request_json
batch_rename_filesbatch_operationsPass rename_json instead of request_json
restore_backupbackupAdd action:"restore"
wsl_syncwslAdd action:"sync"
wsl_statuswslAdd action:"status"
statsserver_infoAdd action:"stats"
get_helpserver_infoAdd action:"help"
artifactserver_infoAdd action:"artifact"

CategoryCountTools
Reading1read_file
Writing1write_file
Editing2edit_file, multi_edit
Search1search_files
File Ops4copy_file, move_file, delete_file, get_file_info
Directory2list_directory, create_directory
Analysis1analyze_operation
Backup1backup
WSL1wsl
Batch1batch_operations
Utilities1server_info

Total: 17 core tools