@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.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"
|
|
2
|
-
|
|
3
|
-
|
|
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://
|
|
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/
|
|
14
|
-
<img alt="
|
|
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
|
-
|
|
241
|
+
Built by <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|
package/README.pt-BR.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.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
|