# BACH FileCommander (npm · bach-filecommander-mcp)

43 tools for filesystem, process management, sessions, search, OCR, ZIP, and PDF export.

- Trust score: 53/100 (low)
- Change this week: +13
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `bach-filecommander-mcp`: 53/100 (this document), [markdown](https://verifymcp.io/servers/lukisch-bach-filecommander-mcp/bach-filecommander-mcp.md), [page](https://verifymcp.io/servers/lukisch-bach-filecommander-mcp/bach-filecommander-mcp)

## Channel facts

- Registry: `npm`
- Package: `bach-filecommander-mcp`
- Version: `1.7.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 70/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects adm-zip 0.5.18, a direct dependency. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (107 of 111), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL redirects; it must resolve directly.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 151 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4503 tokens (~102/item across 44 items; 44 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add lukisch-bach-filecommander-mcp -- npx -y bach-filecommander-mcp
```

### Codex

```bash
codex mcp add lukisch-bach-filecommander-mcp -- npx -y bach-filecommander-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "lukisch-bach-filecommander-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "bach-filecommander-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add lukisch-bach-filecommander-mcp --command npx --arg -y --arg bach-filecommander-mcp
```

### Hermes

```yaml
mcp_servers:
  lukisch-bach-filecommander-mcp:
    command: "npx"
    args: ["-y", "bach-filecommander-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "lukisch-bach-filecommander-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "bach-filecommander-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 53, +37)

- [security regression] CVE-2026-39244 affects this package: high
- [security regression] Provenance: unverified → fail
- [security regression] Known CVEs: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] Security disclosure: fail → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → good
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional] Licence: MIT

### 2026-08-01 (score 16, +16)

- [functional improvement] Tool coverage: unverified → 100

### 2026-07-31 (score 0, −22)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 22, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-28 (score 40, 0)

- [functional regression] Security disclosure: unverified → fail

### 2026-07-27 (score 40)

First indexed and scored.

## MCP tools (44)

### `fc_read_file` (~146 tokens)

Read File

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"

Input parameters:

- `encoding` (string): Character encoding
- `max_lines` (integer): Max lines (0 = all)
- `path` (string, required): Full path to the file

### `fc_write_file` (~141 tokens)

Write File

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!

Input parameters:

- `append` (boolean): Append to file
- `content` (string, required): Content to write
- `create_dirs` (boolean): Create missing directories
- `path` (string, required): Full path to the file

### `fc_list_directory` (~105 tokens)

List Directory

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

Input parameters:

- `depth` (integer): Recursion depth
- `path` (string, required): Path to the directory
- `show_hidden` (boolean): Show hidden files

### `fc_create_directory` (~52 tokens)

Create Directory

Creates a new directory (including parent directories).

Args:
  \- path (string): Path to the new directory

Returns:
  \- Confirmation of creation

Input parameters:

- `path` (string, required): Path to the new directory

### `fc_delete_file` (~47 tokens)

Delete File

Deletes a file.

Args:
  \- path (string): Path to the file

Warning: Irreversible! No recycle bin.

Input parameters:

- `path` (string, required): Path to the file

### `fc_delete_directory` (~71 tokens)

Delete Directory

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!

Input parameters:

- `path` (string, required): Path to the directory
- `recursive` (boolean): Delete recursively

### `fc_move` (~94 tokens)

Move/Rename

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"

Input parameters:

- `destination` (string, required): Destination path
- `source` (string, required): Source path

### `fc_copy` (~71 tokens)

Copy

Copies a file or directory.

Args:
  \- source (string): Source path
  \- destination (string): Destination path
  \- recursive (boolean): Copy directories recursively

Input parameters:

- `destination` (string, required): Destination path
- `recursive` (boolean): Copy recursively
- `source` (string, required): Source path

### `fc_file_info` (~61 tokens)

File Information

Shows detailed information about a file/directory.

Args:
  \- path (string): Path to the file/directory

Returns:
  \- Size, type, creation/modification date, permissions

Input parameters:

- `path` (string, required): Path to the file/directory

### `fc_search_files` (~137 tokens)

Search Files

Searches files by name/pattern in a directory.

Args:
  \- directory (string): Start directory for the search
  \- pattern (string): Search pattern (supports * and ? wildcards)
  \- max_results (number, optional): Maximum results (default: 50)

Examples:
  \- pattern: "*.txt" - All text files
  \- pattern: "test*" - Files starting with "test"
  \- pattern: "*.py" - All Python files

Input parameters:

- `directory` (string, required): Start directory
- `max_results` (integer): Max results
- `pattern` (string, required): Search pattern with wildcards

### `fc_start_search` (~116 tokens)

Start Async Search

Starts a background search. Claude can perform other tasks in the meantime.

Args:
  \- directory (string): Start directory
  \- pattern (string): Search pattern (wildcards: * and ?)

Returns:
  \- Search ID for fc_get_search_results, fc_stop_search

Example:
  Start search: fc_start_search("C:\Users", "*.pdf")
  Get results later: fc_get_search_results(search_id)

Input parameters:

- `directory` (string, required): Start directory
- `pattern` (string, required): Search pattern with wildcards

### `fc_get_search_results` (~104 tokens)

Get Search Results

Retrieves results of a running or completed search.

Args:
  \- search_id (string): Search ID from fc_start_search
  \- offset (number, optional): Start offset for pagination
  \- limit (number, optional): Maximum number of results (default: 50)

Returns:
  \- Search status and found files

Input parameters:

- `limit` (integer): Max results
- `offset` (integer): Start offset
- `search_id` (string, required): Search ID

### `fc_stop_search` (~37 tokens)

Stop Search

Stops a running background search.

Args:
  \- search_id (string): Search ID

Input parameters:

- `search_id` (string, required): Search ID

### `fc_list_searches` (~18 tokens)

List Searches

Lists all active and completed background searches.

### `fc_clear_search` (~53 tokens)

Clear Search

Removes a completed search from the list and frees memory.

Args:
  \- search_id (string): Search ID (or "all" for all completed)

Input parameters:

- `search_id` (string, required): Search ID or 'all'

### `fc_safe_delete` (~72 tokens)

Safe Delete (Recycle Bin)

Moves files/directories to recycle bin instead of deleting them.

Args:
  \- path (string): Path to the file/directory

SAFE: Can be restored from the recycle bin!

Note: Uses Windows recycle bin or creates backup on other systems.

Input parameters:

- `path` (string, required): Path to the file/directory

### `fc_execute_command` (~130 tokens)

Execute Command

Executes a shell command and returns the output.

Args:
  \- command (string): Command to execute
  \- cwd (string, optional): Working directory
  \- timeout (number, optional): Timeout in milliseconds (default: 30000)

Warning: Commands are executed with user privileges!

Examples:
  \- command: "dir" (Windows)
  \- command: "ls -la" (Unix)
  \- command: "python --version"

Input parameters:

- `command` (string, required): Command to execute
- `cwd` (string): Working directory
- `timeout` (integer): Timeout in ms

### `fc_start_process` (~129 tokens)

Start Process

Starts a process in the background (non-blocking).

Args:
  \- program (string): Program/Executable
  \- args (array, optional): Arguments as array
  \- cwd (string, optional): Working directory

Examples:
  \- program: "notepad.exe", args: ["test.txt"]
  \- program: "python", args: ["script.py"]
  \- program: "code", args: ["."] (open VS Code)

Input parameters:

- `args` (array): Arguments
- `cwd` (string): Working directory
- `program` (string, required): Program/Executable

### `fc_get_time` (~27 tokens)

Current Time

Returns the current system time.

Returns:
  \- Date, time, weekday, timezone

### `fc_read_multiple_files` (~107 tokens)

Read Multiple Files

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"]

Input parameters:

- `max_lines_per_file` (integer): Max lines per file
- `paths` (array, required): Array of file paths

### `fc_edit_file` (~222 tokens)

Edit File (Lines)

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

Input parameters:

- `content` (string): New content
- `end_line` (integer): End line
- `operation` (string, required): Operation
- `path` (string, required): Path to the file
- `start_line` (integer, required): Start line (1-based)

### `fc_str_replace` (~194 tokens)

String Replace in File

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=""

Input parameters:

- `new_str` (string): New string (empty = delete)
- `old_str` (string, required): String to replace (must be unique)
- `path` (string, required): Path to the file

### `fc_list_processes` (~72 tokens)

List Processes

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)

Input parameters:

- `filter` (string): Filter by process name

### `fc_kill_process` (~85 tokens)

Kill Process

Terminates a process by PID or name.

Args:
  \- pid (number, optional): Process ID
  \- name (string, optional): Process name
  \- force (boolean): Force termination

Warning: May cause data loss!

Input parameters:

- `force` (boolean): Force
- `name` (string): Process name
- `pid` (integer): Process ID

### `fc_start_session` (~128 tokens)

Start Interactive Session

Starts an interactive process as a session (for fc_read_output and fc_send_input).

Args:
  \- command (string): Command/Program
  \- args (array, optional): Arguments
  \- cwd (string, optional): Working directory

Returns:
  \- Session ID for further interaction

Examples:
  \- Python REPL: command="python"
  \- Node REPL: command="node"
  \- PowerShell: command="powershell"

Input parameters:

- `args` (array): Arguments
- `command` (string, required): Command/Program
- `cwd` (string): Working directory

### `fc_read_output` (~78 tokens)

Read Session Output

Reads the output of a running session.

Args:
  \- session_id (string): Session ID from fc_start_session
  \- clear (boolean, optional): Clear output after reading

Returns:
  \- Collected output since start/last clear

Input parameters:

- `clear` (boolean): Clear output
- `session_id` (string, required): Session ID

### `fc_send_input` (~105 tokens)

Send Input to Session

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"

Input parameters:

- `input` (string, required): Input to send
- `newline` (boolean): Append newline
- `session_id` (string, required): Session ID

### `fc_list_sessions` (~27 tokens)

List Sessions

Lists all active and ended sessions.

Returns:
  \- Table of all sessions with status

### `fc_close_session` (~62 tokens)

Close Session

Terminates a running session and removes it from the list.

Args:
  \- session_id (string): Session ID
  \- force (boolean, optional): Force termination

Input parameters:

- `force` (boolean): Force
- `session_id` (string, required): Session ID

### `fc_fix_json` (~110 tokens)

Fix JSON

Automatically repairs common JSON errors.

Args:
  \- path (string): Path to the JSON file
  \- dry_run (boolean, optional): Only show problems, do not repair
  \- create_backup (boolean, optional): Create backup before repair

Repairs: BOM, trailing commas, single quotes, comments, NUL bytes

Input parameters:

- `create_backup` (boolean): Create backup
- `dry_run` (boolean): Only show problems
- `path` (string, required): Path to the JSON file

### `fc_validate_json` (~59 tokens)

Validate JSON

Validates a JSON file and shows detailed error information.

Args:
  \- path (string): Path to the JSON file

Returns:
  \- Validation status with line/column on errors

Input parameters:

- `path` (string, required): Path to the JSON file

### `fc_cleanup_file` (~251 tokens)

Cleanup File

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

Input parameters:

- `dry_run` (boolean): Preview only
- `extensions` (string): Filter extensions (.txt,.json)
- `normalize_line_endings` (string): Line endings
- `path` (string, required): Path to file/directory
- `recursive` (boolean): Recursive
- `remove_bom` (boolean): Remove BOM
- `remove_nul_bytes` (boolean): Remove NUL bytes
- `remove_trailing_whitespace` (boolean): Trailing whitespace

### `fc_fix_encoding` (~134 tokens)

Fix Encoding

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

Input parameters:

- `create_backup` (boolean): Create backup
- `dry_run` (boolean): Preview only
- `path` (string, required): Path to the file

### `fc_folder_diff` (~115 tokens)

Folder Diff

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/

Input parameters:

- `extensions` (string): Filter extensions
- `path` (string, required): Path to the directory
- `save_snapshot` (boolean): Save snapshot

### `fc_batch_rename` (~204 tokens)

Batch Rename

Renames files by pattern: remove prefix/suffix, replace, or auto-detect.

Args:
  \- directory (string): Directory with the files
  \- mode (string): "remove_prefix" | "remove_suffix" | "replace" | "auto_detect"
  \- pattern (string, optional): Text to remove/replace
  \- replacement (string, optional): Replacement text (for replace mode)
  \- extensions (string, optional): Filter by extensions
  \- dry_run (boolean): Preview only

Examples:
  \- Remove prefix: mode="remove_prefix", pattern="backup_"
  \- Auto-detect: mode="auto_detect" detects common prefixes

Input parameters:

- `directory` (string, required): Directory
- `dry_run` (boolean): Preview only
- `extensions` (string): Filter extensions
- `mode` (string, required): Mode
- `pattern` (string): Text to remove/replace
- `replacement` (string): Replacement text

### `fc_convert_format` (~252 tokens)

Convert Format

Converts files between different formats.

Args:
  \- input_path (string): Path to source file
  \- output_path (string): Path to target file
  \- input_format (string): "json" | "csv" | "ini" | "yaml" | "toml" | "xml" | "toon"
  \- output_format (string): "json" | "csv" | "ini" | "yaml" | "toml" | "xml" | "toon"
  \- json_indent (number, optional): JSON indentation (default: 2)

Supported conversions:
  \- JSON <-> CSV (for arrays of objects)
  \- JSON <-> INI (for flat objects/sections)
  \- JSON <-> YAML
  \- JSON <-> TOML
  \- JSON <-> XML
  \- JSON <-> TOON (hierarchical key-value format)
  \- JSON pretty-print / minify

Input parameters:

- `input_format` (string, required): Input format
- `input_path` (string, required): Source file
- `json_indent` (integer): JSON indentation
- `output_format` (string, required): Output format
- `output_path` (string, required): Target file

### `fc_detect_duplicates` (~148 tokens)

Detect Duplicates

Finds file duplicates in a directory using SHA-256 hashes.

Args:
  \- directory (string): Directory to scan
  \- recursive (boolean): Search recursively
  \- extensions (string, optional): Filter by extensions
  \- min_size (number, optional): Minimum size in bytes (default: 1)
  \- max_size (number, optional): Maximum size in bytes

Returns:
  \- Groups of duplicates with paths and sizes

Input parameters:

- `directory` (string, required): Directory
- `extensions` (string): Filter extensions
- `max_size` (integer): Maximum size in bytes
- `min_size` (integer): Minimum size in bytes
- `recursive` (boolean): Recursive

### `fc_md_to_html` (~101 tokens)

Markdown to HTML

Converts Markdown to formatted HTML (printable as PDF).

Args:
  \- input_path (string): Path to Markdown file
  \- output_path (string): Path to HTML output
  \- title (string, optional): Document title

Generates standalone HTML with CSS styling, printable as PDF via browser.

Input parameters:

- `input_path` (string, required): Markdown file
- `output_path` (string, required): HTML output
- `title` (string): Document title

### `fc_md_to_pdf` (~118 tokens)

Markdown to PDF

Converts Markdown to PDF using a headless browser (Edge/Chrome).

Args:
  \- input_path (string): Path to the Markdown file
  \- output_path (string): Path to the PDF output
  \- title (string, optional): Document title

Uses the same Markdown parser as fc_md_to_html. Requires Edge or Chrome.
Falls back to HTML if no browser is found.

Input parameters:

- `input_path` (string, required): Markdown file
- `output_path` (string, required): PDF output
- `title` (string): Document title

### `fc_ocr` (~93 tokens)

OCR - Text from Image/PDF

Extrahiert Text aus Bildern (JPG/PNG/BMP/TIFF) mittels OCR (Tesseract).

Input parameters:

- `file_path` (string, required): Path to image (jpg/png/bmp/tiff) or PDF file
- `language` (string): OCR language (default: eng). Use deu for German, fra for French, etc.
- `output_path` (string): Optional: Save extracted text to file

### `fc_archive` (~76 tokens)

Archive (ZIP)

Erstellt, entpackt und listet ZIP-Archive.

Input parameters:

- `action` (string, required): Action to perform
- `archive_path` (string, required): Path to the ZIP archive
- `extract_to` (string): Extraction target directory (for extract action)
- `source_paths` (array): Files/folders to add (for create action)

### `fc_checksum` (~67 tokens)

File Checksum

Berechnet Prüfsummen (MD5/SHA1/SHA256/SHA512) für Dateien.

Input parameters:

- `algorithm` (string): Hash algorithm (default: sha256)
- `compare` (string): Optional: Hash to compare against
- `file_path` (string, required): Path to file

### `fc_set_safe_mode` (~57 tokens)

Set Safe Mode

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

Input parameters:

- `enabled` (boolean, required): Enable or disable safe mode

### `fc_set_language` (~27 tokens)

Set the output language for FileCommander tools

Input parameters:

- `language` (string, required): Language code

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/lukisch-bach-filecommander-mcp/bach-filecommander-mcp#diagnostics

## Score history

- 2026-08-03: 53
- 2026-08-02: 53
- 2026-08-01: 16
- 2026-07-31: 0
- 2026-07-30: 22
- 2026-07-28: 40
- 2026-07-27: 40

## Links

- npm package: https://www.npmjs.com/package/bach-filecommander-mcp
- Socket report: https://socket.dev/npm/package/bach-filecommander-mcp
- Changelog RSS feed: https://verifymcp.io/servers/lukisch-bach-filecommander-mcp/bach-filecommander-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/lukisch-bach-filecommander-mcp/bach-filecommander-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/lukisch-bach-filecommander-mcp/bach-filecommander-mcp
