Skip to main content
Glama
ellmos-ai

ellmos-filecommander-mcp

ellmos FileCommander MCP Server

🇩🇪 Deutsche Version

Part of the ellmos-ai family.

License: MIT npm version Node.js

A comprehensive Model Context Protocol (MCP) server that gives AI assistants full filesystem access, process management, interactive shell sessions, and async file search capabilities.

43 tools in a single server - everything an AI agent needs to interact with the local system.


Why FileCommander?

Most filesystem MCP servers only cover basic read/write operations. FileCommander goes further:

  • Safe Delete - Moves files to Recycle Bin (Windows) or Trash (macOS/Linux) instead of permanent deletion

  • Interactive Sessions - Start and interact with REPLs (Python, Node.js, shells) through the MCP protocol

  • Async Search - Search large directory trees in the background while the AI continues working

  • Process Management - List, start, and terminate system processes

  • String Replace - Edit files by matching unique strings with context validation

  • Format Conversion - Convert between JSON, CSV, INI, YAML, TOML, XML, and TOON

  • ZIP Archives - Create, extract, and list ZIP archives

  • File Checksums - SHA-256, MD5, SHA-1, SHA-512 hashing with compare

  • OCR - Extract text from images (optional tesseract.js dependency)

  • Safety Mode - Toggle to route all deletes through Recycle Bin / Trash

  • Markdown Export - Convert Markdown to professional HTML/PDF with code blocks, tables, nested lists, blockquotes

  • Cross-platform - Works on Windows, macOS, and Linux with platform-specific optimizations


Related MCP server: MCP TS Toolkit

Installation

Prerequisites

Option 1: Install from NPM

npm install -g ellmos-filecommander-mcp

Option 2: Install from Source

git clone https://github.com/ellmos-ai/ellmos-filecommander-mcp.git
cd ellmos-filecommander-mcp
npm install
npm run build

Configuration

Claude Desktop

Add to your claude_desktop_config.json:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

If installed globally via NPM:

{
  "mcpServers": {
    "filecommander": {
      "command": "ellmos-filecommander"
    }
  }
}

If installed from source:

{
  "mcpServers": {
    "filecommander": {
      "command": "node",
      "args": ["/absolute/path/to/filecommander-mcp/dist/index.js"]
    }
  }
}

Restart Claude Desktop after saving.

Other MCP Clients

The server communicates via stdio transport. Point your MCP client to the dist/index.js entry point or the ellmos-filecommander binary.


Tools Overview

Filesystem Operations (14 tools)

Tool

Description

fc_read_file

Read file contents with optional line limit

fc_read_multiple_files

Read up to 20 files in a single call

fc_write_file

Write/create/append to files

fc_edit_file

Line-based editing (replace, insert, delete lines)

fc_str_replace

Replace a unique string in a file with context validation

fc_list_directory

List directory contents (recursive, configurable depth)

fc_create_directory

Create directories (including parents)

fc_delete_file

Delete a file (permanent)

fc_delete_directory

Delete a directory (with optional recursive flag)

fc_safe_delete

Move to Recycle Bin / Trash (recoverable!)

fc_move

Move or rename files and directories

fc_copy

Copy files and directories

fc_file_info

Get detailed file metadata (size, dates, type)

fc_search_files

Synchronous file search with wildcard patterns

Async Search (5 tools)

Tool

Description

fc_start_search

Start a background search (returns immediately)

fc_get_search_results

Retrieve results with pagination

fc_stop_search

Cancel a running search

fc_list_searches

List all active/completed searches

fc_clear_search

Remove completed searches from memory

Process Management (4 tools)

Tool

Description

fc_execute_command

Execute a shell command (blocking, with timeout)

fc_start_process

Start a background process (non-blocking)

fc_list_processes

List running system processes

fc_kill_process

Terminate a process by PID or name

Interactive Sessions (5 tools)

Tool

Description

fc_start_session

Start an interactive process (Python, Node, shell...)

fc_read_output

Read session output

fc_send_input

Send input to a running session

fc_list_sessions

List all sessions

fc_close_session

Terminate a session

File Maintenance & Repair (8 tools)

Tool

Description

fc_fix_json

Repair broken JSON (BOM, trailing commas, comments, single quotes)

fc_validate_json

Validate JSON with detailed error position and context

fc_cleanup_file

Remove BOM, NUL bytes, trailing whitespace, normalize line endings

fc_fix_encoding

Fix Mojibake / double-encoded UTF-8 (27+ character patterns)

fc_folder_diff

Track directory changes with snapshots (new/modified/deleted)

fc_batch_rename

Pattern-based batch renaming (prefix/suffix, replace, auto-detect)

fc_convert_format

Convert between JSON, CSV, INI, YAML, TOML, XML, and TOON formats

fc_detect_duplicates

Find duplicate files using SHA-256 hashing

fc_checksum

File hashing (MD5, SHA-1, SHA-256, SHA-512) with optional compare

Archive (1 tool)

Tool

Description

fc_archive

Create, extract, and list ZIP archives

OCR (1 tool)

Tool

Description

fc_ocr

Extract text from images via tesseract.js (optional dependency)

System (2 tools)

Tool

Description

fc_get_time

Get current system time with timezone info

fc_set_safe_mode

Toggle safe mode: all deletes go through Recycle Bin / Trash

Export (2 tools)

Tool

Description

fc_md_to_html

Markdown to standalone HTML with CSS styling (headers, code blocks, tables, nested lists, blockquotes, images, checkboxes)

fc_md_to_pdf

Markdown to PDF via headless browser (Edge/Chrome). Falls back to HTML if no browser is available

Total: 43 tools


Comparison with Alternatives

Feature

FileCommander

Desktop Commander

Official Filesystem

File read/write/copy/move

14 tools

Yes

Yes

Safe delete (Recycle Bin)

Yes

No

No

Async background search

5 tools

No

No

Interactive sessions (REPL)

5 tools

Yes

No

Process management

4 tools

Yes

No

Shell command execution

Yes

Yes

No

String replace with validation

Yes

Yes

No

Line-based file editing

Yes

No

No

JSON repair & validation

2 tools

No

No

Encoding fix (Mojibake)

Yes

No

No

Duplicate detection (SHA-256)

Yes

No

No

Folder diff / change tracking

Yes

No

No

Batch rename (pattern-based)

Yes

No

No

Format conversion (JSON/CSV/INI/YAML/TOML/XML/TOON)

Yes

No

No

ZIP archive (create/extract/list)

Yes

No

No

File checksums (SHA-256/MD5)

Yes

No

No

OCR (image to text)

Optional

No

No

Safety mode (delete → Recycle Bin)

Yes

No

No

Path allowlist / sandboxing

No

No

Yes

Excel / PDF support

PDF (via browser)

Yes

No

HTTP transport

No

No

No

Markdown to HTML/PDF export

Yes

No

No

Total tools

43

~15

~11

Servers needed

1

1

+ extra for processes

Key differentiators:

  • Only MCP server with recoverable delete (Recycle Bin / Trash)

  • Only MCP server with async background search with pagination

  • Built-in JSON repair, encoding fix, and duplicate detection

  • Most comprehensive single-server solution (43 tools)

  • Built-in safety mode to prevent accidental permanent deletion


Tool Prefix

All tools use the fc_ prefix (FileCommander) to avoid conflicts with other MCP servers.


Security

This server has full filesystem access with the running user's permissions.

See SECURITY.md for detailed security information and recommendations.

Key points:

  • fc_execute_command runs arbitrary shell commands

  • fc_delete_* tools perform permanent deletion by default (use fc_safe_delete or enable safe mode via fc_set_safe_mode to route all deletes through Recycle Bin / Trash)

  • No built-in sandboxing - security is delegated to the MCP client layer

  • Designed for local use via stdio transport only


Development

# Install dependencies
npm install

# Watch mode (auto-rebuild on changes)
npm run dev

# One-time build
npm run build

# Start the server
npm start

See CONTRIBUTING.md for contribution guidelines.


Changelog

See CHANGELOG.md for the full version history.


License

MIT - Lukas Geiger (ellmos-ai)


History

This project was originally developed as BACH FileCommander (bach-filecommander-mcp). It has been renamed to ellmos FileCommander (ellmos-filecommander-mcp) as part of the ellmos-ai organization.

The old npm package bach-filecommander-mcp is deprecated. Please use ellmos-filecommander-mcp instead:

npm uninstall -g bach-filecommander-mcp
npm install -g ellmos-filecommander-mcp

ellmos-ai Ecosystem

This MCP server is part of the ellmos-ai ecosystem — AI infrastructure, MCP servers, and intelligent tools.

MCP Server Family

Server

Tools

Focus

npm

FileCommander

43

Filesystem, process management, interactive sessions

ellmos-filecommander-mcp

CodeCommander

17

Code analysis, AST parsing, import management

ellmos-codecommander-mcp

Clatcher

12

File repair, format conversion, batch operations

ellmos-clatcher-mcp

n8n Manager

13

n8n workflow management via AI assistants

n8n-manager-mcp

AI Infrastructure

Project

Description

BACH

Text-based OS for LLMs — 109+ handlers, 373+ tools, 932+ skills

clutch

Provider-neutral LLM orchestration with auto-routing and budget tracking

rinnsal

Lightweight agent memory, connectors, and automation infrastructure

ellmos-stack

Self-hosted AI research stack (Ollama + n8n + Rinnsal + KnowledgeDigest)

MarbleRun

Autonomous agent chain framework for Claude Code

gardener

Minimalist database-driven LLM OS prototype (4 functions, 1 table)

ellmos-tests

Testing framework for LLM operating systems (7 dimensions)

Desktop Software

Our partner organization open-bricks bundles AI-native desktop applications — a modern, open-source software suite built for the age of AI. Categories include file management, document tools, developer utilities, and more.


Haftung / Liability

Dieses Projekt ist eine unentgeltliche Open-Source-Schenkung im Sinne der §§ 516 ff. BGB. Die Haftung des Urhebers ist gemäß § 521 BGB auf Vorsatz und grobe Fahrlässigkeit beschränkt. Ergänzend gelten die Haftungsausschlüsse aus GPL-3.0 / MIT / Apache-2.0 §§ 15–16 (je nach gewählter Lizenz).

Nutzung auf eigenes Risiko. Keine Wartungszusage, keine Verfügbarkeitsgarantie, keine Gewähr für Fehlerfreiheit oder Eignung für einen bestimmten Zweck.

This project is an unpaid open-source donation. Liability is limited to intent and gross negligence (§ 521 German Civil Code). Use at your own risk. No warranty, no maintenance guarantee, no fitness-for-purpose assumed.

Available Tools

22 tools
fc_check_cloud_lockCheck Cloud LockA
Read-onlyIdempotent

Prüft ob ein Pfad von einem Cloud-Sync-Filter (cldflt.sys) blockiert werden könnte. Nur auf Windows relevant.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to check

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context about checking cloud sync filter blocking, but doesn't disclose what the output indicates (e.g., boolean result, error handling) or any side effects beyond what annotations cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is two sentences, each adding value: the action and the Windows-only caveat. No wasted words, front-loaded with the key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, one-parameter read-only tool, the description is mostly adequate. It covers purpose and platform constraint. However, lack of output schema means the return value is not described, which would help agents interpret results. Still, the tool is straightforward enough that this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'path' has 100% schema description coverage ('Path to check'). The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Prüft' (checks), the resource 'path for cloud sync filter blocking', and scope 'nur auf Windows relevant'. This distinguishes it from sibling tools like fc_list_processes or fc_kill_process, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions Windows relevance, implying when to use (on Windows systems when cloud sync issues are suspected), but doesn't explicitly state when not to use or suggest alternative tools among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_cleanup_fileCleanup FileB
Idempotent

Cleans up one or more files from common problems.

Args:

  • path (string): Path to file or directory

  • recursive (boolean, optional): Recursive for directories

  • extensions (string, optional): Filter file extensions (e.g. ".txt,.json,.py")

  • remove_bom (boolean): Remove UTF-8 BOM

  • remove_trailing_whitespace (boolean): Remove trailing whitespace

  • normalize_line_endings (string, optional): "lf" | "crlf" | null

  • remove_nul_bytes (boolean): Remove NUL bytes

  • dry_run (boolean): Preview only

Cleans: BOM, NUL bytes, trailing whitespace, line endings

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to file/directory
dry_runNoPreview only
recursiveNoRecursive
extensionsNoFilter extensions (.txt,.json)
remove_bomNoRemove BOM
remove_nul_bytesNoRemove NUL bytes
normalize_line_endingsNoLine endings
remove_trailing_whitespaceNoTrailing whitespace

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint=true and destructiveHint=false, so the tool is safe non-destructive and idempotent. The description adds that it modifies files by cleaning problems, but doesn't elaborate on behavior like what happens on dry run or whether modifications are in-place. Given the annotations cover safety, this is adequate but not exceptional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear first sentence, a parameter list, and a summary. It is not overly verbose, but could be slightly more concise by omitting redundant parameter details already present in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description fails to explain the return value or behavior after execution (e.g., what is returned, whether files are modified in-place, error handling). This leaves usability gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions. The description lists all parameters with types and defaults, and adds a summary of what is cleaned. However, it mostly reiterates schema info without adding deeper semantics or examples. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: cleaning up common file problems like BOM, NUL bytes, trailing whitespace, and line endings. It uses a specific verb ('cleans up') and identifies the resource ('files'). However, it doesn't explicitly differentiate from sibling tools like fc_fix_encoding or fc_validate_json, which may have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives, or when not to use it. The description is purely functional and lacks context about prerequisites, edge cases, or preferred use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_close_sessionClose SessionA
DestructiveIdempotent

Terminates a running session and removes it from the list.

Args:

  • session_id (string): Session ID

  • force (boolean, optional): Force termination

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce
session_idYesSession ID

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive (destructiveHint=true) and idempotent (idempotentHint=true). The description adds that the session is 'removed from the list', which is beyond annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded. The Args section is clear. Slightly redundant with schema, but acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (2 params, no output schema), the description is adequate. It covers behavior and parameters, though could mention return value or side effects more explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds minimal detail beyond the schema: it mentions 'Session ID' and 'Force termination' which are redundant with schema. No additional semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool terminates a running session and removes it. The verb 'Terminates' and resource 'running session' are specific, and the sibling fc_start_session confirms this tool is its inverse, providing differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when a session needs to be ended. The sibling fc_start_session indicates the alternative for starting sessions. No explicit when-not-to-use or prerequisites, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_copyCopyC

Copies a file or directory.

Args:

  • source (string): Source path

  • destination (string): Destination path

  • recursive (boolean): Copy directories recursively

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesSource path
recursiveNoCopy recursively
destinationYesDestination path

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=false and readOnlyHint=false, consistent with a copy operation (not destructive, not read-only). However, the description does not disclose behavior like overwriting behavior, permission requirements, or symlink handling, which are important beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise but repeats parameter definitions already in the schema. Could be more efficient by focusing on behavioral context rather than listing parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and a moderately complex tool (file system mutation), the description omits important details like overwrite behavior, permissions, and symlink handling. It is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already well documented. The description adds minimal value beyond restating the schema; a 3 is appropriate as baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool copies a file or directory, with specific verb 'copies' and resource 'file or directory'. It distinguishes from sibling tools like fc_move (move vs copy) and fc_delete_file (delete vs copy), though not explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use copy versus alternatives like fc_move, fc_archive, or fc_safe_delete. Does not mention that copy leaves the original intact, which is the key differentiator.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_create_directoryCreate DirectoryA
Idempotent

Creates a new directory (including parent directories).

Args:

  • path (string): Path to the new directory

Returns:

  • Confirmation of creation

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the new directory

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotentHint=true (repeated calls are safe), destructiveHint=false (non-destructive), and readOnlyHint=false (modification). The description adds that parent directories are created if missing, which is useful beyond annotations. No contradictions, but more behavioral context (e.g., error behavior) would be helpful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two lines of description plus structured Args/Returns. Front-loaded key information. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (1 param, no output schema), the description covers the essential: creation with parent directories. However, could mention what happens on conflict (e.g., existing directory) or return value format. Still adequate for a straightforward tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds little beyond what the schema provides. The description mentions 'path' but no extra details on formatting or allowed characters. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Creates a new directory (including parent directories)'. The verb 'Creates' and resource 'directory' are specific. It distinguishes from siblings like 'fc_delete_directory' and 'fc_list_directory' by its creation purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While it's clear for basic creation, the description doesn't mention prerequisites (e.g., permissions, existing parent) or warn against misuse. No mention of when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_delete_directoryDelete DirectoryA
DestructiveIdempotent

Deletes a directory.

Args:

  • path (string): Path to the directory

  • recursive (boolean): Delete non-empty directories too

Warning: With recursive=true ALL contents are irreversibly deleted!

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the directory
recursiveNoDelete recursively

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds critical behavioral context beyond annotations: confirms destructiveHint=true and specifies that with recursive=true, ALL contents are irreversibly deleted. Annotations already indicate destructive and idempotent, but description reinforces the irreversible consequence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is extremely concise: three sentences with no wasted words. The warning is front-loaded after the basic description, and the Args section clearly maps to parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, idempotent tool with two simple parameters and no output schema, the description covers all necessary context: action, arguments, and critical warning about irreversible deletion. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. Description repeats parameter names and types but adds a critical warning about recursive behavior, which adds value beyond schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete a directory) and distinguishes it from sibling tools like fc_delete_file (file-level deletion) and fc_safe_delete (safe delete with trash). The verb 'deletes' and resource 'directory' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly warns about the irreversible nature when recursive=true, guiding the agent to use this tool only when intentional. It implies not to use for safe deletion (use fc_safe_delete instead) and provides clear condition for non-empty directories.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_delete_fileDelete FileA
DestructiveIdempotent

Deletes a file.

Args:

  • path (string): Path to the file

Warning: Irreversible! No recycle bin.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. Description reinforces that deletion is irreversible with 'no recycle bin', adding important behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise, two key pieces of info (action, warning) in few words. Front-loaded with purpose. No wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple single-parameter tool with no output schema and strong annotations, description is sufficient. Could add a note about return value or behavior on failure, but not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%. Description adds no extra meaning beyond what's in the schema; 'path' is clear. Baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it deletes a file. No ambiguity; verb 'deletes' + resource 'file' is specific. Distinguishes from sibling 'fc_safe_delete' by not mentioning safety features.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Warns about irreversibility, implying caution. Does not explicitly state when to use this vs. alternatives like fc_safe_delete, but the warning suggests avoiding unless certain.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_edit_fileEdit File (Lines)A
Destructive

Edits a file line-based: replace, insert, or delete.

Args:

  • path (string): Path to the file

  • operation (string): "replace" | "insert" | "delete"

  • start_line (number): Start line (1-based)

  • end_line (number, optional): End line for replace/delete

  • content (string, optional): New content for replace/insert

Examples:

  • Replace lines 5-10: operation="replace", start_line=5, end_line=10, content="new text"

  • Insert after line 3: operation="insert", start_line=3, content="new line"

  • Delete lines 7-9: operation="delete", start_line=7, end_line=9

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file
contentNoNew content
end_lineNoEnd line
operationYesOperation
start_lineYesStart line (1-based)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, so description reinforces this with operation details. It adds clarity on line-based nature and required parameters, but doesn't disclose edge cases (e.g., behavior if file doesn't exist, or what happens with invalid line numbers).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with a clear header line and structured Args/Examples sections. Every sentence adds value, and examples are highly informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description explains the effect but not the return value (e.g., success message). Annotations cover destructive behavior. For a line-editing tool with 5 parameters, the description is nearly complete, lacking only return details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds value by explaining the relationships between parameters (e.g., end_line optional for insert) and providing examples. However, some nuance about line ranges could be clearer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool edits a file line-based with three specific operations (replace, insert, delete), and differentiates it from siblings like fc_write_file (overwrites whole file) and fc_str_replace (string-based replace).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description includes examples showing when to use each operation, but does not explicitly state when not to use this tool (e.g., for whole-file edits or string substitutions) or reference alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_fix_encodingFix EncodingA
Idempotent

Detects and repairs encoding errors (mojibake, double UTF-8).

Args:

  • path (string): Path to the file

  • dry_run (boolean): Only show problems

  • create_backup (boolean): Create backup

Repairs common mojibake patterns like:

  • ä -> ae, ö -> oe, ü -> ue (German umlauts)

  • ß -> ss, € -> EUR

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file
dry_runNoPreview only
create_backupNoCreate backup

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate not read-only but idempotent and non-destructive. The description adds value by explaining it repairs specific mojibake patterns and mentions dry-run and backup creation, which clarify safety. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise at 81 words, but includes an 'Args' section that largely duplicates the schema. It could be streamlined while retaining the helpful mojibake examples. No front-loading issue.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description fails to explain what the tool returns (e.g., list of issues in dry-run, modified file path, or success status). It also omits details like supported encodings or behavior if no errors found. For a file-modifying tool, this is a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds minimal new meaning. It repeats parameter names with slightly different wording ('Only show problems', 'Create backup'), which provides marginal clarity over the schema's existing descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool detects and repairs encoding errors (mojibake, double UTF-8). It provides specific examples of patterns, making the purpose unambiguous. Among sibling tools, none address encoding issues, so it is well-distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when encoding errors are present but gives no explicit guidance on when to use vs. alternatives, prerequisites, or exclusions. The sibling list includes no similar tools, but the description could still be clearer about context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_folder_diffFolder DiffA
Read-onlyIdempotent

Compares the current state of a directory with a saved snapshot.

Args:

  • path (string): Path to the directory

  • save_snapshot (boolean): Save current state as new snapshot

  • extensions (string, optional): Filter file extensions

Detects: New files, modified files, deleted files Snapshots are saved in %TEMP%/.fc_snapshots/

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the directory
extensionsNoFilter extensions
save_snapshotNoSave snapshot

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint=true, destructiveHint=false, idempotentHint=true) already indicate safe read behavior. The description goes beyond by detailing what changes are detected and where snapshots are saved (%TEMP%/.fc_snapshots/), but could add more about snapshot persistence or cleanup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is two sentences plus bullet points, front-loaded with purpose, and provides essential info with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given lack of output schema and complex detection logic, the description explains what it detects and where snapshots are stored. However, it doesn't detail return format or behavior when no snapshot exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% but descriptions are minimal ('Save snapshot', 'Filter extensions'). The description adds context: 'Filter file extensions' and explains extensions usage indirectly, but could be clearer about format (e.g., comma-separated). Higher than baseline 3 due to added detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it 'Compares the current state of a directory with a saved snapshot' and lists detected changes (new, modified, deleted files). This verb+resource is specific and distinct from sibling tools like fc_list_directory or fc_checksum.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use (comparing directory state) and hints at saving snapshots, but does not explicitly tell when not to use or compare with alternatives like fc_detect_duplicates or fc_file_info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_list_directoryList DirectoryA
Read-onlyIdempotent

Lists files and subdirectories.

Args:

  • path (string): Path to the directory

  • depth (number, optional): Maximum depth for recursive listing (default: 1)

  • show_hidden (boolean, optional): Show hidden files

Returns:

  • Formatted list of all entries with icons

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the directory
depthNoRecursion depth
show_hiddenNoShow hidden files

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint false, idempotentHint true, so safety is clear. The description adds return value format (formatted list with icons) but no additional behavioral traits like path validation or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise at 3 sentences plus args list. Front-loaded with action; could combine the returns line for efficiency, but overall well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description mentions return format. With 3 simple params fully covered by schema and annotations, it is adequate but lacks edge case behavior like symbolic links or permission errors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description slightly adds context for depth (recursive listing) and show_hidden, but mostly repeats schema parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists files and subdirectories, with a specific verb and resource. It distinguishes from file operations like fc_read_file and directory creation/deletion tools among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool vs alternatives like fc_search_files or fc_file_info. It provides basic usage context but no exclusions or scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_list_processesList ProcessesA
Read-onlyIdempotent

Lists running system processes.

Args:

  • filter (string, optional): Filter by process name

Returns:

  • List of processes with PID, name, memory

Note: Uses 'tasklist' (Windows) or 'ps' (Unix)

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter by process name

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description only needs to add context. It adds cross-platform detail and return format, which is sufficient beyond the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a one-sentence main action, followed by clear args and returns sections, and a note. No wasted words; information is efficiently front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter, the description covers the core behavior and return format. It lacks error handling or rate limit details, but given the simplicity and annotations, it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the parameter description 'Filter by process name' matching the description's args. Thus the description adds no new meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists running system processes, and the title 'List Processes' reinforces this. It distinguishes from siblings like fc_kill_process by focusing on listing rather than modifying processes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While it mentions OS-specific commands, it doesn't provide usage context or exclude alternatives like fc_kill_process for process management.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_list_sessionsList SessionsB
Read-onlyIdempotent

Lists all active and ended sessions.

Returns:

  • Table of all sessions with status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so description mainly needs to clarify scope (active and ended). It adds that sessions have a 'status' field, which is useful but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no wasted words. Front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Minimally complete: no output schema, so description doesn't detail the return format (e.g., columns, pagination). It mentions 'Table' and 'status' but lacks specifics like session IDs or timestamps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so description does not need to add param info. Schema coverage is 100% (no params), baseline is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it lists all active and ended sessions, which is clear and specific. However, it does not differentiate from sibling tools like fc_list_searches or fc_list_directory, though the resource (sessions) is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus alternatives like fc_start_session or fc_close_session. The agent might benefit from knowing this is for viewing session history, not modifying.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_moveMove/RenameA
Destructive

Moves or renames a file/directory.

Args:

  • source (string): Source path

  • destination (string): Destination path

Examples:

  • Rename: source="test.txt", destination="test_new.txt"

  • Move: source="C:\a\test.txt", destination="C:\b\test.txt"

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesSource path
destinationYesDestination path

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already show destructiveHint=true (destructive operation) and readOnlyHint=false. The description adds that it modifies file system by moving/renaming, which aligns. No contradiction. For a file move tool, this is sufficient given annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two paragraphs: first line stating purpose, then structured args and examples. The examples are front-loaded and helpful. Slightly verbose due to docstring formatting but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple operation (move/rename) with annotations covering destructive nature and no output schema needed, the description sufficiently covers key aspects. Could be more complete with notes on overwrite behavior or cross-drive moves.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with minLength=1 and descriptions 'Source path' and 'Destination path'. The description adds slightly more by showing examples with concrete paths, but doesn't add significant meaning beyond schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool moves or renames a file/directory with a specific verb and resource. It distinguishes from siblings like fc_copy or fc_archive by explicitly using 'move/rename' and showing different name/directory examples.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides basic usage via examples but lacks guidance on when to use this over alternatives like fc_copy (which copies) or fc_batch_rename (for batch). No explicit when-not or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_read_fileRead FileA
Read-onlyIdempotent

Reads the content of a file.

Args:

  • path (string): Full path to the file

  • encoding (string, optional): Character encoding (default: utf-8)

  • max_lines (number, optional): Maximum number of lines (0 = all)

Returns:

  • File content as text

  • For binary files: Base64-encoded content

Examples:

  • path: "C:\Users\User\test.txt"

  • path: "/home/user/config.json"

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path to the file
encodingNoCharacter encodingutf-8
max_linesNoMax lines (0 = all)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, setting clear safety expectations. Description adds behavioral context: supports text and binary files (Base64 return), handles encoding, and line limits, which goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise and structured with Args, Returns, and Examples sections. Front-loaded with primary action. Slightly redundant with schema but clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the schema covers parameters fully and annotations provide safety profile, the description adequately covers behavior and return. However, missing explicit info on possible errors (file not found, permission) and output schema details (since no output schema exists, description could elaborate on return structure).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents parameters. Description repeats path, encoding, and max_lines but adds examples and default value clarification. No additional semantic detail beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads file content, with specific verb and resource. It distinguishes from write tools and editing tools, but not from multiple file read (fc_read_multiple_files) which exists among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies use for reading file content but does not provide guidance on when to use vs alternatives like fc_read_multiple_files or fc_file_info. No explicit when-not-to-use or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_read_multiple_filesRead Multiple FilesA
Read-onlyIdempotent

Reads multiple files at once and returns their contents.

Args:

  • paths (array): Array of file paths

  • max_lines_per_file (number, optional): Max lines per file (0 = all)

Returns:

  • Contents of all files with separators

Example: paths: ["C:\config.json", "C:\readme.md"]

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesArray of file paths
max_lines_per_fileNoMax lines per file

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating no side effects. The description adds that it returns contents with separators, which is consistent but not extensive (e.g., no mention of file size limits beyond the 20-item array constraint from schema).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct, front-loaded with the main action, and includes structured sections for args and an example. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool with clear annotations and a complete schema, the description is sufficient. It does not need an output schema since it returns file contents with separators. It covers key aspects for a file reading tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description repeats parameter info but adds an example and a comment about max_lines_per_file, providing slight additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Reads multiple files at once and returns their contents', specifying the action (read) and resource (multiple files). It is well differentiated from its sibling 'fc_read_file' which reads a single file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading multiple files, but does not explicitly state when to use this tool versus alternatives like 'fc_read_file'. It lacks guidance on file path formats or error handling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_send_inputSend Input to SessionA

Sends input to a running session.

Args:

  • session_id (string): Session ID

  • input (string): Input to send

  • newline (boolean, optional): Append newline (default: true)

Examples:

  • Python: input="print('Hello')"

  • Shell: input="ls -la"

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesInput to send
newlineNoAppend newline
session_idYesSession ID

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-readonly and non-destructive. The description adds context about the newline parameter and provides examples showing behavior for different languages. There is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: a single line for purpose, a clear args list, and helpful examples. No wasted words, information is front-loaded and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple input-sending tool with 3 parameters and no output schema, the description covers all necessary information: how to use, parameter details, and example use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The description adds value by providing examples for the input parameter (Python vs Shell) and clarifying the default for newline, exceeding schema information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Sends input to a running session,' which is a specific verb-resource pair. It clearly distinguishes from sibling tools like fc_start_session (starts a session) and fc_list_processes (lists processes).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a running session and need to send input, but does not explicitly contrast with alternatives or state prerequisites. The context is clear enough for this simple tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_set_languageB

Set the output language for FileCommander tools

ParametersJSON Schema
NameRequiredDescriptionDefault
languageYesLanguage code

TDQS

B3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It fails to disclose behavioral traits such as whether the setting is persistent, affects all subsequent calls, or requires any prior state. Essential context is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the key verb and resource, and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

As a simple setter tool with no output schema, the description is too brief. It lacks context on scope (e.g., session duration) and side effects, which is needed for an agent to use it properly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the parameter is fully defined by the enum. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (Set) and resource (output language for FileCommander tools). It distinguishes from sibling tools which deal with processes, input, validation, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives or what prerequisites exist. The description only states what it does, missing context on when it should or should not be invoked.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_set_safe_modeSet Safe ModeA

Aktiviert/deaktiviert den Safe Mode. Wenn aktiv, werden alle Löschoperationen (fc_delete_file, fc_delete_directory) über den Papierkorb umgeleitet.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesEnable or disable safe mode

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false indicating this is a mutation tool. The description adds critical behavioral context: it redirects deletions (fc_delete_file, fc_delete_directory) to trash. This goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with clear action and effect. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single boolean parameter, no output schema), the description is complete enough. It explains the effect on two sibling tools, which aids contextual understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema provides full description for the only parameter 'enabled' (boolean). The description does not add additional parameter semantics beyond the schema's, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool toggles safe mode, and explicitly explains that when enabled, delete operations are redirected to trash. This is specific and differentiates it from other file operation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use: when you want delete operations to go to trash instead of permanent deletion. However, it does not explicitly mention alternatives or when not to use, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_str_replaceString Replace in FileA
Destructive

Replaces a unique string in a file with another.

Args:

  • path (string): Path to the file

  • old_str (string): String to replace (must occur exactly once)

  • new_str (string): New string (empty = delete)

Returns:

  • Confirmation with context

IMPORTANT: old_str must occur EXACTLY once in the file! An error is returned for 0 or >1 occurrences.

Examples:

  • Rename function: old_str="def old_name", new_str="def new_name"

  • Add import: old_str="import os", new_str="import os\nimport sys"

  • Delete line: old_str="# TODO: remove this\n", new_str=""

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file
new_strNoNew string (empty = delete)
old_strYesString to replace (must be unique)

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint=true), discloses that an error is returned for non-unique occurrences, and that empty new_str deletes the old_str. This is critical behavioral context not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Highly concise: a brief one-sentence summary then clear args, returns, important note, and examples. Every sentence is essential and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has 3 params with 100% schema coverage, no output schema, but description fully explains behavior, constraints, and return. No gaps exist for correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. But the description adds exceptional value: explains uniqueness constraint for old_str, shows new_str can be empty (delete), and includes realistic examples that clarify parameter usage. This elevates above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it replaces a unique string in a file with another, using specific verbs and resources. It distinguishes from siblings like fc_edit_file and fc_batch_rename by emphasizing uniqueness constraint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states that old_str must occur exactly once, and warns about errors for 0 or >1 occurrences. Provides three practical examples showing when to use it (rename, add import, delete line), which implicitly guides against alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_web_fetchWeb FetchA
Read-onlyIdempotent

Ruft eine Webseite ab und gibt je nach Modus Inhalt zurück: extract (sauberer Haupttext), raw (HTTP-Body, gekürzt), links, forms oder headers. Nur lesendes Netzwerk-Tool; interne/private Ziele sind standardmäßig blockiert (allow_private zum Überschreiben).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to fetch (http/https only)
modeNoextract=clean main text (default), raw=HTTP body, links=all links, forms=form fields, headers=response headersextract
allow_privateNoAllow internal/private/loopback targets (turns the SSRF guard off). Default false.
timeout_secondsNoRequest timeout in seconds (default 20)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, etc. The description adds that it is a read-only network tool and that private targets are blocked by default with allow_private override. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, concise and front-loaded with the main action. Every sentence earns its place, summarizing modes and constraints efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains what is returned based on mode but does not specify output format (e.g., JSON, raw text) or error handling. Overall adequate for a simple fetch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds a summary of modes and notes the allow_private override, providing some additional context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches a webpage and returns content based on mode (extract, raw, links, forms, headers). It distinguishes from sibling tools which are mostly file/process operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for web fetching and mentions it is read-only with default blocking of private targets. It does not explicitly state when not to use or provide alternatives, but context with sibling tools makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fc_write_fileWrite FileA
Destructive

Writes content to a file. Creates the file if it does not exist.

Args:

  • path (string): Full path to the file

  • content (string): Content to write

  • append (boolean, optional): Append to file instead of overwriting

  • create_dirs (boolean, optional): Create missing directories

Returns:

  • Confirmation with file size

Warning: Overwrites existing files without warning when append=false!

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path to the file
appendNoAppend to file
contentYesContent to write
create_dirsNoCreate missing directories

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, which the description reinforces with the overwrite warning. The description adds specific behavioral traits: creates directories if missing and the overwrite warning. However, it doesn't detail behavior on failure (e.g., partial writes) or concurrency issues. With annotations present, this is adequate but not exceptional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with clear sections for args, returns, and warnings. It front-loads the core purpose. A minor improvement: the warning could be more prominent (e.g., bold). Still, it's efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 params, no output schema, destructive nature), the description covers the key aspects: purpose, required vs. optional params, and the overwrite risk. It could mention that the return value includes file size or error details, but omission is acceptable. No output schema reduces the need for return value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter having a description. The description mirrors the schema without adding new semantic context. For example, it repeats 'append' and 'create_dirs' descriptions but doesn't explain when to use append vs. overwrite or the implications of create_dirs=true (e.g., risk of creating unintended directories). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'writes content to a file' and specifies 'creates the file if it does not exist'. This distinguishes it from siblings like fc_edit_file (modifies) and fc_delete_file (removes).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit warnings about overwriting and optional parameters. However, it doesn't specify when to use this vs. sibling tools like fc_edit_file or fc_copy. The warning implies careful use, but alternatives are not named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 27 tool updatesv1.9.3
    • Removedfc_batch_rename
    • Removedfc_clear_search
    • Addedfc_close_session
    • Removedfc_convert_format
    • Addedfc_copy
    • Addedfc_create_directory
    • Addedfc_delete_directory
    • Addedfc_delete_file
    • Removedfc_detect_duplicates
    • Addedfc_edit_file
    • Removedfc_execute_command
    • Removedfc_file_info
    • Removedfc_fix_json
    • Addedfc_list_directory
    • Addedfc_list_processes
    • Addedfc_list_sessions
    • Addedfc_move
    • Addedfc_read_file
    • Addedfc_read_multiple_files
    • Removedfc_safe_delete
    • Addedfc_set_language
    • Addedfc_set_safe_mode
    • Removedfc_start_session
    • Addedfc_str_replace
    • Removedfc_validate_json
    • Addedfc_web_fetch
    • Addedfc_write_file
  2. 31 tool updatesv1.9.3
    • Removedfc_archive
    • Removedfc_checksum
    • Removedfc_close_session
    • Removedfc_copy
    • Removedfc_create_directory
    • Removedfc_delete_directory
    • Removedfc_delete_file
    • Removedfc_edit_file
    • Removedfc_get_search_results
    • Removedfc_get_time
    • Removedfc_kill_process
    • Removedfc_list_directory
    • Removedfc_list_processes
    • Removedfc_list_searches
    • Removedfc_list_sessions
    • Removedfc_md_to_html
    • Removedfc_md_to_pdf
    • Removedfc_move
    • Removedfc_ocr
    • Removedfc_read_file
    • Removedfc_read_multiple_files
    • Removedfc_read_output
    • Removedfc_search_files
    • Removedfc_set_language
    • Removedfc_set_safe_mode
    • Removedfc_start_process
    • Removedfc_start_search
    • Removedfc_stop_search
    • Removedfc_str_replace
    • Removedfc_web_fetch
    • Removedfc_write_file
  3. 3 tool updatesv1.9.1
    • Addedfc_check_cloud_lock
    • Changedfc_set_language1 field changed
      • changedInput schema / properties / language / enum
        Previous value: -[
        -  "de",
        -  "en"
        -]New value: +[
        +  "de",
        +  "en",
        +  "es",
        +  "zh",
        +  "ja",
        +  "ru"
        +]
    • Addedfc_web_fetch
  4. 44 tool updatesv1.7.8
    • First observedfc_archive
    • First observedfc_batch_rename
    • First observedfc_checksum
    • First observedfc_cleanup_file
    • First observedfc_clear_search
    • First observedfc_close_session
    • First observedfc_convert_format
    • First observedfc_copy
    • First observedfc_create_directory
    • First observedfc_delete_directory
    • First observedfc_delete_file
    • First observedfc_detect_duplicates
    • First observedfc_edit_file
    • First observedfc_execute_command
    • First observedfc_file_info
    • First observedfc_fix_encoding
    • First observedfc_fix_json
    • First observedfc_folder_diff
    • First observedfc_get_search_results
    • First observedfc_get_time
    • First observedfc_kill_process
    • First observedfc_list_directory
    • First observedfc_list_processes
    • First observedfc_list_searches
    • First observedfc_list_sessions
    • First observedfc_md_to_html
    • First observedfc_md_to_pdf
    • First observedfc_move
    • First observedfc_ocr
    • First observedfc_read_file
    • First observedfc_read_multiple_files
    • First observedfc_read_output
    • First observedfc_safe_delete
    • First observedfc_search_files
    • First observedfc_send_input
    • First observedfc_set_language
    • First observedfc_set_safe_mode
    • First observedfc_start_process
    • First observedfc_start_search
    • First observedfc_start_session
    • First observedfc_stop_search
    • First observedfc_str_replace
    • First observedfc_validate_json
    • First observedfc_write_file

TDQS

A3.7/5.0

Scored across 22 tools

Disambiguation5/5

Each tool has a distinct purpose with no overlapping functionality. Even similar tools like fc_read_file and fc_read_multiple_files are clearly differentiated for single vs batch reads, and fc_edit_file vs fc_str_replace handle different editing approaches.

Naming Consistency4/5

All tools use the consistent 'fc_' prefix and mostly follow a verb_noun pattern (e.g., fc_read_file, fc_create_directory). Minor deviations like 'fc_str_replace' and 'fc_folder_diff' are still readable and do not cause confusion.

Tool Count4/5

22 tools is slightly above the typical well-scoped range, but each tool serves a clear and necessary function within the broader file commander domain. The count is justified by the inclusion of process/session management and cleanup utilities.

Completeness4/5

The tool set covers the core file operations (CRUD, move, copy, edit) and extends to useful utilities like encoding repair, folder diff, and cloud lock checking. Some advanced features like file search or symlink handling are missing, but the surface is solid for everyday file management.

Maintenance

ActivityActive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A comprehensive MCP server providing secure tools for filesystem operations, Git management, web search, document conversion, npm/.NET project management, and AI generative capabilities (image/video/audio generation and processing) via PiAPI.ai integration.
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    A comprehensive MCP server with 30+ custom tools organized into categories: date/time operations, file management, system information, text processing, and web operations. Enables async communication with robust error handling and flexible CLI integration.
    31
    1
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Utility-first MCP server that extends Claude Code with file-maintenance capabilities beyond built-in tools. Supports encoding repair, format conversion, duplicate detection, batch renaming, and archive utilities.
    12
    133 npm
    1
    MIT