@mcptoolshop/file-forge 0.2.0 → 1.0.0

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.
Files changed (73) hide show
  1. package/README.es.md +241 -0
  2. package/README.fr.md +241 -0
  3. package/README.hi.md +265 -0
  4. package/README.it.md +241 -0
  5. package/README.ja.md +241 -0
  6. package/README.md +36 -6
  7. package/README.pt-BR.md +241 -0
  8. package/README.zh.md +242 -0
  9. package/build/config/index.d.ts +29 -0
  10. package/build/config/index.d.ts.map +1 -0
  11. package/build/config/index.js +229 -0
  12. package/build/config/index.js.map +1 -0
  13. package/build/index.d.ts +9 -0
  14. package/build/index.d.ts.map +1 -0
  15. package/build/index.js +25 -0
  16. package/build/index.js.map +1 -0
  17. package/build/security/index.d.ts +8 -0
  18. package/build/security/index.d.ts.map +1 -0
  19. package/build/security/index.js +8 -0
  20. package/build/security/index.js.map +1 -0
  21. package/build/security/read-only.d.ts +32 -0
  22. package/build/security/read-only.d.ts.map +1 -0
  23. package/build/security/read-only.js +62 -0
  24. package/build/security/read-only.js.map +1 -0
  25. package/build/security/sandbox.d.ts +60 -0
  26. package/build/security/sandbox.d.ts.map +1 -0
  27. package/build/security/sandbox.js +231 -0
  28. package/build/security/sandbox.js.map +1 -0
  29. package/build/server.d.ts +32 -0
  30. package/build/server.d.ts.map +1 -0
  31. package/build/server.js +171 -0
  32. package/build/server.js.map +1 -0
  33. package/build/tools/metadata.d.ts +11 -0
  34. package/build/tools/metadata.d.ts.map +1 -0
  35. package/build/tools/metadata.js +423 -0
  36. package/build/tools/metadata.js.map +1 -0
  37. package/build/tools/read.d.ts +11 -0
  38. package/build/tools/read.d.ts.map +1 -0
  39. package/build/tools/read.js +335 -0
  40. package/build/tools/read.js.map +1 -0
  41. package/build/tools/scaffold.d.ts +11 -0
  42. package/build/tools/scaffold.d.ts.map +1 -0
  43. package/build/tools/scaffold.js +345 -0
  44. package/build/tools/scaffold.js.map +1 -0
  45. package/build/tools/search.d.ts +11 -0
  46. package/build/tools/search.d.ts.map +1 -0
  47. package/build/tools/search.js +250 -0
  48. package/build/tools/search.js.map +1 -0
  49. package/build/tools/write.d.ts +11 -0
  50. package/build/tools/write.d.ts.map +1 -0
  51. package/build/tools/write.js +538 -0
  52. package/build/tools/write.js.map +1 -0
  53. package/build/types.d.ts +402 -0
  54. package/build/types.d.ts.map +1 -0
  55. package/build/types.js +146 -0
  56. package/build/types.js.map +1 -0
  57. package/build/utils/errors.d.ts +43 -0
  58. package/build/utils/errors.d.ts.map +1 -0
  59. package/build/utils/errors.js +125 -0
  60. package/build/utils/errors.js.map +1 -0
  61. package/build/utils/index.d.ts +10 -0
  62. package/build/utils/index.d.ts.map +1 -0
  63. package/build/utils/index.js +9 -0
  64. package/build/utils/index.js.map +1 -0
  65. package/build/utils/logger.d.ts +88 -0
  66. package/build/utils/logger.d.ts.map +1 -0
  67. package/build/utils/logger.js +166 -0
  68. package/build/utils/logger.js.map +1 -0
  69. package/build/utils/validation.d.ts +43 -0
  70. package/build/utils/validation.d.ts.map +1 -0
  71. package/build/utils/validation.js +196 -0
  72. package/build/utils/validation.js.map +1 -0
  73. package/package.json +3 -1
package/README.hi.md ADDED
@@ -0,0 +1,265 @@
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.md">English</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 फाइल फोर्ज एक [मॉडल कॉन्टेक्स्ट प्रोटोकॉल](https://modelcontextprotocol.io) (MCP) सर्वर है जो एआई एजेंटों को स्थानीय फाइल सिस्टम तक सुरक्षित और नियंत्रित पहुंच प्रदान करता है। इसमें पांच श्रेणियों में **17 उपकरण** शामिल हैं:
24
+
25
+ | श्रेणी। | उपकरण। | विवरण। |
26
+ | ज़रूर, मैं आपकी मदद कर सकता हूँ। कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। | "The company is committed to providing high-quality products and services."
27
+
28
+ अनुवाद:
29
+
30
+ "कंपनी उच्च गुणवत्ता वाले उत्पाद और सेवाएं प्रदान करने के लिए प्रतिबद्ध है।" | कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। मैं उसका सटीक और उचित अनुवाद करने के लिए तैयार हूं। |
31
+ | **Reading** | `read_file`, `read_directory`, `read_multiple` | फ़ाइलों और फ़ोल्डरों की सूची पढ़ें। |
32
+ | **Writing** | `write_file`, `create_directory`, `copy_file`, `move_file`, `delete_file` | बनाएं, संशोधित करें, कॉपी करें, स्थानांतरित करें और हटाएं। |
33
+ | **Search** | `glob_search`, `grep_search`, `find_by_content` | नाम के पैटर्न या सामग्री के आधार पर फ़ाइलें खोजें। |
34
+ | **Metadata** | `file_stat`, `file_exists`, `get_disk_usage`, `compare_files` | आकार, समय-मुहर (टाइमस्टैम्प), और अस्तित्व की जांच करें। |
35
+ | **Scaffolding** | `scaffold_project`, `list_templates` | टेम्प्लेट का उपयोग करके ऐसे प्रोजेक्ट बनाएं जिनमें चर (variables) को बदला जा सके। |
36
+
37
+ मुख्य विशेषताएं:
38
+
39
+ - **सुरक्षित वातावरण (सैंडबॉक्स):** संचालन केवल उन डाइरेक्टरी तक सीमित हैं जिन्हें स्पष्ट रूप से अनुमति दी गई है।
40
+ - **केवल-पढ़ने की मोड:** सभी लिखने वाले उपकरणों को निष्क्रिय करने के लिए एक पर्यावरण चर को बदलें।
41
+ - **सिंबोलिंक-सुरक्षित:** सिंबोलिंक को डिफ़ॉल्ट रूप से अक्षम किया गया है ताकि सैंडबॉक्स से बाहर निकलने से रोका जा सके।
42
+ - **विंडोज-प्राथमिकता:** विंडोज के पथों और मानकों के लिए डिज़ाइन किया गया, लेकिन यह हर जगह काम करता है।
43
+ - **टेम्प्लेट इंजन:** `{{var}}` / `${var}` के माध्यम से मानों को प्रतिस्थापित करने की सुविधा, साथ ही पथ स्तर पर `__var__` का उपयोग करके नाम बदलने की सुविधा।
44
+
45
+ ---
46
+
47
+ ## स्थापना।
48
+
49
+ ```bash
50
+ npm install -g @mcptoolshop/file-forge
51
+ ```
52
+
53
+ या फिर आप इसे सीधे `npx` के माध्यम से चला सकते हैं:
54
+
55
+ ```bash
56
+ npx @mcptoolshop/file-forge
57
+ ```
58
+
59
+ ---
60
+
61
+ ## क्लाउड डेस्कटॉप का कॉन्फ़िगरेशन।
62
+
63
+ अपने `claude_desktop_config.json` फ़ाइल में निम्नलिखित चीज़ें जोड़ें:
64
+
65
+ ```json
66
+ {
67
+ "mcpServers": {
68
+ "file-forge": {
69
+ "command": "npx",
70
+ "args": ["-y", "@mcptoolshop/file-forge"],
71
+ "env": {
72
+ "MCP_FILE_FORGE_ALLOWED_PATHS": "C:/Projects,C:/Users/you/Documents"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ ```
78
+
79
+ यदि आपने इसे वैश्विक स्तर पर स्थापित किया है, तो आप सीधे उस बाइनरी फ़ाइल की ओर इंगित कर सकते हैं:
80
+
81
+ ```json
82
+ {
83
+ "mcpServers": {
84
+ "file-forge": {
85
+ "command": "mcp-file-forge",
86
+ "env": {
87
+ "MCP_FILE_FORGE_ALLOWED_PATHS": "C:/Projects"
88
+ }
89
+ }
90
+ }
91
+ }
92
+ ```
93
+
94
+ ---
95
+
96
+ ## उपकरण संदर्भ।
97
+
98
+ ### पढ़ना।
99
+
100
+ | उपकरण। | विवरण। | मुख्य मापदंड। |
101
+ | "The company is committed to providing high-quality products and services."
102
+
103
+ अनुवाद:
104
+
105
+ "कंपनी उच्च गुणवत्ता वाले उत्पाद और सेवाएं प्रदान करने के लिए प्रतिबद्ध है।" | कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। मैं उसका सटीक और उचित अनुवाद करने के लिए तैयार हूं। | ज़रूर, मैं आपकी मदद कर सकता हूँ। कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। |
106
+ | `read_file` | फ़ाइल की सामग्री पढ़ें। | `path`, `encoding?`, `start_line?`, `end_line?`, `max_size_kb?` |
107
+ | `read_directory` | निर्देशिका प्रविष्टियों की सूची प्रदर्शित करें। | `path`, `recursive?`, `max_depth?`, `include_hidden?`, `pattern?` |
108
+ | `read_multiple` | एक साथ कई फ़ाइलों को पढ़ें। | `paths`, `encoding?`, `fail_on_error?` |
109
+
110
+ ### लेखन।
111
+
112
+ | उपकरण। | विवरण। | मुख्य पैरामीटर। |
113
+ | "The company is committed to providing high-quality products and services."
114
+
115
+ अनुवाद:
116
+
117
+ "कंपनी उच्च गुणवत्ता वाले उत्पाद और सेवाएं प्रदान करने के लिए प्रतिबद्ध है।" | कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। | ज़रूर, मैं आपकी मदद कर सकता हूँ। कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। |
118
+ | `write_file` | एक फ़ाइल को लिखें या उसमें मौजूद सामग्री को बदलें। | `path`, `content`, `encoding?`, `create_dirs?`, `overwrite?`, `backup?` |
119
+ | `create_directory` | एक फ़ोल्डर बनाएँ। | `path`, `recursive?` |
120
+ | `copy_file` | एक फ़ाइल या फ़ोल्डर की प्रतिलिपि बनाएँ। | `source`, `destination`, `overwrite?`, `recursive?` |
121
+ | `move_file` | स्थानांतरित करें या नाम बदलें। | `source`, `destination`, `overwrite?` |
122
+ | `delete_file` | एक फ़ाइल या फ़ोल्डर को हटाएं। | `path`, `recursive?`, `force?` |
123
+
124
+ ### खोजें।
125
+
126
+ | उपकरण। | विवरण। | मुख्य पैरामीटर। |
127
+ | "The company is committed to providing high-quality products and services."
128
+
129
+ अनुवाद:
130
+
131
+ "कंपनी उच्च गुणवत्ता वाले उत्पाद और सेवाएं प्रदान करने के लिए प्रतिबद्ध है।" | कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। मैं उसका सटीक और उचित अनुवाद करने के लिए तैयार हूं। | ज़रूर, मैं आपकी मदद कर सकता हूँ। कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। |
132
+ | `glob_search` | ग्लोब पैटर्न का उपयोग करके फ़ाइलें खोजें। | `pattern`, `base_path?`, `max_results?`, `include_dirs?` |
133
+ | `grep_search` | रेगुलर एक्सप्रेशन का उपयोग करके फ़ाइल की सामग्री खोजें। | `pattern`, `path?`, `glob?`, `case_sensitive?`, `max_results?`, `context_lines?` |
134
+ | `find_by_content` | शाब्दिक पाठ खोज (कोई रेगुलर एक्सप्रेशन नहीं)। | `text`, `path?`, `file_pattern?`, `max_results?` |
135
+
136
+ ### मेटाडेटा।
137
+
138
+ | उपकरण। | विवरण। | मुख्य पैरामीटर। |
139
+ | "The company is committed to providing high-quality products and services."
140
+
141
+ अनुवाद:
142
+
143
+ "कंपनी उच्च गुणवत्ता वाले उत्पाद और सेवाएं प्रदान करने के लिए प्रतिबद्ध है।" | कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। | ज़रूर, मैं आपकी मदद कर सकता हूँ। कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। |
144
+ | `file_stat` | फ़ाइल/फ़ोल्डर के आंकड़े। | `path` |
145
+ | `file_exists` | जांचें कि क्या वह मौजूद है और उसका प्रकार क्या है। | `पथ`, `प्रकार?` (`फ़ाइल` / `डायरेक्टरी` / `कोई भी`) |
146
+ | `get_disk_usage` | फ़ोल्डर के आकार का विवरण। | `path`, `max_depth?` |
147
+ | `compare_files` | दो रास्तों की तुलना करें। | `path1`, `path2` |
148
+
149
+ ### ढांचा।
150
+
151
+ | उपकरण। | विवरण। | मुख्य पैरामीटर। |
152
+ | "The company is committed to providing high-quality products and services."
153
+
154
+ अनुवाद:
155
+
156
+ "कंपनी उच्च गुणवत्ता वाले उत्पाद और सेवाएं प्रदान करने के लिए प्रतिबद्ध है।" | कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। मैं उसका सटीक और उचित अनुवाद करने के लिए तैयार हूं। | ज़रूर, मैं आपकी मदद कर सकता हूँ। कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। |
157
+ | `scaffold_project` | टेम्प्लेट से प्रोजेक्ट बनाएं। | `template`, `destination`, `variables?`, `overwrite?` |
158
+ | `list_templates` | उपलब्ध टेम्प्लेट की सूची दिखाएं। | `category?` |
159
+
160
+ पूर्ण पैरामीटर विवरण, उदाहरण और त्रुटि कोड [HANDBOOK.md](HANDBOOK.md) फ़ाइल में उपलब्ध हैं।
161
+
162
+ ---
163
+
164
+ ## पर्यावरण चर (या पर्यावरण संबंधी चर)।
165
+
166
+ | चर। | विवरण। | डिफ़ॉल्ट। |
167
+ | ज़रूर, मैं आपकी मदद कर सकता हूँ। कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। | कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। मैं उसका सटीक और उचित अनुवाद करने के लिए तैयार हूं। | ज़रूर, मैं आपकी मदद कर सकता हूँ। कृपया वह अंग्रेजी पाठ प्रदान करें जिसका आप हिंदी में अनुवाद करवाना चाहते हैं। |
168
+ | `MCP_FILE_FORGE_ALLOWED_PATHS` | अनुमत रूट डायरेक्टरी की अल्पविराम से अलग की गई सूची। | `.` (वर्तमान कार्यशील निर्देशिका) |
169
+ | `MCP_FILE_FORGE_DENIED_PATHS` | कॉमा से अलग किए गए, अस्वीकृत रास्तों के लिए सामान्य पैटर्न। | `**/node_modules/**`, `**/.git/**` |
170
+ | `MCP_FILE_FORGE_READ_ONLY` | सभी लिखने की क्रियाओं को बंद करें। | `false` |
171
+ | `MCP_FILE_FORGE_MAX_FILE_SIZE` | बाइट्स में अधिकतम फ़ाइल आकार। | `104857600` (100 एमबी) |
172
+ | `MCP_FILE_FORGE_MAX_DEPTH` | अधिकतम पुनरावर्ती गहराई | `20` |
173
+ | `MCP_FILE_FORGE_FOLLOW_SYMLINKS` | सैंडबॉक्स के बाहर सिंबोलिक लिंक का उपयोग करने की अनुमति दें | `false` |
174
+ | `MCP_FILE_FORGE_TEMPLATE_PATHS` | कॉमा से अलग किए गए टेम्पलेट निर्देशिकाएँ | `./templates` |
175
+ | `MCP_FILE_FORGE_LOG_LEVEL` | लॉग की विस्तृतता (`error`, `warn`, `info`, `debug`) | `info` |
176
+ | `MCP_FILE_FORGE_LOG_FILE` | लॉग फ़ाइल का पथ (stderr के अतिरिक्त) | _कोई नहीं_ |
177
+
178
+ ---
179
+
180
+ ## कॉन्फ़िगरेशन फ़ाइल
181
+
182
+ अपने कार्यशील निर्देशिका में या उसके ऊपर `mcp-file-forge.json` (या `.mcp-file-forge.json`) फ़ाइल बनाएँ:
183
+
184
+ ```json
185
+ {
186
+ "sandbox": {
187
+ "allowed_paths": ["C:/Projects", "C:/Users/you/Documents"],
188
+ "denied_paths": ["**/secrets/**", "**/.env"],
189
+ "follow_symlinks": false,
190
+ "max_file_size": 52428800,
191
+ "max_depth": 20
192
+ },
193
+ "templates": {
194
+ "paths": ["./templates", "~/.mcp-file-forge/templates"]
195
+ },
196
+ "logging": {
197
+ "level": "info",
198
+ "file": "./logs/mcp-file-forge.log"
199
+ },
200
+ "read_only": false
201
+ }
202
+ ```
203
+
204
+ कॉन्फ़िगरेशन प्राथमिकता (सबसे उच्च प्राथमिकता वाली):
205
+
206
+ 1. पर्यावरण चर
207
+ 2. कॉन्फ़िगरेशन फ़ाइल
208
+ 3. अंतर्निहित डिफ़ॉल्ट
209
+
210
+ ---
211
+
212
+ ## सुरक्षा
213
+
214
+ MCP फ़ाइल फ़ॉर्ज कई सुरक्षा स्तर लागू करता है ताकि एआई एजेंट अपने निर्दिष्ट कार्यक्षेत्र से बाहर न जा सकें:
215
+
216
+ - **पाथ सैंडबॉक्सिंग:** प्रत्येक पथ को एक पूर्ण पथ में हल किया जाता है और किसी भी इनपुट/आउटपुट ऑपरेशन से पहले `allowed_paths` सूची के विरुद्ध जांचा जाता है।
217
+ - **अवरुद्ध पथ:** ग्लोब पैटर्न जो अनुमत निर्देशिकाओं के भीतर भी अवरुद्ध होते हैं (उदाहरण के लिए, `**/secrets/**`)।
218
+ - **सिंबोलिक लिंक सुरक्षा:** डिफ़ॉल्ट रूप से सिंबोलिक लिंक का पालन नहीं किया जाता है; यदि किसी सिंबोलिक लिंक का लक्ष्य सैंडबॉक्स के बाहर है, तो ऑपरेशन अस्वीकार कर दिया जाता है।
219
+ - **पाथ ट्रैवर्सल डिटेक्शन:** `..` अनुक्रम जो सैंडबॉक्स से बाहर निकलने का प्रयास करते हैं, उन्हें अस्वीकार कर दिया जाता है।
220
+ - **आकार सीमाएँ:** `max_file_size` से बड़ी फ़ाइलों को अस्वीकार कर दिया जाता है ताकि मेमोरी समाप्त न हो।
221
+ - **गहराई सीमाएँ:** पुनरावर्ती कार्यों को `max_depth` स्तरों तक सीमित किया जाता है।
222
+ - **केवल-पढ़ने का मोड:** `write_file`, `create_directory`, `copy_file`, `move_file`, `delete_file`, और `scaffold_project` को अक्षम करने के लिए `MCP_FILE_FORGE_READ_ONLY=true` सेट करें।
223
+ - **नल-बाइट अस्वीकृति:** `\0` युक्त पथों को अस्वीकार कर दिया जाता है।
224
+ - **विंडोज लंबी-पथ सुरक्षा:** 32,767 अक्षरों से अधिक लंबे पथों को अस्वीकार कर दिया जाता है।
225
+
226
+ ---
227
+
228
+ ## दस्तावेज़
229
+
230
+ | दस्तावेज़ | विवरण |
231
+ | ---------- | ------------- |
232
+ | [HANDBOOK.md](HANDBOOK.md) | गहन जानकारी: सुरक्षा मॉडल, टूल संदर्भ, टेम्पलेट, आर्किटेक्चर, अक्सर पूछे जाने वाले प्रश्न |
233
+ | [CHANGELOG.md](CHANGELOG.md) | रिलीज़ इतिहास (चेंजलॉग प्रारूप में) |
234
+ | [docs/PLANNING.md](docs/PLANNING.md) | आंतरिक योजना और अनुसंधान नोट्स |
235
+
236
+ ---
237
+
238
+ ## विकास
239
+
240
+ ```bash
241
+ # Install dependencies
242
+ npm install
243
+
244
+ # Build
245
+ npm run build
246
+
247
+ # Watch mode
248
+ npm run dev
249
+
250
+ # Run tests
251
+ npm test
252
+
253
+ # Lint
254
+ npm run lint
255
+ ```
256
+
257
+ ---
258
+
259
+ ## लाइसेंस
260
+
261
+ [MIT](LICENSE)
262
+
263
+ ---
264
+
265
+ <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a> द्वारा निर्मित।
package/README.it.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.md">English</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 è un server [Model Context Protocol](https://modelcontextprotocol.io) (MCP) che fornisce agli agenti AI un accesso controllato e sicuro al file system locale. Include **17 strumenti** suddivisi in cinque categorie:
24
+
25
+ | Categoria | Strumenti | Descrizione |
26
+ | ---------- | ------- | ------------- |
27
+ | **Reading** | `read_file`, `read_directory`, `read_multiple` | Lettura di file e elenchi di directory |
28
+ | **Writing** | `write_file`, `create_directory`, `copy_file`, `move_file`, `delete_file` | Creazione, modifica, copia, spostamento ed eliminazione |
29
+ | **Search** | `glob_search`, `grep_search`, `find_by_content` | Ricerca di file per nome o contenuto |
30
+ | **Metadata** | `file_stat`, `file_exists`, `get_disk_usage`, `compare_files` | Visualizzazione di dimensioni, timestamp e esistenza |
31
+ | **Scaffolding** | `scaffold_project`, `list_templates` | Creazione di progetti da modelli con sostituzione di variabili |
32
+
33
+ Proprietà principali:
34
+
35
+ - **Ambiente isolato (sandboxed)**: le operazioni sono limitate alle directory esplicitamente consentite.
36
+ - **Modalità sola lettura**: impostare una variabile d'ambiente per disabilitare tutti gli strumenti di scrittura.
37
+ - **Sicuro con i link simbolici**: il tracciamento dei link simbolici è disabilitato per impostazione predefinita per evitare uscite dall'ambiente isolato.
38
+ - **Progettato per Windows**: ottimizzato per i percorsi e le convenzioni di Windows, ma funziona ovunque.
39
+ - **Motore di template**: sostituzione di variabili con `{{var}}` / `${var}` e rinomina a livello di percorso con `__var__`.
40
+
41
+ ---
42
+
43
+ ## Installazione
44
+
45
+ ```bash
46
+ npm install -g @mcptoolshop/file-forge
47
+ ```
48
+
49
+ Oppure eseguirlo direttamente con npx:
50
+
51
+ ```bash
52
+ npx @mcptoolshop/file-forge
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Configurazione di Claude Desktop
58
+
59
+ Aggiungere quanto segue al file `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 l'hai installato globalmente, puoi puntare direttamente all'eseguibile:
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
+ ## Riferimento agli strumenti
93
+
94
+ ### Lettura
95
+
96
+ | Strumento | Descrizione | Parametri principali |
97
+ | ------ | ------------- | ---------------- |
98
+ | `read_file` | Lettura del contenuto di un file | `path`, `encoding?`, `start_line?`, `end_line?`, `max_size_kb?` |
99
+ | `read_directory` | Elenco delle voci di una directory | `path`, `recursive?`, `max_depth?`, `include_hidden?`, `pattern?` |
100
+ | `read_multiple` | Lettura batch di più file | `paths`, `encoding?`, `fail_on_error?` |
101
+
102
+ ### Scrittura
103
+
104
+ | Strumento | Descrizione | Parametri principali |
105
+ | ------ | ------------- | ---------------- |
106
+ | `write_file` | Scrittura o sovrascrittura di un file | `path`, `content`, `encoding?`, `create_dirs?`, `overwrite?`, `backup?` |
107
+ | `create_directory` | Creazione di una directory | `path`, `recursive?` |
108
+ | `copy_file` | Copia di un file o di una directory | `source`, `destination`, `overwrite?`, `recursive?` |
109
+ | `move_file` | Spostamento o ridenominazione | `source`, `destination`, `overwrite?` |
110
+ | `delete_file` | Eliminazione di un file o di una directory | `path`, `recursive?`, `force?` |
111
+
112
+ ### Ricerca
113
+
114
+ | Strumento | Descrizione | Parametri principali |
115
+ | ------ | ------------- | ---------------- |
116
+ | `glob_search` | Ricerca di file tramite pattern glob | `pattern`, `base_path?`, `max_results?`, `include_dirs?` |
117
+ | `grep_search` | Ricerca del contenuto di un file con espressioni regolari | `pattern`, `path?`, `glob?`, `case_sensitive?`, `max_results?`, `context_lines?` |
118
+ | `find_by_content` | Ricerca di testo letterale (senza espressioni regolari) | `text`, `path?`, `file_pattern?`, `max_results?` |
119
+
120
+ ### Metadati
121
+
122
+ | Strumento | Descrizione | Parametri principali |
123
+ | ------ | ------------- | ---------------- |
124
+ | `file_stat` | Statistiche di file/directory | `path` |
125
+ | `file_exists` | Controllo dell'esistenza e del tipo | `path`, `type?` (`file` / `directory` / `any`) |
126
+ | `get_disk_usage` | Suddivisione delle dimensioni di una directory | `path`, `max_depth?` |
127
+ | `compare_files` | Confronto di due percorsi | `path1`, `path2` |
128
+
129
+ ### Creazione di modelli
130
+
131
+ | Strumento | Descrizione | Parametri principali |
132
+ | ------ | ------------- | ---------------- |
133
+ | `scaffold_project` | Creazione di un progetto da un modello | `template`, `destination`, `variables?`, `overwrite?` |
134
+ | `list_templates` | Elenco dei modelli disponibili | `category?` |
135
+
136
+ La documentazione completa dei parametri, degli esempi e dei codici di errore si trova nel file [HANDBOOK.md](HANDBOOK.md).
137
+
138
+ ---
139
+
140
+ ## Variabili d'ambiente
141
+
142
+ | Variabile | Descrizione | Valore predefinito |
143
+ | ---------- | ------------- | --------- |
144
+ | `MCP_FILE_FORGE_ALLOWED_PATHS` | Elenco separato da virgole delle directory radice consentite | `.` (directory corrente) |
145
+ | `MCP_FILE_FORGE_DENIED_PATHS` | Elenco separato da virgole dei pattern di percorso negati | `**/node_modules/**`, `**/.git/**` |
146
+ | `MCP_FILE_FORGE_READ_ONLY` | Disabilita tutte le operazioni di scrittura | `false` |
147
+ | `MCP_FILE_FORGE_MAX_FILE_SIZE` | Dimensione massima del file in byte | `104857600` (100 MB) |
148
+ | `MCP_FILE_FORGE_MAX_DEPTH` | Profondità massima di ricorsione | `20` |
149
+ | `MCP_FILE_FORGE_FOLLOW_SYMLINKS` | Permetti di seguire i link simbolici al di fuori dell'ambiente isolato | `false` |
150
+ | `MCP_FILE_FORGE_TEMPLATE_PATHS` | Directory dei modelli, separate da virgola | `./templates` |
151
+ | `MCP_FILE_FORGE_LOG_LEVEL` | Livello di dettaglio dei log (`error`, `warn`, `info`, `debug`) | `info` |
152
+ | `MCP_FILE_FORGE_LOG_FILE` | Percorso di un file di log (oltre a stderr) | _nessuno_ |
153
+
154
+ ---
155
+
156
+ ## File di configurazione
157
+
158
+ Crea il file `mcp-file-forge.json` (o `.mcp-file-forge.json`) nella directory di lavoro o in una directory superiore:
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à della configurazione (la più alta ha la precedenza):
181
+
182
+ 1. Variabili d'ambiente
183
+ 2. File di configurazione
184
+ 3. Impostazioni predefinite
185
+
186
+ ---
187
+
188
+ ## Sicurezza
189
+
190
+ MCP File Forge implementa diversi livelli di protezione per impedire agli agenti AI di accedere a risorse al di fuori dell'area di lavoro designata:
191
+
192
+ - **Sandboxing dei percorsi:** ogni percorso viene risolto in un percorso assoluto e controllato rispetto all'elenco `allowed_paths` prima che avvenga qualsiasi operazione di I/O.
193
+ - **Percorsi non consentiti:** modelli glob che vengono bloccati anche all'interno delle directory consentite (ad esempio, `**/secrets/**`).
194
+ - **Protezione dei link simbolici:** i link simbolici non vengono seguiti per impostazione predefinita; se un link simbolico punta a una risorsa al di fuori dell'ambiente isolato, l'operazione viene negata.
195
+ - **Rilevamento di attraversamento di percorsi:** le sequenze `..` che potrebbero consentire di uscire dall'ambiente isolato vengono rifiutate.
196
+ - **Limiti di dimensione:** i file più grandi di `max_file_size` vengono rifiutati per evitare l'esaurimento della memoria.
197
+ - **Limiti di profondità:** le operazioni ricorsive sono limitate a `max_depth` livelli.
198
+ - **Modalità sola lettura:** imposta `MCP_FILE_FORGE_READ_ONLY=true` per disabilitare `write_file`, `create_directory`, `copy_file`, `move_file`, `delete_file` e `scaffold_project`.
199
+ - **Rifiuto di byte null:** i percorsi contenenti `\0` vengono rifiutati.
200
+ - **Protezione per percorsi lunghi su Windows:** i percorsi che superano i 32.767 caratteri vengono rifiutati.
201
+
202
+ ---
203
+
204
+ ## Documentazione
205
+
206
+ | Documento | Descrizione |
207
+ | ---------- | ------------- |
208
+ | [HANDBOOK.md](HANDBOOK.md) | Approfondimento: modello di sicurezza, riferimento degli strumenti, modelli, architettura, FAQ |
209
+ | [CHANGELOG.md](CHANGELOG.md) | Cronologia delle versioni (in formato Keep a Changelog) |
210
+ | [docs/PLANNING.md](docs/PLANNING.md) | Note interne di pianificazione e ricerca |
211
+
212
+ ---
213
+
214
+ ## Sviluppo
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
+ ## Licenza
236
+
237
+ [MIT](LICENSE)
238
+
239
+ ---
240
+
241
+ Creato da <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a