← Back to search

io.github.dimitar-grigorov/mcp-file-tools

dimitar-grigorov Scanned 1h ago

Non-UTF-8 encoding: Cyrillic (CP1251, KOI8), Windows-125x, ISO-8859 with auto-detection

B
79.9 / 100

Versions

1.5.9latest
first seen May 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 20

tree
annotations: verified low

Compact indented tree view of directory structure. PREFER THIS for directory visualization. Skips .gitignore'd files and .git (respectGitignore=false to include). Set showEncoding=true to detect and display file encodings (e.g., for auditing legacy codebases). Parameters: path (required), maxDepth (0=unlimited), maxFiles (default 1000), dirsOnly (bool), exclude (array of patterns), showEncoding (bool, shows detected encoding per file).

readOnlyHint true
list_directory
annotations: verified low

List files and directories with optional glob pattern filtering (e.g., *.pas, *.dfm). Parameters: path (required), pattern (optional, default: *), sortBy (\"name\" default, \"mtime\" newest first, \"size\" largest first), reverse (bool, flips the order).

readOnlyHint true
search_files
annotations: verified low

Recursively search for files matching a glob pattern (*.ext at any depth, **/*.ext, several ** and {a,b} alternatives allowed). Returns full paths. Skips .gitignore'd files (respectGitignore=false to include). Parameters: path (required), pattern (required), excludePatterns, maxResults (default 10000), sortBy, reverse.

readOnlyHint true
grep_text_files
annotations: none low

Regex search in file contents with encoding support. PREFER THIS over built-in Grep for non-UTF-8 files. Skips .gitignore'd files (respectGitignore=false to include). Parameters: pattern (regex) or patterns (array), paths (array of files, or dirs searched recursively), caseSensitive (default true), contextBefore/After, maxMatches (default 1000), offset, include/includes, exclude/excludes, encoding.

get_file_info
annotations: verified low

Get file/directory metadata: size, timestamps, permissions, type. Use this to check file size before reading large files with read_text_file. Parameter: path (required).

readOnlyHint true
list_allowed_directories
annotations: verified low

Returns the list of directories this server is allowed to access, normally the directory it was started in. Subdirectories are also accessible. If empty, the user needs to add paths as args in .mcp.json or set MCP_FILE_TOOLS_ALLOWED_DIRS.

readOnlyHint true
read_text_file
annotations: verified low

Read file with encoding auto-detection, converts to UTF-8. PREFER THIS over built-in Read for non-UTF-8 files (Cyrillic, legacy codebases). Returns totalLines and fileSizeBytes for planning the next read. Parameters: path, encoding (auto-detected), offset (1-indexed start line), limit (max lines), maxCharacters (caps output to avoid token overflow), lineNumbers (default false: prefix lines with \"N<tab>\", absolute numbers — use to locate lines reported by grep or encoding errors; STRIP the prefix before using text as edit_file oldText).

readOnlyHint true
read_multiple_files
annotations: verified low

Read multiple files concurrently with encoding support. PREFER THIS when reading several non-UTF-8 files at once. Individual failures don't stop the batch — partial results are returned. Parameters: paths (required array), encoding (optional, auto-detected per file).

readOnlyHint true
edit_file
annotations: none low

Edit one file with replacements or a unified diff. Returns a unified diff and keeps the file's encoding and line endings. PREFER THIS over read+write to modify a file.

write_file
annotations: verified low

Write file with encoding conversion from UTF-8. PREFER THIS over built-in Write for non-UTF-8 files. Use after read_text_file to keep the original encoding. Parameters: path, content, encoding (default: the existing file's detected encoding, else utf-8), bom, lineEndings.

readOnlyHint false idempotentHint true
detect_encoding
annotations: verified low

Auto-detect file encoding with confidence score (0-100) and BOM detection. ALWAYS use this first when encountering garbled text or � characters. Use before read_text_file to determine the correct encoding. Parameters: path (required), mode (sample=fast default, chunked=thorough, full=entire file).

readOnlyHint true
convert_encoding
annotations: verified low

Convert files between encodings. Parameters: path (one file) OR paths (a batch — never both), to (required), from (omit to auto-detect), backup (write .bak first), dryRun (report only), allowLowConfidence, bom (\"auto\" default, \"always\", \"never\", \"preserve\").

readOnlyHint false idempotentHint true
manage_line_endings
annotations: verified low

Detect or fix line endings. action=\"detect\" reports the dominant style (crlf/lf/mixed/none), total lines, and the line numbers that disagree — use it when a file looks inconsistent. action=\"convert\" rewrites the file to style, per code unit for UTF-16 and preserving its BOM; no-op if the file already matches.

readOnlyHint false idempotentHint true
manage_bom
annotations: verified low

Detect, strip, or add Unicode BOM (Byte Order Mark). UTF-8 BOM breaks PHP/shell scripts; UTF-16 files need BOMs. Parameters: path (required), action (required: \"detect\"|\"strip\"|\"add\"), encoding (required for \"add\": utf-8, utf-16-le, utf-16-be, utf-32-le, utf-32-be).

readOnlyHint false idempotentHint true
list_encodings
annotations: verified low

Create a directory recursively (mkdir -p). Succeeds silently if already exists. Parameter: path (required).

readOnlyHint true idempotentHint true
create_directory
annotations: verified low

Create a directory recursively (mkdir -p). Succeeds silently if already exists. Parameter: path (required).

readOnlyHint false idempotentHint true
move_file
annotations: verified low

Move or rename files/directories. Fails if destination exists. Parameters: source (required), destination (required).

readOnlyHint false idempotentHint false
copy_file
annotations: verified low

Copy one file byte for byte, keeping its encoding, BOM, line endings, permissions and mtime. Use it to back up a file before an edit or a conversion. Parameters: source (required), destination (required).

readOnlyHint false idempotentHint false
delete_file
annotations: verified low

Delete a file. Does not delete directories. Parameter: path (required).

readOnlyHint false idempotentHint false
check_for_updates
annotations: verified low

Check if a newer version of mcp-file-tools is available. Returns current version, latest version, and update instructions if outdated. Uses a cached result (max 1 GitHub API call per 30 min); force=true bypasses the cache. Call once at the start of each session.

readOnlyHint true

Permissions 4

network medium
Server uses network capabilities via: fetch()
filesystem low
Server uses filesystem capabilities via: fs, fs sync ops, path
shell high
Server uses shell capabilities via: child_process, spawn(), spawnSync()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 52

info
Tool 'tree' annotations are consistent annotation_checker · 80%
info
Tool 'list_directory' annotations are consistent annotation_checker · 80%
info
Tool 'search_files' annotations are consistent annotation_checker · 80%
low
Tool 'grep_text_files' has no annotations annotation_checker · 100%
info
Tool 'get_file_info' annotations are consistent annotation_checker · 80%
info
Tool 'list_allowed_directories' annotations are consistent annotation_checker · 80%
info
Tool 'read_text_file' annotations are consistent annotation_checker · 80%
info
Tool 'read_multiple_files' annotations are consistent annotation_checker · 80%
low
Tool 'edit_file' has no annotations annotation_checker · 100%
info
Tool 'write_file' annotations are consistent annotation_checker · 80%
info
Tool 'detect_encoding' annotations are consistent annotation_checker · 80%
info
Tool 'convert_encoding' annotations are consistent annotation_checker · 80%
info
Tool 'manage_line_endings' annotations are consistent annotation_checker · 80%
info
Tool 'manage_bom' annotations are consistent annotation_checker · 80%
info
Tool 'list_encodings' annotations are consistent annotation_checker · 80%
info
Tool 'create_directory' annotations are consistent annotation_checker · 80%
info
Tool 'move_file' annotations are consistent annotation_checker · 80%
info
Tool 'copy_file' annotations are consistent annotation_checker · 80%
info
Tool 'delete_file' annotations are consistent annotation_checker · 80%
info
Tool 'check_for_updates' annotations are consistent annotation_checker · 80%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
high
Long hex escape sequence in dimitar-grigorov-mcp-file-tools-160b355/filetoolsserver/handler/candidates_test.go:18 entropy_analyzer · 85%
info
Tool: tree manifest_parser · 85%
info
Tool: list_directory manifest_parser · 85%
info
Tool: search_files manifest_parser · 85%
info
Tool: grep_text_files manifest_parser · 85%
info
Tool: get_file_info manifest_parser · 85%
info
Tool: list_allowed_directories manifest_parser · 85%
info
Tool: read_text_file manifest_parser · 85%
info
Tool: read_multiple_files manifest_parser · 85%
info
Tool: edit_file manifest_parser · 85%
info
Tool: write_file manifest_parser · 85%
info
Tool: detect_encoding manifest_parser · 85%
info
Tool: convert_encoding manifest_parser · 85%
info
Tool: manage_line_endings manifest_parser · 85%
info
Tool: manage_bom manifest_parser · 85%
info
Tool: list_encodings manifest_parser · 85%
info
Tool: create_directory manifest_parser · 85%
info
Tool: move_file manifest_parser · 85%
info
Tool: copy_file manifest_parser · 85%
info
Tool: delete_file manifest_parser · 85%
info
Tool: check_for_updates manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (3) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
low
Permission: filesystem access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
critical
Tool poisoning in 'detect_encoding': Directive language: 'always' poisoning · 85%
info
SBOM generated: 29 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%