@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.ja.md ADDED
@@ -0,0 +1,241 @@
1
+ <p align="center">
2
+ <a href="README.md">English</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</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
+ ## 概要
22
+
23
+ MCP File Forgeは、[Model Context Protocol](https://modelcontextprotocol.io) (MCP) サーバーであり、AIエージェントがローカルファイルシステムにアクセスする際に、サンドボックス環境とポリシーによる制御を提供します。 5つのカテゴリに分けて、**17種類のツール**を提供します。
24
+
25
+ | カテゴリ | ツール | 説明 |
26
+ | ---------- | ------- | ------------- |
27
+ | **Reading** | `read_file`, `read_directory`, `read_multiple` | ファイルの読み込みとディレクトリ一覧の表示 |
28
+ | **Writing** | `write_file`, `create_directory`, `copy_file`, `move_file`, `delete_file` | ファイルの作成、編集、コピー、移動、削除 |
29
+ | **Search** | `glob_search`, `grep_search`, `find_by_content` | ファイル名パターンまたは内容によるファイルの検索 |
30
+ | **Metadata** | `file_stat`, `file_exists`, `get_disk_usage`, `compare_files` | ファイルサイズ、タイムスタンプ、存在確認 |
31
+ | **Scaffolding** | `scaffold_project`, `list_templates` | テンプレートを使用してプロジェクトを作成(変数置換可能) |
32
+
33
+ 主な機能:
34
+
35
+ - **サンドボックス化:** 実行は、明示的に許可されたディレクトリに限定されます。
36
+ - **読み取り専用モード:** 環境変数を変更することで、すべての書き込み機能を無効にできます。
37
+ - **シンボリックリンク対応:** デフォルトではシンボリックリンクを追跡しないため、サンドボックスからのエスケープを防ぎます。
38
+ - **Windows優先:** Windowsのパスと規約に合わせて設計されており、他の環境でも動作します。
39
+ - **テンプレートエンジン:** `{{var}}` / `${var}` による変数置換に加え、パスレベルでの `__var__` による名前変更が可能です。
40
+
41
+ ---
42
+
43
+ ## インストール
44
+
45
+ ```bash
46
+ npm install -g @mcptoolshop/file-forge
47
+ ```
48
+
49
+ または、npxで直接実行します。
50
+
51
+ ```bash
52
+ npx @mcptoolshop/file-forge
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Claude Desktopの設定
58
+
59
+ `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
+ グローバルにインストールした場合は、直接実行ファイルを参照できます。
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
+ ## ツールの参照
93
+
94
+ ### 読み込み
95
+
96
+ | ツール | 説明 | 主要なパラメータ |
97
+ | ------ | ------------- | ---------------- |
98
+ | `read_file` | ファイルの内容を読み込む | `path`, `encoding?`, `start_line?`, `end_line?`, `max_size_kb?` |
99
+ | `read_directory` | ディレクトリの内容を一覧表示する | `path`, `recursive?`, `max_depth?`, `include_hidden?`, `pattern?` |
100
+ | `read_multiple` | 複数のファイルをまとめて読み込む | `paths`, `encoding?`, `fail_on_error?` |
101
+
102
+ ### 書き込み
103
+
104
+ | ツール | 説明 | 主要なパラメータ |
105
+ | ------ | ------------- | ---------------- |
106
+ | `write_file` | ファイルへの書き込みまたは上書き | `path`, `content`, `encoding?`, `create_dirs?`, `overwrite?`, `backup?` |
107
+ | `create_directory` | ディレクトリの作成 | `path`, `recursive?` |
108
+ | `copy_file` | ファイルのコピーまたはディレクトリのコピー | `source`, `destination`, `overwrite?`, `recursive?` |
109
+ | `move_file` | ファイルの移動または名前変更 | `source`, `destination`, `overwrite?` |
110
+ | `delete_file` | ファイルの削除またはディレクトリの削除 | `path`, `recursive?`, `force?` |
111
+
112
+ ### 検索
113
+
114
+ | ツール | 説明 | 主要なパラメータ |
115
+ | ------ | ------------- | ---------------- |
116
+ | `glob_search` | globパターンによるファイルの検索 | `pattern`, `base_path?`, `max_results?`, `include_dirs?` |
117
+ | `grep_search` | 正規表現によるファイル内容の検索 | `pattern`, `path?`, `glob?`, `case_sensitive?`, `max_results?`, `context_lines?` |
118
+ | `find_by_content` | 正規表現を使用しないテキスト検索 | `text`, `path?`, `file_pattern?`, `max_results?` |
119
+
120
+ ### メタデータ
121
+
122
+ | ツール | 説明 | 主要なパラメータ |
123
+ | ------ | ------------- | ---------------- |
124
+ | `file_stat` | ファイル/ディレクトリの統計情報 | `path` |
125
+ | `file_exists` | 存在確認と種類の確認 | `path`, `type?` (`file` / `directory` / `any`) |
126
+ | `get_disk_usage` | ディレクトリのサイズ内訳 | `path`, `max_depth?` |
127
+ | `compare_files` | 2つのパスの比較 | `path1`, `path2` |
128
+
129
+ ### テンプレート
130
+
131
+ | ツール | 説明 | 主要なパラメータ |
132
+ | ------ | ------------- | ---------------- |
133
+ | `scaffold_project` | テンプレートからプロジェクトを作成 | `template`, `destination`, `variables?`, `overwrite?` |
134
+ | `list_templates` | 利用可能なテンプレートの一覧表示 | `category?` |
135
+
136
+ 詳細なパラメータ、例、およびエラーコードは、[HANDBOOK.md](HANDBOOK.md) に記載されています。
137
+
138
+ ---
139
+
140
+ ## 環境変数
141
+
142
+ | 変数 | 説明 | デフォルト値 |
143
+ | ---------- | ------------- | --------- |
144
+ | `MCP_FILE_FORGE_ALLOWED_PATHS` | 許可されたルートディレクトリのカンマ区切りリスト | `.` (カレントディレクトリ) |
145
+ | `MCP_FILE_FORGE_DENIED_PATHS` | 禁止されたパスのglobパターン (カンマ区切り) | `**/node_modules/**`, `**/.git/**` |
146
+ | `MCP_FILE_FORGE_READ_ONLY` | すべての書き込み操作を無効にする | `false` |
147
+ | `MCP_FILE_FORGE_MAX_FILE_SIZE` | ファイルの最大サイズ (バイト) | `104857600` (100 MB) |
148
+ | `MCP_FILE_FORGE_MAX_DEPTH` | 最大再帰深度 | `20` |
149
+ | `MCP_FILE_FORGE_FOLLOW_SYMLINKS` | サンドボックス外のシンボリックリンクを追跡する | `false` |
150
+ | `MCP_FILE_FORGE_TEMPLATE_PATHS` | カンマ区切りのテンプレートディレクトリ | `./templates` |
151
+ | `MCP_FILE_FORGE_LOG_LEVEL` | ログの詳細度 (`error`, `warn`, `info`, `debug`) | `info` |
152
+ | `MCP_FILE_FORGE_LOG_FILE` | ログファイルのパス (stderrに加えて) | _なし_ |
153
+
154
+ ---
155
+
156
+ ## 設定ファイル
157
+
158
+ 作業ディレクトリ内またはその上位ディレクトリに `mcp-file-forge.json` (または `.mcp-file-forge.json`) を作成します。
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
+ 設定の優先順位 (最も優先されるものが優先されます):
181
+
182
+ 1. 環境変数
183
+ 2. 設定ファイル
184
+ 3. デフォルト設定
185
+
186
+ ---
187
+
188
+ ## セキュリティ
189
+
190
+ MCP File Forge は、AIエージェントが指定された作業領域から逸脱しないように、いくつかの保護機能を備えています。
191
+
192
+ - **パスサンドボックス化:** すべてのパスが絶対パスに解決され、I/O 操作が行われる前に、`allowed_paths` リストに対してチェックされます。
193
+ - **禁止パス:** 許可されたディレクトリ内でもブロックされるグローブパターン (例: `**/secrets/**`)。
194
+ - **シンボリックリンク保護:** デフォルトではシンボリックリンクは追跡されません。シンボリックリンクのターゲットがサンドボックス外にある場合、操作は拒否されます。
195
+ - **パストラバーサル検出:** サンドボックスから抜け出す `..` シーケンスは拒否されます。
196
+ - **サイズ制限:** `max_file_size` を超えるファイルは、メモリ不足を防ぐために拒否されます。
197
+ - **深さ制限:** 再帰的な操作は `max_depth` レベルで制限されます。
198
+ - **読み取り専用モード:** `MCP_FILE_FORGE_READ_ONLY=true` を設定すると、`write_file`、`create_directory`、`copy_file`、`move_file`、`delete_file`、および `scaffold_project` が無効になります。
199
+ - **ヌルバイトの拒否:** `\0` を含むパスは拒否されます。
200
+ - **Windows の長いパスガード:** 32,767 文字を超えるパスは拒否されます。
201
+
202
+ ---
203
+
204
+ ## ドキュメント
205
+
206
+ | ドキュメント | 説明 |
207
+ | ---------- | ------------- |
208
+ | [HANDBOOK.md](HANDBOOK.md) | 詳細: セキュリティモデル、ツールリファレンス、テンプレート、アーキテクチャ、FAQ |
209
+ | [CHANGELOG.md](CHANGELOG.md) | リリース履歴 (Keep a Changelog 形式) |
210
+ | [docs/PLANNING.md](docs/PLANNING.md) | 内部計画および調査ノート |
211
+
212
+ ---
213
+
214
+ ## 開発
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
+ ## ライセンス
236
+
237
+ [MIT](LICENSE)
238
+
239
+ ---
240
+
241
+ <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a> によって作成されました。
package/README.md CHANGED
@@ -1,17 +1,19 @@
1
- <p align="center"><img src="logo.png" alt="MCP File Forge" width="200"></p>
2
-
3
- <h1 align="center">MCP File Forge</h1>
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.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>
4
6
 
5
7
  <p align="center">
6
8
  Secure file operations and project scaffolding for AI agents.
7
9
  <br />
8
- Part of <a href="https://mcptoolshop.com">MCP Tool Shop</a>
10
+ Part of <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
9
11
  </p>
10
12
 
11
13
  <p align="center">
12
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>
13
- <a href="https://github.com/mcp-tool-shop-org/mcp-file-forge/blob/main/LICENSE"><img alt="license" src="https://img.shields.io/npm/l/@mcptoolshop/file-forge"></a>
14
- <img alt="node" src="https://img.shields.io/badge/node-%3E%3D18-brightgreen">
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>
15
17
  </p>
16
18
 
17
19
  ---
@@ -236,4 +238,4 @@ npm run lint
236
238
 
237
239
  ---
238
240
 
239
- **Author:** [mcp-tool-shop](https://github.com/mcp-tool-shop)
241
+ Built by <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
@@ -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.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.md">English</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
+ ## Através de uma visão geral
22
+
23
+ MCP File Forge é um servidor [Model Context Protocol](https://modelcontextprotocol.io) (MCP) que oferece a agentes de IA acesso controlado por políticas ao sistema de arquivos local, em um ambiente isolado. Ele oferece **17 ferramentas** em cinco categorias:
24
+
25
+ | Categoria | Ferramentas | Descrição |
26
+ | ---------- | ------- | ------------- |
27
+ | **Reading** | `read_file`, `read_directory`, `read_multiple` | Leitura de arquivos e listagem de diretórios |
28
+ | **Writing** | `write_file`, `create_directory`, `copy_file`, `move_file`, `delete_file` | Criação, modificação, cópia, movimentação e exclusão |
29
+ | **Search** | `glob_search`, `grep_search`, `find_by_content` | Localização de arquivos por padrão de nome ou conteúdo |
30
+ | **Metadata** | `file_stat`, `file_exists`, `get_disk_usage`, `compare_files` | Inspeção de tamanho, carimbos de data/hora e existência |
31
+ | **Scaffolding** | `scaffold_project`, `list_templates` | Criação de projetos a partir de modelos com substituição de variáveis |
32
+
33
+ Propriedades principais:
34
+
35
+ - **Ambiente isolado (sandboxed)**: as operações são restritas a diretórios explicitamente permitidos.
36
+ - **Modo somente leitura**: basta alterar uma variável de ambiente para desativar todas as ferramentas de escrita.
37
+ - **Compatível com links simbólicos**: o acompanhamento de links simbólicos está desativado por padrão para evitar escapes do ambiente isolado.
38
+ - **Prioridade para Windows**: projetado para caminhos e convenções do Windows, mas funciona em todos os sistemas.
39
+ - **Motor de templates**: substituição de variáveis usando `{{var}}` / `${var}`, além de renomeação em nível de caminho com `__var__`.
40
+
41
+ ---
42
+
43
+ ## Instalação
44
+
45
+ ```bash
46
+ npm install -g @mcptoolshop/file-forge
47
+ ```
48
+
49
+ Ou execute diretamente com npx:
50
+
51
+ ```bash
52
+ npx @mcptoolshop/file-forge
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Configuração do Claude Desktop
58
+
59
+ Adicione o seguinte ao seu arquivo `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
+ Se você instalou globalmente, pode apontar diretamente para o executável:
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
+ ## Referência das Ferramentas
93
+
94
+ ### Leitura
95
+
96
+ | Ferramenta | Descrição | Parâmetros Principais |
97
+ | ------ | ------------- | ---------------- |
98
+ | `read_file` | Leitura do conteúdo de um arquivo | `path`, `encoding?`, `start_line?`, `end_line?`, `max_size_kb?` |
99
+ | `read_directory` | Listagem de entradas de um diretório | `path`, `recursive?`, `max_depth?`, `include_hidden?`, `pattern?` |
100
+ | `read_multiple` | Leitura em lote de vários arquivos | `paths`, `encoding?`, `fail_on_error?` |
101
+
102
+ ### Escrita
103
+
104
+ | Ferramenta | Descrição | Parâmetros Principais |
105
+ | ------ | ------------- | ---------------- |
106
+ | `write_file` | Escrita ou sobrescrita de um arquivo | `path`, `content`, `encoding?`, `create_dirs?`, `overwrite?`, `backup?` |
107
+ | `create_directory` | Criação de um diretório | `path`, `recursive?` |
108
+ | `copy_file` | Cópia de um arquivo ou diretório | `source`, `destination`, `overwrite?`, `recursive?` |
109
+ | `move_file` | Movimentação ou renomeação | `source`, `destination`, `overwrite?` |
110
+ | `delete_file` | Exclusão de um arquivo ou diretório | `path`, `recursive?`, `force?` |
111
+
112
+ ### Pesquisa
113
+
114
+ | Ferramenta | Descrição | Parâmetros Principais |
115
+ | ------ | ------------- | ---------------- |
116
+ | `glob_search` | Localização de arquivos por padrão glob | `pattern`, `base_path?`, `max_results?`, `include_dirs?` |
117
+ | `grep_search` | Pesquisa de conteúdo de arquivos com expressão regular | `pattern`, `path?`, `glob?`, `case_sensitive?`, `max_results?`, `context_lines?` |
118
+ | `find_by_content` | Pesquisa de texto literal (sem expressão regular) | `text`, `path?`, `file_pattern?`, `max_results?` |
119
+
120
+ ### Metadados
121
+
122
+ | Ferramenta | Descrição | Parâmetros Principais |
123
+ | ------ | ------------- | ---------------- |
124
+ | `file_stat` | Estatísticas de arquivo/diretório | `path` |
125
+ | `file_exists` | Verificação de existência e tipo | `path`, `type?` (`file` / `directory` / `any`) |
126
+ | `get_disk_usage` | Distribuição do tamanho de um diretório | `path`, `max_depth?` |
127
+ | `compare_files` | Comparação de dois caminhos | `path1`, `path2` |
128
+
129
+ ### Geração de Código (Scaffolding)
130
+
131
+ | Ferramenta | Descrição | Parâmetros Principais |
132
+ | ------ | ------------- | ---------------- |
133
+ | `scaffold_project` | Criação de projeto a partir de um modelo | `template`, `destination`, `variables?`, `overwrite?` |
134
+ | `list_templates` | Listagem de modelos disponíveis | `category?` |
135
+
136
+ A documentação completa dos parâmetros, exemplos e códigos de erro estão no arquivo [HANDBOOK.md](HANDBOOK.md).
137
+
138
+ ---
139
+
140
+ ## Variáveis de Ambiente
141
+
142
+ | Variável | Descrição | Valor Padrão |
143
+ | ---------- | ------------- | --------- |
144
+ | `MCP_FILE_FORGE_ALLOWED_PATHS` | Lista separada por vírgulas de diretórios raiz permitidos | `.` (diretório atual) |
145
+ | `MCP_FILE_FORGE_DENIED_PATHS` | Lista separada por vírgulas de padrões de caminho negados | `**/node_modules/**`, `**/.git/**` |
146
+ | `MCP_FILE_FORGE_READ_ONLY` | Desativa todas as operações de escrita | `false` |
147
+ | `MCP_FILE_FORGE_MAX_FILE_SIZE` | Tamanho máximo do arquivo em bytes | `104857600` (100 MB) |
148
+ | `MCP_FILE_FORGE_MAX_DEPTH` | Profundidade máxima de recursão | `20` |
149
+ | `MCP_FILE_FORGE_FOLLOW_SYMLINKS` | Permitir o acompanhamento de links simbólicos fora do ambiente isolado | `false` |
150
+ | `MCP_FILE_FORGE_TEMPLATE_PATHS` | Diretórios de modelos separados por vírgula | `./templates` |
151
+ | `MCP_FILE_FORGE_LOG_LEVEL` | Nível de detalhe do log (`error`, `warn`, `info`, `debug`) | `info` |
152
+ | `MCP_FILE_FORGE_LOG_FILE` | Caminho para um arquivo de log (além do stderr) | _nenhum_ |
153
+
154
+ ---
155
+
156
+ ## Arquivo de Configuração
157
+
158
+ Crie um arquivo `mcp-file-forge.json` (ou `.mcp-file-forge.json`) no diretório de trabalho ou em um diretório acima dele:
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
+ Prioridade da configuração (a configuração com maior prioridade é utilizada):
181
+
182
+ 1. Variáveis de ambiente
183
+ 2. Arquivo de configuração
184
+ 3. Valores padrão internos
185
+
186
+ ---
187
+
188
+ ## Segurança
189
+
190
+ O MCP File Forge implementa várias camadas de proteção para impedir que agentes de IA acessem áreas fora do espaço de trabalho designado:
191
+
192
+ - **Isolamento de caminhos:** todos os caminhos são resolvidos para um caminho absoluto e verificados em relação à lista `allowed_paths` antes de qualquer operação de entrada/saída.
193
+ - **Caminhos bloqueados:** padrões glob que são bloqueados, mesmo dentro dos diretórios permitidos (por exemplo, `**/secrets/**`).
194
+ - **Proteção de links simbólicos:** links simbólicos não são seguidos por padrão; se o destino de um link simbólico estiver fora do ambiente isolado, a operação é negada.
195
+ - **Detecção de travessia de caminhos:** sequências `..` que escapariam do ambiente isolado são rejeitadas.
196
+ - **Limites de tamanho:** arquivos maiores que `max_file_size` são rejeitados para evitar o esgotamento da memória.
197
+ - **Limites de profundidade:** operações recursivas são limitadas a `max_depth` níveis.
198
+ - **Modo somente leitura:** defina `MCP_FILE_FORGE_READ_ONLY=true` para desativar `write_file`, `create_directory`, `copy_file`, `move_file`, `delete_file` e `scaffold_project`.
199
+ - **Rejeição de bytes nulos:** caminhos que contenham `\0` são rejeitados.
200
+ - **Proteção contra caminhos longos no Windows:** caminhos com mais de 32.767 caracteres são rejeitados.
201
+
202
+ ---
203
+
204
+ ## Documentação
205
+
206
+ | Documento | Descrição |
207
+ | ---------- | ------------- |
208
+ | [HANDBOOK.md](HANDBOOK.md) | Análise aprofundada: modelo de segurança, referência de ferramentas, modelos, arquitetura, perguntas frequentes |
209
+ | [CHANGELOG.md](CHANGELOG.md) | Histórico de lançamentos (formato Keep a Changelog) |
210
+ | [docs/PLANNING.md](docs/PLANNING.md) | Notas internas de planejamento e pesquisa |
211
+
212
+ ---
213
+
214
+ ## Desenvolvimento
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
+ ## Licença
236
+
237
+ [MIT](LICENSE)
238
+
239
+ ---
240
+
241
+ Criado por <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a