Skip to main content
Glama
ellmos-ai

ellmos-filecommander-mcp

ellmos FileCommander MCP Server

🇩🇪 Deutsche Version

Part of the ellmos-ai family.

License: MIT CI npm version Node.js MCP Tools Tests Security: Explicit Egress Security: 48h SLA Safe Delete ellmos-ai open-bricks Discovery: llms.txt

Quick Navigation: Tools Overview | System Architecture | Core Capabilities & Safety Invariants | Target Personas | Available Tools | Installation | Configuration | Comparative Matrix | Testing & Verification | Governance & Runtime Invariants | Security | Ecosystem | Security Policy | Third-Party Licenses | Marketing Log | llms.txt

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

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

Discovery keywords: local filesystem MCP server, multi-file content search MCP, safe delete MCP, Recycle Bin MCP server, process management MCP, interactive shell MCP, async file search for AI agents, cloud-lock-safe file operations, Markdown to PDF MCP, OCR MCP server, ZIP archive MCP.

Registry status: published on npm, indexed by jsDelivr, visible on LobeHub, listed on Glama, and prepared for the official MCP Registry via server.json. Some third-party directories still show older 43-tool metadata, so the canonical README/npm metadata should remain the source of truth until their reindex catches up.

NOTE

For AI Agents & LLM Integrations: FileCommander provides 50 specialized tools accessible via standard stdio transport. All tool names use the fc_ prefix to prevent namespace collisions. For LLMs, compact context and schema overviews are available in llms.txt and server.json.


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

  • Explicit Content Search - Search literal text or regex across a bounded list of files without recursion or glob expansion

  • 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 - MD5, SHA-1, SHA-256, SHA-384, and 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

  • Cloud-Lock Safe - Automatic copy+delete fallback when cloud sync filters (OneDrive, Dropbox, Google Drive, iCloud) block rename operations

  • Cloud Lock Diagnosis - Check whether a path is at risk of sync-filter conflicts before operating

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


Related MCP server: MCP TS Toolkit

System Architecture

flowchart TD
    subgraph Client["MCP Client Layer"]
        Claude["Claude Desktop / Claude Code"]
        Custom["Custom LLM Agents / Frameworks"]
    end

    subgraph Transport["Transport Layer"]
        Stdio["Stdio Transport (JSON-RPC)"]
    end

    subgraph Core["ellmos FileCommander Engine (50 Tools)"]
        FS["Filesystem Engine\n(15 tools: read, bounded preview, write, edit, safe-delete, cloud-lock safe)"]
        Search["Search Engine\n(6 tools: explicit content search plus 5 async filename-search tools)"]
        Proc["Process & REPL Sessions\n(10 tools: exec, default-app opening, background proc, interactive REPLs)"]
        Repair["Repair & Format Converter\n(9 tools: JSON fix, Mojibake fix, duplicates, format convert, checksum)"]
        Export["Export & Web Fetch\n(3 tools: Markdown->HTML/PDF, web_fetch)"]
        Sys["System, Utilities & i18n\n(7 tools: OCR, ZIP, cloud-lock check, safe-mode, time, language set/get)"]
    end

    Client -->|JSON-RPC| Stdio
    Stdio --> Core
    Core --> FS
    Core --> Search
    Core --> Proc
    Core --> Repair
    Core --> Export
    Core --> Sys
sequenceDiagram
    autonumber
    participant AI as AI Assistant (Client)
    participant FC as FileCommander Engine
    participant FS as Host Filesystem
    participant Trash as Recycle Bin / Trash
    participant Cloud as Cloud Sync Filter

    Note over AI,FC: 1. Safe Deletion & Recovery Protection
    AI->>FC: fc_delete_file / fc_safe_delete(targetPath)
    alt Safety Mode Active or fc_safe_delete invoked
        FC->>Trash: Move item to Recycle Bin / Trash
        Trash-->>FC: Moved safely (recoverable)
        FC-->>AI: Success (item preserved in Trash/Recycle Bin)
    else Permanent Unlink requested
        FC->>FS: Direct unlink
        FS-->>FC: Removed permanently
        FC-->>AI: Success
    end

    Note over AI,Cloud: 2. Resilient Cloud-Lock Handling (OneDrive/Dropbox)
    AI->>FC: fc_move(sourcePath, destPath)
    alt Cloud Filter Locks Destination
        FC->>Cloud: Attempt standard rename
        Cloud-->>FC: EPERM / EBUSY (Cloud Filter Error)
        FC->>FS: Fallback: copyFileSync + SHA-256 verify
        FC->>FS: unlinkSync source
        FC-->>AI: Move succeeded via resilient fallback
    else Local Native Filesystem
        FC->>FS: Rename (atomic)
        FS-->>FC: Done
        FC-->>AI: Move succeeded
    end

Core Capabilities & Safety Invariants

Capability / Invariant

Guarantee & Implementation Details

Security & Operational Benefit

Local stdio & explicit egress

The MCP transport is local stdio, with no telemetry and no automatic network egress. fc_web_fetch makes outbound HTTP(S) requests only when a client explicitly invokes it; private targets are blocked by default unless allow_private is enabled.

Makes the network boundary visible to clients while retaining a local, port-free server transport.

Safe Deletion & Trash Protection

fc_safe_delete moves items to Windows Recycle Bin / macOS Trash / Linux FreeDesktop Trash. fc_set_safe_mode routes all deletes safely.

Prevents irreversible data loss from accidental recursive or bulk deletions.

Cloud-Lock Resilient Move (fc_move)

Automatic detection of cloud sync filters (OneDrive, Dropbox, iCloud reparse points) with seamless copy+verify+delete fallback.

Eliminates EPERM / EBUSY failures during automated agent operations in sync directories.

Cloud-Lock Diagnosis (fc_check_cloud_lock)

Read-only report of static cloud-path context plus target existence/type; Cloud Files hydration and process handles are explicitly reported as not checked when unavailable.

Agents can distinguish static OneDrive risk from an actual detected rename lock.

Bounded Multi-File Content Search

fc_search_content strictly caps inputs (max 50 explicit files, 10 MB per file, 200 matches, 200k chars) without glob recursion.

Prevents out-of-memory errors and catastrophic CPU lockups during large repository searches.

Automated Secret & Token Redaction

Content search excerpts automatically mask common API keys, bearer tokens, AWS credentials, and authorization headers.

Prevents LLM context contamination and accidental credential leakage in prompt history.

Interactive REPL & Session Isolation

Stateful interactive sessions (fc_start_session, fc_send_input, fc_read_output) for Python, Node.js, bash, and PowerShell with bounded buffers.

Allows multi-turn REPL debugging without unconstrained background process buildup.

Lossless Multi-Format Engine

Declarative conversion (fc_convert_format) across 7 structured formats (JSON, YAML, TOML, XML, CSV, INI, TOON).

Clean data normalization across heterogeneous configuration formats without data loss.

Mojibake & File Repair Engine

fc_fix_encoding, fc_fix_json, and fc_cleanup_file repair broken UTF-8 encoding (27+ patterns), malformed JSON syntax, BOMs, and NUL bytes.

Self-healing pipelines for corrupted files generated across divergent OS platforms.

Unprivileged Non-Elevation Execution

Designed and verified to run in standard unprivileged user-mode. Never requires administrative or root privileges.

Minimal attack surface; adheres to the principle of least privilege.

Six-language Runtime i18n Engine

Dynamic language switching and introspection (fc_set_language, fc_get_language) for German (de), English (en), Spanish (es), Chinese (zh), Japanese (ja), and Russian (ru).

Native multilingual developer experience and localized error reporting.

Multi-OS Verified Matrix

Tested across Windows, Ubuntu Linux, and macOS on Node.js 20, 22, and 24 with 291 automated assertions.

Continuous cross-platform parity and reliability.


Target Personas & Discoverability

FileCommander is purpose-built and validated for four core developer, agentic, and operations personas:

1. Autonomous AI Coding Agents & LLM Swarms

  • Profile: Multi-agent swarms and standalone agentic runtimes (Claude Code, Antigravity/Gemini, OpenAI Codex, AutoGen, CrewAI) executing recursive code editing, project refactoring, and directory audits.

  • Key Operational Pain Points: Rapid context window bloat caused by reading multi-megabyte files, unhandled process crashes from locked files (EPERM/EBUSY) in cloud-synced folders, and unrecoverable repository corruption from accidental rm -rf cleanup routines.

  • FileCommander Solution:

    • fc_preview_file: Metadata-first inspection with strict 1 MiB inline content ceiling preventing LLM context blowout.

    • fc_search_content: Bounded multi-file search (max 50 files, 10 MB per file, 200 matches) with automatic secret/token redaction.

    • fc_safe_delete & fc_set_safe_mode: Preserves deleted files in OS Recycle Bin / Trash for zero-risk file operations.

    • fc_move & fc_check_cloud_lock: Automatic copy + SHA-256 verify + unlink fallback on file locks, preventing agent failure.

2. DevOps, Toolchain & Multi-Host Automation Engineers

  • Profile: Systems and automation engineers constructing cross-platform CLI tools, CI/CD validation pipelines, and multi-machine sync scripts across Windows, Linux, and macOS.

  • Key Operational Pain Points: Heterogeneous operating system semantics (Windows backslashes vs POSIX slashes, line-ending corruption, shell-specific syntax), zombie child processes, and file locking in shared OneDrive/Dropbox workspaces.

  • FileCommander Solution:

    • Cross-platform unified tool semantics across Windows, Linux, and macOS.

    • Stateful interactive REPL sessions (fc_start_session, fc_send_input, fc_read_output) with bounded circular ring buffers.

    • Batch file renaming (fc_batch_rename) and background directory search (fc_start_search, fc_get_search_results).

    • Process lifecycle management (fc_execute_command, fc_start_process, fc_kill_process) without process leaks.

3. SecOps, Governance & Compliance Officers

  • Profile: Security officers, compliance auditors, and privacy teams overseeing AI tool integrations in enterprise and production environments.

  • Key Operational Pain Points: Undisclosed background telemetry beacons, unvetted network access from local plugins, credential/token leakage into model training or prompt histories, and unprivileged user privilege escalation.

  • FileCommander Solution:

    • Local stdio transport with strictly zero telemetry and zero open network listening ports.

    • Explicit outbound network egress strictly restricted to caller-invoked fc_web_fetch (internal/private IPs blocked by default).

    • Automated secret and bearer token masking in search excerpts (INV-MASK-06).

    • Strict unprivileged user execution (INV-PROC-09) and binding 48-hour vulnerability response SLA (security@open-bricks.org, security@ellmos.ai).

4. Enterprise Platform Architects & Data Pipeline Developers

  • Profile: Solutions architects and data engineers integrating local files, normalizing heterogeneous configuration formats, validating cryptographic hashes, and generating reports.

  • Key Operational Pain Points: MCP server sprawl requiring 4-6 disparate single-purpose servers, corrupted UTF-8 byte sequences (Mojibake) across tools, and bespoke parsing scripts.

  • FileCommander Solution:

    • Comprehensive 50-tool single-server deployment eliminating multi-server sprawl and process overhead.

    • Lossless declarative conversion across 7 structured formats (fc_convert_format: JSON, YAML, TOML, XML, CSV, INI, TOON).

    • Built-in file repair engines (fc_fix_encoding, fc_fix_json, fc_cleanup_file) for self-healing pipelines.

    • Cryptographic checksums (fc_checksum: SHA-256, SHA-512, MD5, SHA-1) and Markdown to PDF/HTML rendering (fc_md_to_pdf, fc_md_to_html).


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 (15 tools)

Tool

Description

fc_read_file

Read file contents with optional line limit

fc_preview_file

Inspect MIME type and size first, then explicitly request bounded inline MCP content

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 (cloud-lock safe)

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

fc_preview_file is the remote/headless fallback for local files. Its default call returns structured metadata only: resolved path, file:// URI, MIME type, byte size, preview kind, fixed 1 MiB limit, and the exact follow-up call. Content is read only after include_content=true. Eligible text and raster images use standard MCP text/image content blocks; PDFs use a bounded embedded resource. Files above 1 MiB and unsupported types remain metadata-only and are never read or Base64-encoded by the preview path.

Content Search (1 tool)

Tool

Description

fc_search_content

Read-only literal or regex search within an explicit ordered list of files, with case, context, global, and per-file limits

fc_search_content never expands globs, traverses directories, or recursively discovers files. It accepts at most 50 explicit UTF-8 text files, skips binary and files over 10 MB, and returns deterministic JSON. Matches are limited to 200 globally and 100 per file, context to 10 lines, excerpts to 500 characters, and serialized output to 200,000 characters. Missing, cloud-only, permission, encoding, binary, and size failures are reported per file so readable files still produce results. Common secret formats are redacted from excerpts.

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 (5 tools)

Tool

Description

fc_execute_command

Execute a shell command (blocking, with timeout)

fc_start_process

Start a background process (non-blocking)

fc_open_path

Validate and open an existing local file or directory with the OS default application

fc_list_processes

List running system processes

fc_kill_process

Terminate a process by PID or name

fc_open_path accepts only an existing file or directory and sends it to a fixed native default-handler launcher. Its structured result reports launcher_accepted=true|false, always reports user_visible="unknown", and identifies a machine-readable fallback: fc_preview_file with metadata-only arguments for files or fc_list_directory for directories. Launcher acceptance never claims that a GUI became visible. fc_start_process instead lets the caller choose an executable and arguments. fc_execute_command accepts an arbitrary shell command: Node's default shell is used for ordinary commands (COMSPEC/cmd.exe on Windows), while FileCommander's Windows special-character path can route through Windows PowerShell.

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 (9 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-384, 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)

Cloud Sync (1 tool)

Tool

Description

fc_check_cloud_lock

Report static cloud-sync context and target state; never claim an active lock without evidence (Windows)

System (4 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

fc_set_language

Set the runtime language (de, en, es, zh, ja, or ru)

fc_get_language

Read the active runtime language and all supported language codes

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

Web (1 tool)

Tool

Description

fc_web_fetch

Fetch a web page and return content by mode: extract (clean main text), raw (HTTP body), links, forms, or headers. Read-only network tool; SSRF guard blocks internal/private targets by default.

Total: 50 tools


Comparative Matrix & Alternatives

FileCommander combines filesystem manipulation, bounded search, process control, data repair, format conversion, and document rendering into a single unified MCP interface. Below is an architectural comparison against standard alternatives across 10 key operational dimensions:

Operational Dimension

ellmos FileCommander MCP (50 Tools)

Official Filesystem MCP (@modelcontextprotocol/server-filesystem)

Desktop Commander MCP

Direct Host Shell (bash / PowerShell)

Ad-Hoc Scripts & Cloud APIs

Tool Breadth & Scope

50 unified tools across 6 domains

~11 basic file I/O tools

~15 tools (file + process)

Unconstrained CLI commands

Fragmented bespoke scripts

Safe Deletion & Recovery

Native OS Recycle Bin / Trash (fc_safe_delete, Safety Mode)

Permanent deletion only (unlink)

Permanent deletion only

Irreversible rm -rf / Remove-Item

Custom trash implementations

Cloud-Lock & Sync Resilience

Automatic fallback (copy + SHA-256 verify + unlink on EPERM/EBUSY)

Fails on locked files / reparse points

Fails on locked files

Fails or blocks indefinitely

Sync collision / conflict copies

Bounded Search & Secret Redaction

Bounded search (max 50 files, 10 MB, auto API token redaction)

Directory walk only (no content regex)

Unbounded regex search

Unbounded grep (leaks secrets in context)

Custom regex without redaction

Async Long-Running Search

Token-paginated background scans (fc_start_search)

Synchronous only (blocks agent)

Synchronous only

Background job control (&)

Polling loops / slow network calls

Interactive REPL & Session Control

Stateful REPLs (Node, Python, Shell) with circular buffers

Not supported

Basic terminal sessions

Raw subprocesses (zombie process risk)

Complex IPC piping

Self-Healing & Data Repair

Built-in Mojibake fix (27+ patterns) & JSON repair

Not supported

Not supported

Manual iconv / sed pipeline

Custom error recovery code

Multi-Format Transformation

Declarative conversion (JSON, YAML, TOML, XML, CSV, INI, TOON)

Not supported

Not supported

Requires external jq / yq / xmlstarlet

Third-party Python libraries

Document & Archive Utilities

Built-in ZIP lifecycle, OCR (Tesseract), Markdown to HTML/PDF

Not supported

Excel/PDF via desktop app

Requires pandoc, zip, tesseract

Fragmented utility dependencies

Governance & Security SLAs

Local stdio, zero telemetry, explicit egress, binding 48h SLA

Standard stdio, community SLA

Stdio, unvetted telemetry/logs

Unrestricted elevation & script injection risk

Ad-hoc SaaS cloud exposure

Key differentiators:

  • Only MCP server with recoverable delete (Recycle Bin / Trash) and global Safety Mode

  • Only MCP server with async background search with pagination and token management

  • Only MCP server with automated secret & bearer token redaction in search snippets

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

  • Built-in cloud-lock-safe file operations with automatic copy+verify+delete fallback

  • Most comprehensive single-server solution (50 tools) eliminating multi-server sprawl


Tool Prefix

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


Discoverability

FileCommander is designed to be discoverable by both people and AI agents:

  • package.json exposes the official mcpName (io.github.ellmos-ai/ellmos-filecommander-mcp) and MCP-specific npm keywords.

  • server.json follows the official MCP Registry schema and points to the npm package.

  • glama.json provides MCP-directory metadata for Glama-compatible indexes.

  • llms.txt gives compact context for LLMs, agent catalogs, and documentation crawlers.

  • MARKETING-LOG.txt records discoverability positioning, 4 target personas, and verification contracts.

  • THIRD_PARTY_LICENSES.md documents license compliance for all runtime and development dependencies.

Primary search terms: ellmos-filecommander-mcp, FileCommander MCP, filesystem MCP server, multi-file content search MCP, safe delete MCP, async file search MCP, process management MCP, Markdown PDF MCP.

External discovery notes: npm and jsDelivr may briefly lag behind the current release. LobeHub indexes the GitHub repo as an MCP server. Use the package description and this README as the canonical 50-tool source for the current repository.


Governance & Runtime Invariants

The server enforces 10 strict runtime invariants guaranteeing safety, predictability, and least privilege:

Invariant ID

Name

Guarantee & Implementation Details

Operational Safety Benefit

INV-LOCAL-01

Local stdio & explicit egress

Local stdio transport, zero telemetry, no open listening ports. Outbound HTTP(S) requests strictly occur via explicit client calls to fc_web_fetch.

Zero unauthorized background network leakage; local-first isolation.

INV-SAFE-02

Safe Deletion & Trash Protection

fc_safe_delete and global fc_set_safe_mode route file and directory deletions through OS Recycle Bin (Windows) / Trash (macOS/Linux).

Eliminates irreversible accidental data loss from AI agent actions.

INV-LOCK-03

Cloud-Lock Resilient Move

fc_move automatically executes copy + SHA-256 verify + source unlink fallback when sync filters (OneDrive, Dropbox, iCloud) cause EPERM/EBUSY.

Guarantees file operations succeed reliably inside cloud-synchronized workspaces.

INV-DIAG-04

Cloud-Lock Diagnosis

fc_check_cloud_lock provides read-only static path inspection and reparse point detection without mutating filesystem state.

Enables agents to assess sync conflict risks before performing modifications.

INV-SRCH-05

Bounded Multi-File Content Search

fc_search_content strictly caps inputs (max 50 explicit files, 10 MB per file, 200 matches, 200k chars) without glob recursion.

Prevents out-of-memory crashes and unconstrained CPU consumption.

INV-MASK-06

Automated Secret & Token Redaction

Content search excerpts automatically detect and mask API keys, bearer tokens, AWS credentials, and authorization headers.

Protects credentials from prompt leakage and context contamination.

INV-PREV-07

Bounded Inline Preview & Safe Open

fc_preview_file is metadata-first with a strict 1 MiB inline content ceiling; fc_open_path invokes default application via shell-safe OS launchers.

Safe inspection of remote and local files without UI freeze or payload bloat.

INV-REPL-08

Interactive REPL & Session Isolation

Stateful interactive sessions (fc_start_session, fc_send_input, fc_read_output) employ bounded circular ring buffers.

Enables multi-turn REPL debugging while preventing zombie process buildup.

INV-PROC-09

Unprivileged Non-Elevation Execution

Executes entirely in standard unprivileged user-mode; never requests or requires administrative elevation or root rights.

Minimal attack surface; adheres strictly to the principle of least privilege.

INV-SLA-10

48h Security Response & 5-Day Triage SLA

Formal vulnerability commitment with multi-channel contacts (security@open-bricks.org, security@ellmos.ai).

Predictable, enterprise-ready incident response and triage lifecycle.


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_open_path invokes the operating system's associated application for a caller-selected existing path; that application runs with the user's permissions

  • fc_open_path reports launcher acceptance separately from the invariant user_visible="unknown"; fc_preview_file is the metadata-first remote fallback with an explicit 1 MiB inline-content boundary

  • fc_start_session starts an arbitrary interactive command, and subsequent fc_send_input calls can execute additional actions

  • 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)

  • Safe mode protects only fc_delete_file and fc_delete_directory; it does not sandbox commands or interactive sessions

  • The server transport is local stdio and emits no telemetry, but an explicit fc_web_fetch call performs outbound HTTP(S) access

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


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

# Run test suite
npm test

Testing

The project includes 220 Vitest tests plus 71 standalone i18n checks (291 total) covering filesystem operations, metadata-first inline preview, bounded content search, native default-handler launching, format conversion, encoding repair, archive handling, duplicate detection, language packs, tool annotations, real stdio behavior, and security boundaries.

npm test              # Run all tests
node test-i18n.mjs    # Run standalone i18n checks
npx vitest run        # Same as above
npx vitest --watch    # Watch mode

Tests are verified on Windows, macOS, and Linux. Pushes and pull requests run CI on Node.js 20, 22, and 24 with npm ci, TypeScript build, Vitest, and an npm package dry-run.

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 legacy package name 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

50

Filesystem, bounded inline preview, content search, default-app opening, process management, interactive sessions, cloud-lock-safe operations

ellmos-filecommander-mcp

CodeCommander

22

Code analysis, JSON repair, imports, diffs, regex

ellmos-codecommander-mcp

Clatcher

12

File repair, format conversion, batch operations

ellmos-clatcher-mcp

n8n Manager

19

n8n workflow management via AI assistants

n8n-manager-mcp

ControlCenter

31

MCP stack discovery, profile management, control plane

ellmos-controlcenter-mcp

Homebase

45

Local-first LLM memory, knowledge, state, routing, swarm orchestration

ellmos-homebase-mcp (alpha)

ServerCommander

8

Server operations: health checks, log analysis, deploy dry-runs, mail diagnostics

ellmos-servercommander-mcp (alpha)

Blender Use

5

Headless Blender asset QA and FBX reimport verification

ellmos-blender-use-mcp (alpha)

Open Compute

16

Model-agnostic computer use: capture, safety-gated actions, Windows UIA

open-compute-mcp (alpha)

AI Infrastructure

Project

Description

BACH

Local-first text-based OS for LLM agents — 113+ handlers, 550+ tools, SQLite memory

open-compute

Model-agnostic computer-use core powering Open Compute MCP

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 & Sibling Applications

Our partner organization open-bricks and its line organizations provide AI-native desktop applications and developer utilities:

Application

Category

Organization

Focus

ProFiler

File Management

file-bricks

High-speed dual-pane file manager with AI integration

ExplorerPro

File Exploration

file-bricks

Smart file explorer with semantic filters & preview

WinStorePackager

Packaging

file-bricks

MSIX & Store packaging for Windows desktop applications

SoftwareCenter

App Store

file-bricks

Centralized desktop package management & distribution

SQLiteViewer

Database Tool

file-bricks

Lightweight SQLite exploration & querying

DokuZen

Markdown Suite

doc-bricks

Markdown editor, PDF export & document conversion

MediaBrain

Document / Media

doc-bricks

Audio/video transcription, metadata extraction & cataloging

UniversalInvoiceMail

Document / Mail

doc-bricks

Automated invoice parsing, PDF extraction & mail routing

DevCenter

Developer Suite

dev-bricks

Integrated developer toolbox, code analyzers & generators

CodeBox

Code Editor

dev-bricks

Multi-language code editor with LLM augmentation

safe-start-for-codex

Security & Audit

dev-bricks

Hardened runtime environment & pre-flight checker for Codex

automation-master

Task Automation

dev-bricks

High-reliability background automation runner & scheduler

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 gilt der Haftungsausschluss der MIT-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). The MIT license disclaimer also applies. 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
    227 npm
    1
    MIT