ellmos-filecommander-mcp 1.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +116 -0
- package/LICENSE +21 -0
- package/README.md +284 -0
- package/SECURITY.md +54 -0
- package/THIRD_PARTY_NOTICES.md +59 -0
- package/dist/i18n/de.d.ts +3 -0
- package/dist/i18n/de.d.ts.map +1 -0
- package/dist/i18n/de.js +430 -0
- package/dist/i18n/de.js.map +1 -0
- package/dist/i18n/en.d.ts +3 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +430 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/index.d.ts +7 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +9 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/types.d.ts +388 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +5 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3726 -0
- package/dist/index.js.map +1 -0
- package/package.json +65 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [1.7.2] - 2026-02-20
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- Update CHANGELOG with 5 missing version entries (v1.5.0-v1.7.1)
|
|
9
|
+
- Fix server.json version mismatch
|
|
10
|
+
- Update SECURITY.md supported versions (1.3.x -> 1.7.x)
|
|
11
|
+
- Add missing runtime dependencies to THIRD_PARTY_NOTICES.md
|
|
12
|
+
- Remove stale "NEW in v1.4.0" label from README
|
|
13
|
+
|
|
14
|
+
## [1.7.1] - 2026-02-17
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- Replace custom TOON parser/serializer with official `@toon-format/toon` package
|
|
18
|
+
- Proper TOON format: `key: value` syntax instead of custom `key = value`
|
|
19
|
+
|
|
20
|
+
## [1.7.0] - 2026-02-17
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
- `fc_ocr` - Extract text from images via optional tesseract.js dependency
|
|
24
|
+
- `fc_archive` - Create, extract, and list ZIP archives (via adm-zip)
|
|
25
|
+
- `fc_checksum` - File hashing (MD5, SHA-1, SHA-256, SHA-512) with optional compare
|
|
26
|
+
- `fc_set_safe_mode` - Toggle safety mode: route all deletes through Recycle Bin / Trash
|
|
27
|
+
- Expand `fc_convert_format`: add YAML, TOML, XML, and TOON support (was JSON/CSV/INI only)
|
|
28
|
+
- Full i18n (DE/EN) for all new tools
|
|
29
|
+
- Total tools: 43
|
|
30
|
+
|
|
31
|
+
## [1.6.1] - 2026-02-17
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
- `mcpName` field in package.json for MCP Registry verification
|
|
35
|
+
- `server.json` for official MCP Registry publishing
|
|
36
|
+
|
|
37
|
+
## [1.6.0] - 2026-02-17
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
- `fc_md_to_pdf` - Real PDF generation via headless Edge/Chrome browser
|
|
41
|
+
- Cross-platform browser detection (Windows, macOS, Linux)
|
|
42
|
+
- Fallback to HTML output if no browser is available
|
|
43
|
+
- Total tools: 39
|
|
44
|
+
|
|
45
|
+
## [1.5.0] - 2026-02-15
|
|
46
|
+
|
|
47
|
+
### Added
|
|
48
|
+
- Complete internationalization (i18n) infrastructure with German (default) and English support
|
|
49
|
+
- New `fc_set_language` tool for runtime language switching
|
|
50
|
+
- `FC_LANGUAGE` environment variable for startup configuration
|
|
51
|
+
- ~270 translated strings (tool titles, descriptions, error messages, weekdays)
|
|
52
|
+
- i18n test suite (66 tests)
|
|
53
|
+
- Language priority: `fc_set_language` > `FC_LANGUAGE` env > `"de"` default
|
|
54
|
+
|
|
55
|
+
## [1.4.1] - 2026-02-14
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
- `fc_md_to_html` completely rewritten: line-by-line parser instead of regex chain
|
|
59
|
+
- Added: nested lists, ordered lists, blockquotes, checkboxes, badge images, standalone images
|
|
60
|
+
- Added: bold+italic combo (`***text***`), proper `<thead>/<tbody>` tables
|
|
61
|
+
- Professional CSS: dark code blocks, colored headers, print-ready layout
|
|
62
|
+
|
|
63
|
+
## [1.4.0] - 2026-02-14
|
|
64
|
+
|
|
65
|
+
### Added
|
|
66
|
+
- `fc_fix_json` - Repair common JSON errors (BOM, trailing commas, single quotes, comments, NUL bytes)
|
|
67
|
+
- `fc_validate_json` - Validate JSON with detailed error position and context
|
|
68
|
+
- `fc_cleanup_file` - Clean files: remove BOM, NUL bytes, trailing whitespace, normalize line endings
|
|
69
|
+
- `fc_fix_encoding` - Fix Mojibake and double-encoded UTF-8 (27+ patterns for German, French, Spanish)
|
|
70
|
+
- `fc_folder_diff` - Track directory changes (new/modified/deleted files) with snapshots
|
|
71
|
+
- `fc_batch_rename` - Pattern-based batch renaming (prefix/suffix removal, replace, auto-detect)
|
|
72
|
+
- `fc_convert_format` - Convert between JSON, CSV, and INI formats
|
|
73
|
+
- `fc_detect_duplicates` - Find duplicate files using SHA-256 hashing with size pre-filter
|
|
74
|
+
- `fc_md_to_html` - Convert Markdown to styled HTML (printable as PDF via browser)
|
|
75
|
+
- Total tools: 38
|
|
76
|
+
|
|
77
|
+
## [1.3.0] - 2026-02-14
|
|
78
|
+
|
|
79
|
+
### Changed
|
|
80
|
+
- Project prepared for public open-source release
|
|
81
|
+
- README rewritten in English for international audience
|
|
82
|
+
- Added LICENSE (MIT), SECURITY.md, CONTRIBUTING.md
|
|
83
|
+
- Package metadata updated for NPM publishing
|
|
84
|
+
|
|
85
|
+
## [1.2.1] - 2025-01-05
|
|
86
|
+
|
|
87
|
+
### Added
|
|
88
|
+
- `fc_str_replace` - String replacement tool with unique-match validation
|
|
89
|
+
- Total tools: 29
|
|
90
|
+
|
|
91
|
+
### Fixed
|
|
92
|
+
- `fc_safe_delete` PowerShell escaping for paths with special characters
|
|
93
|
+
- `&` character handling in Windows paths (PowerShell fallback)
|
|
94
|
+
|
|
95
|
+
## [1.2.0] - 2025-01-05
|
|
96
|
+
|
|
97
|
+
### Added
|
|
98
|
+
- Async Search system (5 tools): `fc_start_search`, `fc_get_search_results`, `fc_stop_search`, `fc_list_searches`, `fc_clear_search`
|
|
99
|
+
- `fc_safe_delete` - Moves files to Recycle Bin (Windows) or Trash (macOS/Linux) instead of permanent deletion
|
|
100
|
+
|
|
101
|
+
## [1.1.0] - 2025-01-05
|
|
102
|
+
|
|
103
|
+
### Added
|
|
104
|
+
- `fc_read_multiple_files` - Read multiple files in one call
|
|
105
|
+
- `fc_edit_file` - Line-based file editing (replace/insert/delete)
|
|
106
|
+
- `fc_list_processes` - List running system processes
|
|
107
|
+
- `fc_kill_process` - Terminate processes by PID or name
|
|
108
|
+
- Interactive Sessions (4 tools): `fc_start_session`, `fc_read_output`, `fc_send_input`, `fc_close_session`
|
|
109
|
+
|
|
110
|
+
## [1.0.0] - 2025-01-05
|
|
111
|
+
|
|
112
|
+
### Added
|
|
113
|
+
- Initial release with 13 filesystem tools
|
|
114
|
+
- File operations: read, write, list, create directory, delete, move, copy, file info, search
|
|
115
|
+
- Process execution: `fc_execute_command`, `fc_start_process`
|
|
116
|
+
- System: `fc_get_time`
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025-2026 Lukas (BACH)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="filecommander_banner.jpg" alt="FileCommander banner" width="700">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# BACH FileCommander MCP Server
|
|
6
|
+
|
|
7
|
+
*Part of the [ellmos-ai](https://github.com/ellmos-ai) family.*
|
|
8
|
+
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
[](https://www.npmjs.com/package/bach-filecommander-mcp)
|
|
11
|
+
[](https://nodejs.org/)
|
|
12
|
+
|
|
13
|
+
A comprehensive **Model Context Protocol (MCP) server** that gives AI assistants full filesystem access, process management, interactive shell sessions, and async file search capabilities.
|
|
14
|
+
|
|
15
|
+
**43 tools** in a single server - everything an AI agent needs to interact with the local system.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Why FileCommander?
|
|
20
|
+
|
|
21
|
+
Most filesystem MCP servers only cover basic read/write operations. FileCommander goes further:
|
|
22
|
+
|
|
23
|
+
- **Safe Delete** - Moves files to Recycle Bin (Windows) or Trash (macOS/Linux) instead of permanent deletion
|
|
24
|
+
- **Interactive Sessions** - Start and interact with REPLs (Python, Node.js, shells) through the MCP protocol
|
|
25
|
+
- **Async Search** - Search large directory trees in the background while the AI continues working
|
|
26
|
+
- **Process Management** - List, start, and terminate system processes
|
|
27
|
+
- **String Replace** - Edit files by matching unique strings with context validation
|
|
28
|
+
- **Format Conversion** - Convert between JSON, CSV, INI, YAML, TOML, XML, and TOON
|
|
29
|
+
- **ZIP Archives** - Create, extract, and list ZIP archives
|
|
30
|
+
- **File Checksums** - SHA-256, MD5, SHA-1, SHA-512 hashing with compare
|
|
31
|
+
- **OCR** - Extract text from images (optional tesseract.js dependency)
|
|
32
|
+
- **Safety Mode** - Toggle to route all deletes through Recycle Bin / Trash
|
|
33
|
+
- **Markdown Export** - Convert Markdown to professional HTML/PDF with code blocks, tables, nested lists, blockquotes
|
|
34
|
+
- **Cross-platform** - Works on Windows, macOS, and Linux with platform-specific optimizations
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
### Prerequisites
|
|
41
|
+
|
|
42
|
+
- [Node.js](https://nodejs.org/) 18 or higher
|
|
43
|
+
- npm
|
|
44
|
+
|
|
45
|
+
### Option 1: Install from NPM
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm install -g bach-filecommander-mcp
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Option 2: Install from Source
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
git clone https://github.com/lukisch/bach-filecommander-mcp.git
|
|
55
|
+
cd bach-filecommander-mcp
|
|
56
|
+
npm install
|
|
57
|
+
npm run build
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Configuration
|
|
63
|
+
|
|
64
|
+
### Claude Desktop
|
|
65
|
+
|
|
66
|
+
Add to your `claude_desktop_config.json`:
|
|
67
|
+
|
|
68
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
69
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
70
|
+
|
|
71
|
+
#### If installed globally via NPM:
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"mcpServers": {
|
|
76
|
+
"filecommander": {
|
|
77
|
+
"command": "bach-filecommander"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### If installed from source:
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"mcpServers": {
|
|
88
|
+
"filecommander": {
|
|
89
|
+
"command": "node",
|
|
90
|
+
"args": ["/absolute/path/to/filecommander-mcp/dist/index.js"]
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Restart Claude Desktop after saving.
|
|
97
|
+
|
|
98
|
+
### Other MCP Clients
|
|
99
|
+
|
|
100
|
+
The server communicates via **stdio transport**. Point your MCP client to the `dist/index.js` entry point or the `bach-filecommander` binary.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Tools Overview
|
|
105
|
+
|
|
106
|
+
### Filesystem Operations (14 tools)
|
|
107
|
+
|
|
108
|
+
| Tool | Description |
|
|
109
|
+
|------|-------------|
|
|
110
|
+
| `fc_read_file` | Read file contents with optional line limit |
|
|
111
|
+
| `fc_read_multiple_files` | Read up to 20 files in a single call |
|
|
112
|
+
| `fc_write_file` | Write/create/append to files |
|
|
113
|
+
| `fc_edit_file` | Line-based editing (replace, insert, delete lines) |
|
|
114
|
+
| `fc_str_replace` | Replace a unique string in a file with context validation |
|
|
115
|
+
| `fc_list_directory` | List directory contents (recursive, configurable depth) |
|
|
116
|
+
| `fc_create_directory` | Create directories (including parents) |
|
|
117
|
+
| `fc_delete_file` | Delete a file (permanent) |
|
|
118
|
+
| `fc_delete_directory` | Delete a directory (with optional recursive flag) |
|
|
119
|
+
| `fc_safe_delete` | Move to Recycle Bin / Trash (recoverable!) |
|
|
120
|
+
| `fc_move` | Move or rename files and directories |
|
|
121
|
+
| `fc_copy` | Copy files and directories |
|
|
122
|
+
| `fc_file_info` | Get detailed file metadata (size, dates, type) |
|
|
123
|
+
| `fc_search_files` | Synchronous file search with wildcard patterns |
|
|
124
|
+
|
|
125
|
+
### Async Search (5 tools)
|
|
126
|
+
|
|
127
|
+
| Tool | Description |
|
|
128
|
+
|------|-------------|
|
|
129
|
+
| `fc_start_search` | Start a background search (returns immediately) |
|
|
130
|
+
| `fc_get_search_results` | Retrieve results with pagination |
|
|
131
|
+
| `fc_stop_search` | Cancel a running search |
|
|
132
|
+
| `fc_list_searches` | List all active/completed searches |
|
|
133
|
+
| `fc_clear_search` | Remove completed searches from memory |
|
|
134
|
+
|
|
135
|
+
### Process Management (4 tools)
|
|
136
|
+
|
|
137
|
+
| Tool | Description |
|
|
138
|
+
|------|-------------|
|
|
139
|
+
| `fc_execute_command` | Execute a shell command (blocking, with timeout) |
|
|
140
|
+
| `fc_start_process` | Start a background process (non-blocking) |
|
|
141
|
+
| `fc_list_processes` | List running system processes |
|
|
142
|
+
| `fc_kill_process` | Terminate a process by PID or name |
|
|
143
|
+
|
|
144
|
+
### Interactive Sessions (5 tools)
|
|
145
|
+
|
|
146
|
+
| Tool | Description |
|
|
147
|
+
|------|-------------|
|
|
148
|
+
| `fc_start_session` | Start an interactive process (Python, Node, shell...) |
|
|
149
|
+
| `fc_read_output` | Read session output |
|
|
150
|
+
| `fc_send_input` | Send input to a running session |
|
|
151
|
+
| `fc_list_sessions` | List all sessions |
|
|
152
|
+
| `fc_close_session` | Terminate a session |
|
|
153
|
+
|
|
154
|
+
### File Maintenance & Repair (8 tools)
|
|
155
|
+
|
|
156
|
+
| Tool | Description |
|
|
157
|
+
|------|-------------|
|
|
158
|
+
| `fc_fix_json` | Repair broken JSON (BOM, trailing commas, comments, single quotes) |
|
|
159
|
+
| `fc_validate_json` | Validate JSON with detailed error position and context |
|
|
160
|
+
| `fc_cleanup_file` | Remove BOM, NUL bytes, trailing whitespace, normalize line endings |
|
|
161
|
+
| `fc_fix_encoding` | Fix Mojibake / double-encoded UTF-8 (27+ character patterns) |
|
|
162
|
+
| `fc_folder_diff` | Track directory changes with snapshots (new/modified/deleted) |
|
|
163
|
+
| `fc_batch_rename` | Pattern-based batch renaming (prefix/suffix, replace, auto-detect) |
|
|
164
|
+
| `fc_convert_format` | Convert between JSON, CSV, INI, YAML, TOML, XML, and TOON formats |
|
|
165
|
+
| `fc_detect_duplicates` | Find duplicate files using SHA-256 hashing |
|
|
166
|
+
| `fc_checksum` | File hashing (MD5, SHA-1, SHA-256, SHA-512) with optional compare |
|
|
167
|
+
|
|
168
|
+
### Archive (1 tool)
|
|
169
|
+
|
|
170
|
+
| Tool | Description |
|
|
171
|
+
|------|-------------|
|
|
172
|
+
| `fc_archive` | Create, extract, and list ZIP archives |
|
|
173
|
+
|
|
174
|
+
### OCR (1 tool)
|
|
175
|
+
|
|
176
|
+
| Tool | Description |
|
|
177
|
+
|------|-------------|
|
|
178
|
+
| `fc_ocr` | Extract text from images via tesseract.js (optional dependency) |
|
|
179
|
+
|
|
180
|
+
### System (2 tools)
|
|
181
|
+
|
|
182
|
+
| Tool | Description |
|
|
183
|
+
|------|-------------|
|
|
184
|
+
| `fc_get_time` | Get current system time with timezone info |
|
|
185
|
+
| `fc_set_safe_mode` | Toggle safe mode: all deletes go through Recycle Bin / Trash |
|
|
186
|
+
|
|
187
|
+
### Export (2 tools)
|
|
188
|
+
|
|
189
|
+
| Tool | Description |
|
|
190
|
+
|------|-------------|
|
|
191
|
+
| `fc_md_to_html` | Markdown to standalone HTML with CSS styling (headers, code blocks, tables, nested lists, blockquotes, images, checkboxes) |
|
|
192
|
+
| `fc_md_to_pdf` | Markdown to PDF via headless browser (Edge/Chrome). Falls back to HTML if no browser is available |
|
|
193
|
+
|
|
194
|
+
**Total: 43 tools**
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Comparison with Alternatives
|
|
199
|
+
|
|
200
|
+
| Feature | FileCommander | [Desktop Commander](https://github.com/wonderwhy-er/DesktopCommanderMCP) | [Official Filesystem](https://www.npmjs.com/package/@modelcontextprotocol/server-filesystem) |
|
|
201
|
+
|---------|:---:|:---:|:---:|
|
|
202
|
+
| File read/write/copy/move | 14 tools | Yes | Yes |
|
|
203
|
+
| Safe delete (Recycle Bin) | Yes | No | No |
|
|
204
|
+
| Async background search | 5 tools | No | No |
|
|
205
|
+
| Interactive sessions (REPL) | 5 tools | Yes | No |
|
|
206
|
+
| Process management | 4 tools | Yes | No |
|
|
207
|
+
| Shell command execution | Yes | Yes | No |
|
|
208
|
+
| String replace with validation | Yes | Yes | No |
|
|
209
|
+
| Line-based file editing | Yes | No | No |
|
|
210
|
+
| JSON repair & validation | 2 tools | No | No |
|
|
211
|
+
| Encoding fix (Mojibake) | Yes | No | No |
|
|
212
|
+
| Duplicate detection (SHA-256) | Yes | No | No |
|
|
213
|
+
| Folder diff / change tracking | Yes | No | No |
|
|
214
|
+
| Batch rename (pattern-based) | Yes | No | No |
|
|
215
|
+
| Format conversion (JSON/CSV/INI/YAML/TOML/XML/TOON) | Yes | No | No |
|
|
216
|
+
| ZIP archive (create/extract/list) | Yes | No | No |
|
|
217
|
+
| File checksums (SHA-256/MD5) | Yes | No | No |
|
|
218
|
+
| OCR (image to text) | Optional | No | No |
|
|
219
|
+
| Safety mode (delete → Recycle Bin) | Yes | No | No |
|
|
220
|
+
| Path allowlist / sandboxing | No | No | Yes |
|
|
221
|
+
| Excel / PDF support | PDF (via browser) | Yes | No |
|
|
222
|
+
| HTTP transport | No | No | No |
|
|
223
|
+
| Markdown to HTML/PDF export | Yes | No | No |
|
|
224
|
+
| **Total tools** | **43** | ~15 | ~11 |
|
|
225
|
+
| **Servers needed** | **1** | 1 | + extra for processes |
|
|
226
|
+
|
|
227
|
+
**Key differentiators:**
|
|
228
|
+
- Only MCP server with **recoverable delete** (Recycle Bin / Trash)
|
|
229
|
+
- Only MCP server with **async background search** with pagination
|
|
230
|
+
- Built-in **JSON repair**, **encoding fix**, and **duplicate detection**
|
|
231
|
+
- Most comprehensive single-server solution (43 tools)
|
|
232
|
+
- Built-in **safety mode** to prevent accidental permanent deletion
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Tool Prefix
|
|
237
|
+
|
|
238
|
+
All tools use the `fc_` prefix (FileCommander) to avoid conflicts with other MCP servers.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Security
|
|
243
|
+
|
|
244
|
+
**This server has full filesystem access with the running user's permissions.**
|
|
245
|
+
|
|
246
|
+
See [SECURITY.md](SECURITY.md) for detailed security information and recommendations.
|
|
247
|
+
|
|
248
|
+
Key points:
|
|
249
|
+
- `fc_execute_command` runs arbitrary shell commands
|
|
250
|
+
- `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)
|
|
251
|
+
- No built-in sandboxing - security is delegated to the MCP client layer
|
|
252
|
+
- Designed for local use via stdio transport only
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Development
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# Install dependencies
|
|
260
|
+
npm install
|
|
261
|
+
|
|
262
|
+
# Watch mode (auto-rebuild on changes)
|
|
263
|
+
npm run dev
|
|
264
|
+
|
|
265
|
+
# One-time build
|
|
266
|
+
npm run build
|
|
267
|
+
|
|
268
|
+
# Start the server
|
|
269
|
+
npm start
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Changelog
|
|
277
|
+
|
|
278
|
+
See [CHANGELOG.md](CHANGELOG.md) for the full version history.
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## License
|
|
283
|
+
|
|
284
|
+
[MIT](LICENSE) - Lukas (BACH)
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Important Security Notice
|
|
4
|
+
|
|
5
|
+
**This MCP server has full filesystem access with the permissions of the running user.**
|
|
6
|
+
|
|
7
|
+
By design, this server provides LLMs with powerful system access capabilities. Please understand the security implications before using it.
|
|
8
|
+
|
|
9
|
+
### High-Risk Tools
|
|
10
|
+
|
|
11
|
+
| Tool | Risk | Description |
|
|
12
|
+
|------|------|-------------|
|
|
13
|
+
| `fc_execute_command` | **Critical** | Executes arbitrary shell commands |
|
|
14
|
+
| `fc_start_process` | **High** | Starts background processes |
|
|
15
|
+
| `fc_kill_process` | **High** | Can terminate any accessible process |
|
|
16
|
+
| `fc_delete_file` | **High** | Permanently deletes files (no recycle bin) |
|
|
17
|
+
| `fc_delete_directory` | **High** | Recursively deletes directories |
|
|
18
|
+
| `fc_write_file` | **Medium** | Can overwrite any accessible file |
|
|
19
|
+
| `fc_ocr` | **Low** | Reads images (optional tesseract.js) |
|
|
20
|
+
| `fc_archive` | **Medium** | Creates/extracts ZIP archives |
|
|
21
|
+
| `fc_checksum` | **Low** | Computes file hashes (read-only) |
|
|
22
|
+
|
|
23
|
+
### Recommendations
|
|
24
|
+
|
|
25
|
+
1. **Enable Safety Mode** via `fc_set_safe_mode(true)` to route all delete operations through Recycle Bin / Trash automatically.
|
|
26
|
+
|
|
27
|
+
2. **Use `fc_safe_delete`** instead of `fc_delete_file`/`fc_delete_directory` when possible - it moves items to the Recycle Bin instead of permanent deletion.
|
|
28
|
+
|
|
29
|
+
3. **Be cautious with `fc_execute_command`** - it runs commands with your full user permissions. Review commands before approving execution in your MCP client.
|
|
30
|
+
|
|
31
|
+
4. **Do not expose this server to untrusted networks.** It is designed for local use via stdio transport only.
|
|
32
|
+
|
|
33
|
+
5. **Review your MCP client's approval settings.** Most MCP clients (like Claude Desktop) prompt before executing destructive operations. Keep these prompts enabled.
|
|
34
|
+
|
|
35
|
+
### No Sandbox
|
|
36
|
+
|
|
37
|
+
This server does **not** implement:
|
|
38
|
+
- Path restrictions or allowlists
|
|
39
|
+
- Command filtering or blocklists
|
|
40
|
+
- Rate limiting
|
|
41
|
+
- Audit logging
|
|
42
|
+
|
|
43
|
+
These are intentional design decisions to keep the server simple and flexible. Security is delegated to the MCP client layer.
|
|
44
|
+
|
|
45
|
+
### Reporting Vulnerabilities
|
|
46
|
+
|
|
47
|
+
If you discover a security vulnerability, please open an issue on the GitHub repository. For sensitive disclosures, please use GitHub's private vulnerability reporting feature.
|
|
48
|
+
|
|
49
|
+
## Supported Versions
|
|
50
|
+
|
|
51
|
+
| Version | Supported |
|
|
52
|
+
|---------|-----------|
|
|
53
|
+
| 1.7.x | Yes |
|
|
54
|
+
| < 1.7 | No |
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Third-Party Notices
|
|
2
|
+
|
|
3
|
+
This project uses the following third-party packages:
|
|
4
|
+
|
|
5
|
+
## Runtime Dependencies
|
|
6
|
+
|
|
7
|
+
### @modelcontextprotocol/sdk
|
|
8
|
+
- **License:** MIT
|
|
9
|
+
- **Copyright:** Copyright (c) Anthropic, PBC
|
|
10
|
+
- **Repository:** https://github.com/modelcontextprotocol/typescript-sdk
|
|
11
|
+
|
|
12
|
+
### zod
|
|
13
|
+
- **License:** MIT
|
|
14
|
+
- **Copyright:** Copyright (c) Colin McDonnell
|
|
15
|
+
- **Repository:** https://github.com/colinhacks/zod
|
|
16
|
+
|
|
17
|
+
### adm-zip
|
|
18
|
+
- **License:** MIT
|
|
19
|
+
- **Copyright:** Copyright (c) 2012 Another-D-Mention Software and other contributors
|
|
20
|
+
- **Repository:** https://github.com/cthackers/adm-zip
|
|
21
|
+
|
|
22
|
+
### js-yaml
|
|
23
|
+
- **License:** MIT
|
|
24
|
+
- **Copyright:** Copyright (c) 2011-2015 by Vitaly Puzrin
|
|
25
|
+
- **Repository:** https://github.com/nodeca/js-yaml
|
|
26
|
+
|
|
27
|
+
### smol-toml
|
|
28
|
+
- **License:** MIT
|
|
29
|
+
- **Repository:** https://github.com/nicolo-ribaudo/smol-toml
|
|
30
|
+
|
|
31
|
+
### fast-xml-parser
|
|
32
|
+
- **License:** MIT
|
|
33
|
+
- **Copyright:** Copyright (c) 2017 Amit Kumar Gupta
|
|
34
|
+
- **Repository:** https://github.com/NaturalIntelligence/fast-xml-parser
|
|
35
|
+
|
|
36
|
+
### @toon-format/toon
|
|
37
|
+
- **License:** MIT
|
|
38
|
+
- **Repository:** https://github.com/nicfontaine/toon
|
|
39
|
+
|
|
40
|
+
## Development Dependencies
|
|
41
|
+
|
|
42
|
+
### typescript
|
|
43
|
+
- **License:** Apache-2.0
|
|
44
|
+
- **Copyright:** Copyright (c) Microsoft Corporation
|
|
45
|
+
- **Repository:** https://github.com/microsoft/TypeScript
|
|
46
|
+
- **Note:** Used only for compilation. Not included in the distributed package.
|
|
47
|
+
|
|
48
|
+
### @types/node
|
|
49
|
+
- **License:** MIT
|
|
50
|
+
- **Copyright:** DefinitelyTyped contributors
|
|
51
|
+
- **Repository:** https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
52
|
+
|
|
53
|
+
## Node.js Built-in Modules
|
|
54
|
+
|
|
55
|
+
This project uses Node.js built-in modules (`fs`, `path`, `child_process`, `util`) which are part of the Node.js runtime and licensed under the MIT License.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
All listed licenses are permissive and compatible with this project's MIT License.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../src/i18n/de.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,EAAE,EAAE,YAwdhB,CAAC"}
|