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 Safe Delete ellmos-ai open-bricks Discovery: llms.txt

Quick Navigation: Tools Overview | System Architecture | Core Capabilities & Safety Invariants | Installation | Configuration | Comparison | Discoverability | Security | Ecosystem | Security Policy | Changelog | 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 283 automated assertions.

Continuous cross-platform parity and reliability.


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


Comparison with Alternatives

Feature

FileCommander

Desktop Commander

Official Filesystem

File read/write/copy/move

14 tools

Yes

Yes

Safe delete (Recycle Bin)

Yes

No

No

Explicit multi-file content search

Yes

No

No

Async background search

5 tools

No

No

Interactive sessions (REPL)

5 tools

Yes

No

Process management

5 tools

Yes

No

Shell command execution

Yes

Yes

No

String replace with validation

Yes

Yes

No

Line-based file editing

Yes

No

No

JSON repair & validation

2 tools

No

No

Encoding fix (Mojibake)

Yes

No

No

Duplicate detection (SHA-256)

Yes

No

No

Folder diff / change tracking

Yes

No

No

Batch rename (pattern-based)

Yes

No

No

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

Yes

No

No

ZIP archive (create/extract/list)

Yes

No

No

File checksums (MD5/SHA-1/SHA-256/SHA-384/SHA-512)

Yes

No

No

OCR (image to text)

Optional

No

No

Safety mode (delete → Recycle Bin)

Yes

No

No

Path allowlist / sandboxing

No

No

Yes

Excel / PDF support

PDF (via browser)

Yes

No

HTTP transport

No

No

No

Markdown to HTML/PDF export

Yes

No

No

Total tools

50

~15

~11

Servers needed

1

1

+ extra for processes

Key differentiators:

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

  • Only MCP server with async background search with pagination

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

  • Only MCP server with cloud-lock-safe file operations (automatic copy+delete fallback)

  • Most comprehensive single-server solution (50 tools)

  • Built-in safety mode to prevent accidental permanent deletion


Tool Prefix

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


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.

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.


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 212 Vitest tests plus 71 standalone i18n checks (283 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

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool is a safe, read-only operation. The description adds valuable context about the cloud sync filter domain, complementing the annotations without 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 consists of two concise sentences with no unnecessary words, front-loading the core purpose. It is appropriately sized for the tool's simplicity.

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?

The description covers the tool's purpose, relevant OS, and the type of blocking. However, it omits expected return values or behavior (e.g., boolean or error), which would be helpful given no output schema. Still, for a one-parameter check, it is largely 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?

The input schema has 100% coverage with one parameter described as 'Path to check.' The description does not add further details about the parameter beyond what the schema already provides, so it meets the baseline without enhancement.

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 checks if a path might be blocked by a cloud sync filter (cldflt.sys). The verb 'prüft ob' and specific resource ('Pfad') uniquely identify its purpose, and it is distinct from siblings as no other tool mentions cloud lock.

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 explicitly notes 'Nur auf Windows relevant,' providing clear context for when to use the tool. However, it does not mention when not to use it or suggest alternatives, though no direct sibling alternative exists for this specific check.

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

fc_cleanup_fileCleanup FileA
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

A4.5/5.0
Behavior5/5

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

Explicitly lists what it removes (BOM, NUL bytes, trailing whitespace, line endings) and mentions dry_run for preview. Annotations already indicate readOnlyHint=false (modifies), destructiveHint=false (safe but destructive?), idempotentHint=true (safe to re-run). Description adds context about what gets modified, which complements 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?

Clear structure with arg list and summary. At 16 lines it's somewhat lengthy but each line is informative. Could potentially combine some lines, 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 8 parameters, 100% schema coverage, and no output schema, the description adequately covers what the tool does and each parameter. It lacks information about return values (e.g., summary of changes), but since no output schema, a basic listing of what it cleans suffices.

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%, so baseline is 3. Description adds semantic groupings (lists types of cleanup, explains dry_run), provides option values for normalize_line_endings, and clarifies extensions filter format. However, it doesn't explain default behavior when specific cleanups are enabled/disabled beyond the defaults in 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?

Clearly states it cleans up files from common problems (BOM, NUL bytes, trailing whitespace, line endings). The verb 'cleans up' and resource 'file' are specific, and the description distinguishes it from siblings like fc_fix_encoding or fc_fix_json.

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 lists the problems it cleans, implying when to use it (files with those issues). No explicit when-not to use or alternatives, but among siblings like fc_fix_encoding (presumably fixes encoding specifically), this tool's generic cleanup is clear.

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

A4.3/5.0
Behavior4/5

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

The description discloses that the tool repairs common mojibake patterns and explains the dry_run and create_backup params. Annotations indicate idempotentHint=true (repairs are safe to reapply) and destructiveHint=false (no destructive side effects), which aligns with the description. The only minor gap is not explicitly stating that the file is modified in place.

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 efficient with two paragraphs: first defining the purpose and listing arguments, then giving specific repair examples. It front-loads the core action (detect and repair encoding errors). Minor improvement possible by moving examples lower.

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 could mention return values (e.g., count of fixes), but the examples and parameter descriptions provide enough for basic use. The tool's complexity is low, so the description is mostly complete.

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?

The description adds value beyond the schema by listing the three arguments (path, dry_run, create_backup) with slightly more context (e.g., 'Show only problems' vs schema's 'Preview only'). Since schema description coverage is 100%, the baseline is 3, but the explicit listing and examples add extra clarity.

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 that the tool detects and repairs encoding errors, with specific examples like mojibake and double UTF-8. It also distinguishes itself from sibling tools like fc_fix_json and fc_str_replace by focusing on encoding issues.

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 for files with encoding errors, but does not explicitly state when to use this tool vs alternatives like fc_cleanup_file or fc_str_replace. However, the specific examples of German umlauts and euro sign repairs provide clear context for typical use cases.

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.7/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, so the tool is safe and idempotent. The description adds value by noting platform-specific commands (tasklist/ps) and the return structure (PID, name, memory), which are not captured in 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, using bullet-style sections for args and returns. It is front-loaded with the main purpose. The note about platform commands is useful, though the Args/Returns formatting could be slightly more streamlined.

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 of the tool (1 optional param, no output schema, clear annotations), the description is reasonably complete. It covers purpose, usage, return format, and platform specifics. There is no output schema, so the returns section is helpful.

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 for the single parameter is 100%, and the description adds the same description as in the schema. The description does not explain the format of the filter string (e.g., wildcards, exact match), so it does not add significant meaning beyond the 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 that the tool 'lists running system processes', which is a specific verb-resource combination. It also mentions the optional filter and cross-platform behavior. However, it does not differentiate itself directly from sibling tools like 'fc_kill_process' or 'fc_start_process', though the use case is distinct enough.

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 listing processes, but does not explicitly state when to use this versus alternatives (e.g., for detailed info). The 'Returns' section hints at what to expect, but no when-not-to-use guidance is provided.

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

A3.9/5.0
Behavior3/5

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

Annotations indicate non-destructive (destructiveHint=false) and non-idempotent (idempotentHint=false) behavior. The description adds the detail that a newline is appended by default, but does not disclose other behavioral traits like error handling or character encoding, which would be useful given no output schema.

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 4 lines plus examples, no fluff. The examples are helpful and placed after the parameter list, though could be slightly more streamlined.

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 moderate complexity (3 parameters, no output schema), the description covers the essential details (what, how, examples). It lacks return value information but is sufficient for correct invocation.

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?

The input schema has 100% coverage, so baseline is 3. The description adds value by showing examples for each input string format (Python code, shell command) and clarifies the newline default behavior, earning a 4.

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 sends input to a running session, using specific verb+resource structure. It also distinguishes from sibling tools like 'fc_start_session', 'fc_read_output', and 'fc_close_session' by focusing on input delivery to an active session.

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 clear context (sending input to a running session) and examples for Python and Shell, but does not explicitly state when not to use this tool (e.g., for starting a session or reading output) or recommend alternatives.

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.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It states the tool sets the output language, but does not disclose whether the change is persistent, applies globally or per-session, or requires any permissions. For a mutation tool, this is insufficient behavioral detail.

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 with no superfluous information. It is front-loaded and efficient, earning its place without waste.

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 tool's simplicity (one parameter, no output schema), the description is fairly complete. However, it lacks information on scope and persistence of the language setting. For a simple setter, this is adequate but not exemplary.

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 'language' has a description 'Language code' with enum values. The tool's description adds 'Set the output language' but does not elaborate on the meaning of each code or how it affects output. Baseline 3 is appropriate as the schema already provides the necessary detail.

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 verb 'Set' and the resource 'output language for FileCommander tools'. It distinguishes itself from sibling tools which are file operations, as this is a configuration tool. However, it could be more specific about what 'output language' entails (e.g., UI language or error messages).

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 tool versus alternatives. It does not specify prerequisites, typical use case, or that it should be called before other FileCommander tools. The description lacks any context for appropriate usage.

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. Dates show when Glama detected each change.

  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
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
    90
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ellmos-ai/ellmos-filecommander-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server