@mcptoolshop/file-forge 0.2.0 → 0.2.1
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/README.es.md +241 -0
- package/README.fr.md +241 -0
- package/README.hi.md +265 -0
- package/README.it.md +241 -0
- package/README.ja.md +241 -0
- package/README.md +9 -7
- package/README.pt-BR.md +241 -0
- package/README.zh.md +242 -0
- package/package.json +3 -1
package/README.es.md
ADDED
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.md">English</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center"><img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/mcp-file-forge/readme.png" alt="MCP File Forge" width="400"></p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
Secure file operations and project scaffolding for AI agents.
|
|
9
|
+
<br />
|
|
10
|
+
Part of <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="https://www.npmjs.com/package/@mcptoolshop/file-forge"><img alt="npm version" src="https://img.shields.io/npm/v/@mcptoolshop/file-forge"></a>
|
|
15
|
+
<a href="https://github.com/mcp-tool-shop-org/mcp-file-forge/blob/main/LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-blue"></a>
|
|
16
|
+
<a href="https://mcp-tool-shop-org.github.io/mcp-file-forge/"><img alt="Landing Page" src="https://img.shields.io/badge/Landing_Page-live-blue"></a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## At a Glance
|
|
22
|
+
|
|
23
|
+
MCP File Forge es un servidor de [Protocolo de Contexto de Modelo](https://modelcontextprotocol.io) (MCP) que proporciona a los agentes de IA acceso controlado y seguro al sistema de archivos local. Incluye **17 herramientas** en cinco categorías:
|
|
24
|
+
|
|
25
|
+
| Categoría | Herramientas | Descripción |
|
|
26
|
+
| ---------- | ------- | ------------- |
|
|
27
|
+
| **Reading** | `read_file`, `read_directory`, `read_multiple` | Leer archivos y listados de directorios |
|
|
28
|
+
| **Writing** | `write_file`, `create_directory`, `copy_file`, `move_file`, `delete_file` | Crear, modificar, copiar, mover y eliminar |
|
|
29
|
+
| **Search** | `glob_search`, `grep_search`, `find_by_content` | Encontrar archivos por patrón de nombre o contenido |
|
|
30
|
+
| **Metadata** | `file_stat`, `file_exists`, `get_disk_usage`, `compare_files` | Inspeccionar tamaño, marcas de tiempo, existencia |
|
|
31
|
+
| **Scaffolding** | `scaffold_project`, `list_templates` | Crear proyectos a partir de plantillas con sustitución de variables |
|
|
32
|
+
|
|
33
|
+
Propiedades clave:
|
|
34
|
+
|
|
35
|
+
- **Aislamiento (Sandboxed)**: las operaciones están restringidas a los directorios explícitamente permitidos.
|
|
36
|
+
- **Modo de solo lectura**: activar una variable de entorno para desactivar todas las herramientas de escritura.
|
|
37
|
+
- **Seguro con enlaces simbólicos**: el seguimiento de enlaces simbólicos está desactivado de forma predeterminada para evitar escapes del entorno aislado.
|
|
38
|
+
- **Diseñado para Windows**: optimizado para rutas y convenciones de Windows, pero funciona en cualquier sistema.
|
|
39
|
+
- **Motor de plantillas**: sustitución de variables con `{{var}}` / `${var}` y renombrado a nivel de ruta con `__var__`.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Instalación
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm install -g @mcptoolshop/file-forge
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
O ejecútelo directamente con npx:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npx @mcptoolshop/file-forge
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Configuración de Claude Desktop
|
|
58
|
+
|
|
59
|
+
Agregue lo siguiente a su `claude_desktop_config.json`:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"mcpServers": {
|
|
64
|
+
"file-forge": {
|
|
65
|
+
"command": "npx",
|
|
66
|
+
"args": ["-y", "@mcptoolshop/file-forge"],
|
|
67
|
+
"env": {
|
|
68
|
+
"MCP_FILE_FORGE_ALLOWED_PATHS": "C:/Projects,C:/Users/you/Documents"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Si lo instaló globalmente, puede apuntar directamente al ejecutable:
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
{
|
|
79
|
+
"mcpServers": {
|
|
80
|
+
"file-forge": {
|
|
81
|
+
"command": "mcp-file-forge",
|
|
82
|
+
"env": {
|
|
83
|
+
"MCP_FILE_FORGE_ALLOWED_PATHS": "C:/Projects"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Referencia de herramientas
|
|
93
|
+
|
|
94
|
+
### Lectura
|
|
95
|
+
|
|
96
|
+
| Herramienta | Descripción | Parámetros clave |
|
|
97
|
+
| ------ | ------------- | ---------------- |
|
|
98
|
+
| `read_file` | Leer el contenido de un archivo | `path`, `encoding?`, `start_line?`, `end_line?`, `max_size_kb?` |
|
|
99
|
+
| `read_directory` | Listar las entradas de un directorio | `path`, `recursive?`, `max_depth?`, `include_hidden?`, `pattern?` |
|
|
100
|
+
| `read_multiple` | Leer varios archivos en lote | `paths`, `encoding?`, `fail_on_error?` |
|
|
101
|
+
|
|
102
|
+
### Escritura
|
|
103
|
+
|
|
104
|
+
| Herramienta | Descripción | Parámetros clave |
|
|
105
|
+
| ------ | ------------- | ---------------- |
|
|
106
|
+
| `write_file` | Escribir o sobrescribir un archivo | `path`, `content`, `encoding?`, `create_dirs?`, `overwrite?`, `backup?` |
|
|
107
|
+
| `create_directory` | Crear un directorio | `path`, `recursive?` |
|
|
108
|
+
| `copy_file` | Copiar un archivo o directorio | `source`, `destination`, `overwrite?`, `recursive?` |
|
|
109
|
+
| `move_file` | Mover o renombrar | `source`, `destination`, `overwrite?` |
|
|
110
|
+
| `delete_file` | Eliminar un archivo o directorio | `path`, `recursive?`, `force?` |
|
|
111
|
+
|
|
112
|
+
### Búsqueda
|
|
113
|
+
|
|
114
|
+
| Herramienta | Descripción | Parámetros clave |
|
|
115
|
+
| ------ | ------------- | ---------------- |
|
|
116
|
+
| `glob_search` | Encontrar archivos por patrón glob | `pattern`, `base_path?`, `max_results?`, `include_dirs?` |
|
|
117
|
+
| `grep_search` | Buscar contenido de archivos con expresión regular | `pattern`, `path?`, `glob?`, `case_sensitive?`, `max_results?`, `context_lines?` |
|
|
118
|
+
| `find_by_content` | Búsqueda de texto literal (sin expresión regular) | `text`, `path?`, `file_pattern?`, `max_results?` |
|
|
119
|
+
|
|
120
|
+
### Metadatos
|
|
121
|
+
|
|
122
|
+
| Herramienta | Descripción | Parámetros clave |
|
|
123
|
+
| ------ | ------------- | ---------------- |
|
|
124
|
+
| `file_stat` | Estadísticas de archivos/directorios | `path` |
|
|
125
|
+
| `file_exists` | Comprobar existencia y tipo | `path`, `type?` (`file` / `directory` / `any`) |
|
|
126
|
+
| `get_disk_usage` | Desglose del tamaño del directorio | `path`, `max_depth?` |
|
|
127
|
+
| `compare_files` | Comparar dos rutas | `path1`, `path2` |
|
|
128
|
+
|
|
129
|
+
### Creación de plantillas
|
|
130
|
+
|
|
131
|
+
| Herramienta | Descripción | Parámetros clave |
|
|
132
|
+
| ------ | ------------- | ---------------- |
|
|
133
|
+
| `scaffold_project` | Crear proyecto a partir de una plantilla | `template`, `destination`, `variables?`, `overwrite?` |
|
|
134
|
+
| `list_templates` | Listar plantillas disponibles | `category?` |
|
|
135
|
+
|
|
136
|
+
La documentación completa de los parámetros, ejemplos y códigos de error se encuentran en el [MANUAL.md](MANUAL.md).
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Variables de entorno
|
|
141
|
+
|
|
142
|
+
| Variable | Descripción | Valor predeterminado |
|
|
143
|
+
| ---------- | ------------- | --------- |
|
|
144
|
+
| `MCP_FILE_FORGE_ALLOWED_PATHS` | Lista separada por comas de directorios raíz permitidos | `.` (directorio actual) |
|
|
145
|
+
| `MCP_FILE_FORGE_DENIED_PATHS` | Lista separada por comas de patrones de ruta denegados | `**/node_modules/**`, `**/.git/**` |
|
|
146
|
+
| `MCP_FILE_FORGE_READ_ONLY` | Desactivar todas las operaciones de escritura | `false` |
|
|
147
|
+
| `MCP_FILE_FORGE_MAX_FILE_SIZE` | Tamaño máximo de archivo en bytes | `104857600` (100 MB) |
|
|
148
|
+
| `MCP_FILE_FORGE_MAX_DEPTH` | Profundidad máxima de recursión | `20` |
|
|
149
|
+
| `MCP_FILE_FORGE_FOLLOW_SYMLINKS` | Permitir el seguimiento de enlaces simbólicos fuera del entorno de pruebas. | `false` |
|
|
150
|
+
| `MCP_FILE_FORGE_TEMPLATE_PATHS` | Directorios de plantillas separados por comas. | `./templates` |
|
|
151
|
+
| `MCP_FILE_FORGE_LOG_LEVEL` | Nivel de detalle del registro (`error`, `warn`, `info`, `debug`). | `info` |
|
|
152
|
+
| `MCP_FILE_FORGE_LOG_FILE` | Ruta a un archivo de registro (además de stderr). | _ninguno_ |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Archivo de configuración
|
|
157
|
+
|
|
158
|
+
Cree el archivo `mcp-file-forge.json` (o `.mcp-file-forge.json`) en o por encima de su directorio de trabajo:
|
|
159
|
+
|
|
160
|
+
```json
|
|
161
|
+
{
|
|
162
|
+
"sandbox": {
|
|
163
|
+
"allowed_paths": ["C:/Projects", "C:/Users/you/Documents"],
|
|
164
|
+
"denied_paths": ["**/secrets/**", "**/.env"],
|
|
165
|
+
"follow_symlinks": false,
|
|
166
|
+
"max_file_size": 52428800,
|
|
167
|
+
"max_depth": 20
|
|
168
|
+
},
|
|
169
|
+
"templates": {
|
|
170
|
+
"paths": ["./templates", "~/.mcp-file-forge/templates"]
|
|
171
|
+
},
|
|
172
|
+
"logging": {
|
|
173
|
+
"level": "info",
|
|
174
|
+
"file": "./logs/mcp-file-forge.log"
|
|
175
|
+
},
|
|
176
|
+
"read_only": false
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Prioridad de configuración (la más alta tiene prioridad):
|
|
181
|
+
|
|
182
|
+
1. Variables de entorno
|
|
183
|
+
2. Archivo de configuración
|
|
184
|
+
3. Valores predeterminados integrados
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Seguridad
|
|
189
|
+
|
|
190
|
+
MCP File Forge implementa varias capas de protección para evitar que los agentes de IA accedan a áreas fuera de su espacio de trabajo designado:
|
|
191
|
+
|
|
192
|
+
- **Aislamiento de rutas:** Cada ruta se resuelve a una ruta absoluta y se verifica contra la lista `allowed_paths` antes de que se realice cualquier operación de entrada/salida.
|
|
193
|
+
- **Rutas bloqueadas:** Patrones glob que están bloqueados incluso dentro de los directorios permitidos (por ejemplo, `**/secrets/**`).
|
|
194
|
+
- **Protección de enlaces simbólicos:** Los enlaces simbólicos no se siguen de forma predeterminada; si el destino de un enlace simbólico se encuentra fuera del entorno de pruebas, la operación se deniega.
|
|
195
|
+
- **Detección de recorrido de rutas:** Las secuencias `..` que podrían escapar del entorno de pruebas se rechazan.
|
|
196
|
+
- **Límites de tamaño:** Los archivos que superan el tamaño `max_file_size` se rechazan para evitar el agotamiento de la memoria.
|
|
197
|
+
- **Límites de profundidad:** Las operaciones recursivas se limitan a `max_depth` niveles.
|
|
198
|
+
- **Modo de solo lectura:** Establezca `MCP_FILE_FORGE_READ_ONLY=true` para deshabilitar `write_file`, `create_directory`, `copy_file`, `move_file`, `delete_file` y `scaffold_project`.
|
|
199
|
+
- **Rechazo de bytes nulos:** Las rutas que contienen `\0` se rechazan.
|
|
200
|
+
- **Protección contra rutas largas en Windows:** Las rutas que superan los 32.767 caracteres se rechazan.
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Documentación
|
|
205
|
+
|
|
206
|
+
| Documento | Descripción |
|
|
207
|
+
| ---------- | ------------- |
|
|
208
|
+
| [HANDBOOK.md](HANDBOOK.md) | Análisis profundo: modelo de seguridad, referencia de herramientas, plantillas, arquitectura, preguntas frecuentes. |
|
|
209
|
+
| [CHANGELOG.md](CHANGELOG.md) | Historial de versiones (formato Keep a Changelog) |
|
|
210
|
+
| [docs/PLANNING.md](docs/PLANNING.md) | Notas internas de planificación e investigación. |
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Desarrollo
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Install dependencies
|
|
218
|
+
npm install
|
|
219
|
+
|
|
220
|
+
# Build
|
|
221
|
+
npm run build
|
|
222
|
+
|
|
223
|
+
# Watch mode
|
|
224
|
+
npm run dev
|
|
225
|
+
|
|
226
|
+
# Run tests
|
|
227
|
+
npm test
|
|
228
|
+
|
|
229
|
+
# Lint
|
|
230
|
+
npm run lint
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Licencia
|
|
236
|
+
|
|
237
|
+
[MIT](LICENSE)
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
Creado por <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a
|
package/README.fr.md
ADDED
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.md">English</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center"><img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/mcp-file-forge/readme.png" alt="MCP File Forge" width="400"></p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
Secure file operations and project scaffolding for AI agents.
|
|
9
|
+
<br />
|
|
10
|
+
Part of <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="https://www.npmjs.com/package/@mcptoolshop/file-forge"><img alt="npm version" src="https://img.shields.io/npm/v/@mcptoolshop/file-forge"></a>
|
|
15
|
+
<a href="https://github.com/mcp-tool-shop-org/mcp-file-forge/blob/main/LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-blue"></a>
|
|
16
|
+
<a href="https://mcp-tool-shop-org.github.io/mcp-file-forge/"><img alt="Landing Page" src="https://img.shields.io/badge/Landing_Page-live-blue"></a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## At a Glance
|
|
22
|
+
|
|
23
|
+
MCP File Forge est un serveur [Model Context Protocol](https://modelcontextprotocol.io) (MCP) qui offre aux agents d'IA un accès sécurisé et contrôlé par des politiques au système de fichiers local. Il comprend **17 outils** répartis en cinq catégories :
|
|
24
|
+
|
|
25
|
+
| Catégorie | Outils | Description |
|
|
26
|
+
| ---------- | ------- | ------------- |
|
|
27
|
+
| **Reading** | `read_file`, `read_directory`, `read_multiple` | Lecture de fichiers et listes de répertoires |
|
|
28
|
+
| **Writing** | `write_file`, `create_directory`, `copy_file`, `move_file`, `delete_file` | Création, modification, copie, déplacement et suppression |
|
|
29
|
+
| **Search** | `glob_search`, `grep_search`, `find_by_content` | Recherche de fichiers par nom ou contenu |
|
|
30
|
+
| **Metadata** | `file_stat`, `file_exists`, `get_disk_usage`, `compare_files` | Inspection de la taille, des horodatages et de l'existence |
|
|
31
|
+
| **Scaffolding** | `scaffold_project`, `list_templates` | Création de projets à partir de modèles avec substitution de variables |
|
|
32
|
+
|
|
33
|
+
Propriétés clés :
|
|
34
|
+
|
|
35
|
+
- **Environnement isolé (sandboxed)** : les opérations sont limitées aux répertoires explicitement autorisés.
|
|
36
|
+
- **Mode lecture seule** : activer une variable d'environnement pour désactiver tous les outils d'écriture.
|
|
37
|
+
- **Sécurité des liens symboliques** : le suivi des liens symboliques est désactivé par défaut pour éviter les failles de sécurité.
|
|
38
|
+
- **Conçu pour Windows** : optimisé pour les chemins et conventions de Windows, mais fonctionne partout.
|
|
39
|
+
- **Moteur de modèles** : substitution `{{var}}` / `${var}` ainsi que renommage au niveau du chemin avec `__var__`.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Installation
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm install -g @mcptoolshop/file-forge
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Ou exécutez directement avec npx :
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npx @mcptoolshop/file-forge
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Configuration de Claude Desktop
|
|
58
|
+
|
|
59
|
+
Ajoutez ce qui suit à votre fichier `claude_desktop_config.json` :
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"mcpServers": {
|
|
64
|
+
"file-forge": {
|
|
65
|
+
"command": "npx",
|
|
66
|
+
"args": ["-y", "@mcptoolshop/file-forge"],
|
|
67
|
+
"env": {
|
|
68
|
+
"MCP_FILE_FORGE_ALLOWED_PATHS": "C:/Projects,C:/Users/you/Documents"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Si vous avez installé globalement, vous pouvez pointer directement vers le fichier binaire :
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
{
|
|
79
|
+
"mcpServers": {
|
|
80
|
+
"file-forge": {
|
|
81
|
+
"command": "mcp-file-forge",
|
|
82
|
+
"env": {
|
|
83
|
+
"MCP_FILE_FORGE_ALLOWED_PATHS": "C:/Projects"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Référence des outils
|
|
93
|
+
|
|
94
|
+
### Lecture
|
|
95
|
+
|
|
96
|
+
| Outil | Description | Paramètres clés |
|
|
97
|
+
| ------ | ------------- | ---------------- |
|
|
98
|
+
| `read_file` | Lecture du contenu d'un fichier | `path`, `encoding?`, `start_line?`, `end_line?`, `max_size_kb?` |
|
|
99
|
+
| `read_directory` | Liste des entrées d'un répertoire | `path`, `recursive?`, `max_depth?`, `include_hidden?`, `pattern?` |
|
|
100
|
+
| `read_multiple` | Lecture en lot de plusieurs fichiers | `paths`, `encoding?`, `fail_on_error?` |
|
|
101
|
+
|
|
102
|
+
### Écriture
|
|
103
|
+
|
|
104
|
+
| Outil | Description | Paramètres clés |
|
|
105
|
+
| ------ | ------------- | ---------------- |
|
|
106
|
+
| `write_file` | Écriture ou remplacement d'un fichier | `path`, `content`, `encoding?`, `create_dirs?`, `overwrite?`, `backup?` |
|
|
107
|
+
| `create_directory` | Création d'un répertoire | `path`, `recursive?` |
|
|
108
|
+
| `copy_file` | Copie d'un fichier ou d'un répertoire | `source`, `destination`, `overwrite?`, `recursive?` |
|
|
109
|
+
| `move_file` | Déplacement ou renommage | `source`, `destination`, `overwrite?` |
|
|
110
|
+
| `delete_file` | Suppression d'un fichier ou d'un répertoire | `path`, `recursive?`, `force?` |
|
|
111
|
+
|
|
112
|
+
### Recherche
|
|
113
|
+
|
|
114
|
+
| Outil | Description | Paramètres clés |
|
|
115
|
+
| ------ | ------------- | ---------------- |
|
|
116
|
+
| `glob_search` | Recherche de fichiers par motif glob | `pattern`, `base_path?`, `max_results?`, `include_dirs?` |
|
|
117
|
+
| `grep_search` | Recherche de contenu de fichier avec une expression régulière | `pattern`, `path?`, `glob?`, `case_sensitive?`, `max_results?`, `context_lines?` |
|
|
118
|
+
| `find_by_content` | Recherche de texte littéral (sans expression régulière) | `text`, `path?`, `file_pattern?`, `max_results?` |
|
|
119
|
+
|
|
120
|
+
### Métadonnées
|
|
121
|
+
|
|
122
|
+
| Outil | Description | Paramètres clés |
|
|
123
|
+
| ------ | ------------- | ---------------- |
|
|
124
|
+
| `file_stat` | Statistiques de fichiers/répertoires | `path` |
|
|
125
|
+
| `file_exists` | Vérification de l'existence et du type | `path`, `type?` (`file` / `directory` / `any`) |
|
|
126
|
+
| `get_disk_usage` | Répartition de la taille d'un répertoire | `path`, `max_depth?` |
|
|
127
|
+
| `compare_files` | Comparaison de deux chemins | `path1`, `path2` |
|
|
128
|
+
|
|
129
|
+
### Génération de code
|
|
130
|
+
|
|
131
|
+
| Outil | Description | Paramètres clés |
|
|
132
|
+
| ------ | ------------- | ---------------- |
|
|
133
|
+
| `scaffold_project` | Création d'un projet à partir d'un modèle | `template`, `destination`, `variables?`, `overwrite?` |
|
|
134
|
+
| `list_templates` | Liste des modèles disponibles | `category?` |
|
|
135
|
+
|
|
136
|
+
La documentation complète des paramètres, des exemples et des codes d'erreur se trouve dans le fichier [HANDBOOK.md](HANDBOOK.md).
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Variables d'environnement
|
|
141
|
+
|
|
142
|
+
| Variable | Description | Valeur par défaut |
|
|
143
|
+
| ---------- | ------------- | --------- |
|
|
144
|
+
| `MCP_FILE_FORGE_ALLOWED_PATHS` | Liste séparée par des virgules des répertoires racines autorisés | `.` (répertoire courant) |
|
|
145
|
+
| `MCP_FILE_FORGE_DENIED_PATHS` | Liste séparée par des virgules des motifs de chemins interdits | `**/node_modules/**`, `**/.git/**` |
|
|
146
|
+
| `MCP_FILE_FORGE_READ_ONLY` | Désactive toutes les opérations d'écriture | `false` |
|
|
147
|
+
| `MCP_FILE_FORGE_MAX_FILE_SIZE` | Taille maximale d'un fichier en octets | `104857600` (100 Mo) |
|
|
148
|
+
| `MCP_FILE_FORGE_MAX_DEPTH` | Profondeur de récursion maximale | `20` |
|
|
149
|
+
| `MCP_FILE_FORGE_FOLLOW_SYMLINKS` | Autoriser le suivi des liens symboliques en dehors de l'environnement isolé | `false` |
|
|
150
|
+
| `MCP_FILE_FORGE_TEMPLATE_PATHS` | Répertoires de modèles séparés par des virgules | `./templates` |
|
|
151
|
+
| `MCP_FILE_FORGE_LOG_LEVEL` | Niveau de verbosité des journaux (`error`, `warn`, `info`, `debug`) | `info` |
|
|
152
|
+
| `MCP_FILE_FORGE_LOG_FILE` | Chemin vers un fichier de journalisation (en plus de stderr) | _aucun_ |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Fichier de configuration
|
|
157
|
+
|
|
158
|
+
Créez un fichier `mcp-file-forge.json` (ou `.mcp-file-forge.json`) dans ou au-dessus de votre répertoire de travail :
|
|
159
|
+
|
|
160
|
+
```json
|
|
161
|
+
{
|
|
162
|
+
"sandbox": {
|
|
163
|
+
"allowed_paths": ["C:/Projects", "C:/Users/you/Documents"],
|
|
164
|
+
"denied_paths": ["**/secrets/**", "**/.env"],
|
|
165
|
+
"follow_symlinks": false,
|
|
166
|
+
"max_file_size": 52428800,
|
|
167
|
+
"max_depth": 20
|
|
168
|
+
},
|
|
169
|
+
"templates": {
|
|
170
|
+
"paths": ["./templates", "~/.mcp-file-forge/templates"]
|
|
171
|
+
},
|
|
172
|
+
"logging": {
|
|
173
|
+
"level": "info",
|
|
174
|
+
"file": "./logs/mcp-file-forge.log"
|
|
175
|
+
},
|
|
176
|
+
"read_only": false
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Priorité de configuration (la plus élevée l'emporte) :
|
|
181
|
+
|
|
182
|
+
1. Variables d'environnement
|
|
183
|
+
2. Fichier de configuration
|
|
184
|
+
3. Valeurs par défaut intégrées
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Sécurité
|
|
189
|
+
|
|
190
|
+
MCP File Forge impose plusieurs niveaux de protection pour empêcher les agents d'IA de sortir de leur espace de travail désigné :
|
|
191
|
+
|
|
192
|
+
- **Environnement isolé (sandboxing) des chemins** : chaque chemin est résolu en un chemin absolu et vérifié par rapport à la liste `allowed_paths` avant toute opération d'entrée/sortie.
|
|
193
|
+
- **Chemins interdits** : les motifs glob qui sont bloqués, même dans les répertoires autorisés (par exemple, `**/secrets/**`).
|
|
194
|
+
- **Protection des liens symboliques** : les liens symboliques ne sont pas suivis par défaut ; si la cible d'un lien symbolique se trouve en dehors de l'environnement isolé, l'opération est refusée.
|
|
195
|
+
- **Détection de parcours de chemins** : les séquences `..` qui permettraient de sortir de l'environnement isolé sont rejetées.
|
|
196
|
+
- **Limites de taille** : les fichiers dont la taille dépasse `max_file_size` sont refusés afin d'éviter une consommation excessive de mémoire.
|
|
197
|
+
- **Limites de profondeur** : les opérations récursives sont limitées à `max_depth` niveaux.
|
|
198
|
+
- **Mode lecture seule** : définissez `MCP_FILE_FORGE_READ_ONLY=true` pour désactiver `write_file`, `create_directory`, `copy_file`, `move_file`, `delete_file` et `scaffold_project`.
|
|
199
|
+
- **Rejet des octets nuls** : les chemins contenant `\0` sont refusés.
|
|
200
|
+
- **Protection contre les longs chemins Windows** : les chemins dépassant 32 767 caractères sont refusés.
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Documentation
|
|
205
|
+
|
|
206
|
+
| Document | Description |
|
|
207
|
+
| ---------- | ------------- |
|
|
208
|
+
| [HANDBOOK.md](HANDBOOK.md) | Analyse approfondie : modèle de sécurité, référence des outils, modèles, architecture, FAQ |
|
|
209
|
+
| [CHANGELOG.md](CHANGELOG.md) | Historique des versions (format Keep a Changelog) |
|
|
210
|
+
| [docs/PLANNING.md](docs/PLANNING.md) | Notes de planification et de recherche internes |
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Développement
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Install dependencies
|
|
218
|
+
npm install
|
|
219
|
+
|
|
220
|
+
# Build
|
|
221
|
+
npm run build
|
|
222
|
+
|
|
223
|
+
# Watch mode
|
|
224
|
+
npm run dev
|
|
225
|
+
|
|
226
|
+
# Run tests
|
|
227
|
+
npm test
|
|
228
|
+
|
|
229
|
+
# Lint
|
|
230
|
+
npm run lint
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Licence
|
|
236
|
+
|
|
237
|
+
[MIT](LICENSE)
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
Créé par <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a
|