ncloud-mcp-server 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 (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +159 -0
  3. package/README_EN.md +159 -0
  4. package/dist/auth/signature.d.ts +16 -0
  5. package/dist/auth/signature.js +18 -0
  6. package/dist/auth/signature.js.map +1 -0
  7. package/dist/auth/signature.test.d.ts +1 -0
  8. package/dist/auth/signature.test.js +90 -0
  9. package/dist/auth/signature.test.js.map +1 -0
  10. package/dist/client/ncloud-client.d.ts +27 -0
  11. package/dist/client/ncloud-client.js +270 -0
  12. package/dist/client/ncloud-client.js.map +1 -0
  13. package/dist/client/ncloud-client.test.d.ts +1 -0
  14. package/dist/client/ncloud-client.test.js +477 -0
  15. package/dist/client/ncloud-client.test.js.map +1 -0
  16. package/dist/client/s3-compatible-client.d.ts +49 -0
  17. package/dist/client/s3-compatible-client.js +210 -0
  18. package/dist/client/s3-compatible-client.js.map +1 -0
  19. package/dist/client/swift-compatible-client.d.ts +68 -0
  20. package/dist/client/swift-compatible-client.js +173 -0
  21. package/dist/client/swift-compatible-client.js.map +1 -0
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.js +362 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/tools/acg.d.ts +3 -0
  26. package/dist/tools/acg.js +220 -0
  27. package/dist/tools/acg.js.map +1 -0
  28. package/dist/tools/activity-tracer.d.ts +3 -0
  29. package/dist/tools/activity-tracer.js +77 -0
  30. package/dist/tools/activity-tracer.js.map +1 -0
  31. package/dist/tools/analytics-cdss.d.ts +3 -0
  32. package/dist/tools/analytics-cdss.js +618 -0
  33. package/dist/tools/analytics-cdss.js.map +1 -0
  34. package/dist/tools/analytics-datacatalog.d.ts +10 -0
  35. package/dist/tools/analytics-datacatalog.js +409 -0
  36. package/dist/tools/analytics-datacatalog.js.map +1 -0
  37. package/dist/tools/analytics-dataflow.d.ts +16 -0
  38. package/dist/tools/analytics-dataflow.js +478 -0
  39. package/dist/tools/analytics-dataflow.js.map +1 -0
  40. package/dist/tools/analytics-dataforest.d.ts +10 -0
  41. package/dist/tools/analytics-dataforest.js +379 -0
  42. package/dist/tools/analytics-dataforest.js.map +1 -0
  43. package/dist/tools/analytics-dataquery.d.ts +16 -0
  44. package/dist/tools/analytics-dataquery.js +143 -0
  45. package/dist/tools/analytics-dataquery.js.map +1 -0
  46. package/dist/tools/analytics-datastream.d.ts +13 -0
  47. package/dist/tools/analytics-datastream.js +359 -0
  48. package/dist/tools/analytics-datastream.js.map +1 -0
  49. package/dist/tools/analytics-hadoop.d.ts +12 -0
  50. package/dist/tools/analytics-hadoop.js +450 -0
  51. package/dist/tools/analytics-hadoop.js.map +1 -0
  52. package/dist/tools/analytics-ses.d.ts +3 -0
  53. package/dist/tools/analytics-ses.js +653 -0
  54. package/dist/tools/analytics-ses.js.map +1 -0
  55. package/dist/tools/api-gateway.d.ts +3 -0
  56. package/dist/tools/api-gateway.js +202 -0
  57. package/dist/tools/api-gateway.js.map +1 -0
  58. package/dist/tools/autoscaling.d.ts +3 -0
  59. package/dist/tools/autoscaling.js +430 -0
  60. package/dist/tools/autoscaling.js.map +1 -0
  61. package/dist/tools/billing.d.ts +14 -0
  62. package/dist/tools/billing.js +545 -0
  63. package/dist/tools/billing.js.map +1 -0
  64. package/dist/tools/certificate-manager.d.ts +18 -0
  65. package/dist/tools/certificate-manager.js +84 -0
  66. package/dist/tools/certificate-manager.js.map +1 -0
  67. package/dist/tools/cloud-advisor.d.ts +3 -0
  68. package/dist/tools/cloud-advisor.js +202 -0
  69. package/dist/tools/cloud-advisor.js.map +1 -0
  70. package/dist/tools/cloud-functions.d.ts +3 -0
  71. package/dist/tools/cloud-functions.js +497 -0
  72. package/dist/tools/cloud-functions.js.map +1 -0
  73. package/dist/tools/cloud-insight-integration.d.ts +3 -0
  74. package/dist/tools/cloud-insight-integration.js +90 -0
  75. package/dist/tools/cloud-insight-integration.js.map +1 -0
  76. package/dist/tools/cloud-insight-plugin.d.ts +3 -0
  77. package/dist/tools/cloud-insight-plugin.js +600 -0
  78. package/dist/tools/cloud-insight-plugin.js.map +1 -0
  79. package/dist/tools/cloud-insight-rule.d.ts +3 -0
  80. package/dist/tools/cloud-insight-rule.js +570 -0
  81. package/dist/tools/cloud-insight-rule.js.map +1 -0
  82. package/dist/tools/cloud-insight.d.ts +3 -0
  83. package/dist/tools/cloud-insight.js +246 -0
  84. package/dist/tools/cloud-insight.js.map +1 -0
  85. package/dist/tools/common.d.ts +3 -0
  86. package/dist/tools/common.js +120 -0
  87. package/dist/tools/common.js.map +1 -0
  88. package/dist/tools/compute-initscript.d.ts +3 -0
  89. package/dist/tools/compute-initscript.js +62 -0
  90. package/dist/tools/compute-initscript.js.map +1 -0
  91. package/dist/tools/compute-loginkey.d.ts +3 -0
  92. package/dist/tools/compute-loginkey.js +59 -0
  93. package/dist/tools/compute-loginkey.js.map +1 -0
  94. package/dist/tools/compute-placement.d.ts +3 -0
  95. package/dist/tools/compute-placement.js +196 -0
  96. package/dist/tools/compute-placement.js.map +1 -0
  97. package/dist/tools/compute-publicip.d.ts +3 -0
  98. package/dist/tools/compute-publicip.js +97 -0
  99. package/dist/tools/compute-publicip.js.map +1 -0
  100. package/dist/tools/compute-server.d.ts +3 -0
  101. package/dist/tools/compute-server.js +445 -0
  102. package/dist/tools/compute-server.js.map +1 -0
  103. package/dist/tools/compute-server.test.d.ts +1 -0
  104. package/dist/tools/compute-server.test.js +224 -0
  105. package/dist/tools/compute-server.test.js.map +1 -0
  106. package/dist/tools/compute-storage.d.ts +3 -0
  107. package/dist/tools/compute-storage.js +240 -0
  108. package/dist/tools/compute-storage.js.map +1 -0
  109. package/dist/tools/containers-nks.d.ts +13 -0
  110. package/dist/tools/containers-nks.js +576 -0
  111. package/dist/tools/containers-nks.js.map +1 -0
  112. package/dist/tools/containers-registry.d.ts +3 -0
  113. package/dist/tools/containers-registry.js +181 -0
  114. package/dist/tools/containers-registry.js.map +1 -0
  115. package/dist/tools/database-cache.d.ts +3 -0
  116. package/dist/tools/database-cache.js +388 -0
  117. package/dist/tools/database-cache.js.map +1 -0
  118. package/dist/tools/database-mongodb.d.ts +3 -0
  119. package/dist/tools/database-mongodb.js +460 -0
  120. package/dist/tools/database-mongodb.js.map +1 -0
  121. package/dist/tools/database-mssql.d.ts +3 -0
  122. package/dist/tools/database-mssql.js +345 -0
  123. package/dist/tools/database-mssql.js.map +1 -0
  124. package/dist/tools/database-mysql.d.ts +3 -0
  125. package/dist/tools/database-mysql.js +500 -0
  126. package/dist/tools/database-mysql.js.map +1 -0
  127. package/dist/tools/database-postgresql.d.ts +3 -0
  128. package/dist/tools/database-postgresql.js +432 -0
  129. package/dist/tools/database-postgresql.js.map +1 -0
  130. package/dist/tools/global-dns.d.ts +3 -0
  131. package/dist/tools/global-dns.js +207 -0
  132. package/dist/tools/global-dns.js.map +1 -0
  133. package/dist/tools/global-edge.d.ts +3 -0
  134. package/dist/tools/global-edge.js +386 -0
  135. package/dist/tools/global-edge.js.map +1 -0
  136. package/dist/tools/global-traffic-manager.d.ts +3 -0
  137. package/dist/tools/global-traffic-manager.js +497 -0
  138. package/dist/tools/global-traffic-manager.js.map +1 -0
  139. package/dist/tools/index.d.ts +63 -0
  140. package/dist/tools/index.js +64 -0
  141. package/dist/tools/index.js.map +1 -0
  142. package/dist/tools/kms.d.ts +8 -0
  143. package/dist/tools/kms.js +529 -0
  144. package/dist/tools/kms.js.map +1 -0
  145. package/dist/tools/loadbalancer.d.ts +3 -0
  146. package/dist/tools/loadbalancer.js +341 -0
  147. package/dist/tools/loadbalancer.js.map +1 -0
  148. package/dist/tools/log-analytics.d.ts +3 -0
  149. package/dist/tools/log-analytics.js +183 -0
  150. package/dist/tools/log-analytics.js.map +1 -0
  151. package/dist/tools/media-imageoptimizer.d.ts +3 -0
  152. package/dist/tools/media-imageoptimizer.js +187 -0
  153. package/dist/tools/media-imageoptimizer.js.map +1 -0
  154. package/dist/tools/media-livestation.d.ts +3 -0
  155. package/dist/tools/media-livestation.js +252 -0
  156. package/dist/tools/media-livestation.js.map +1 -0
  157. package/dist/tools/media-vodstation.d.ts +3 -0
  158. package/dist/tools/media-vodstation.js +197 -0
  159. package/dist/tools/media-vodstation.js.map +1 -0
  160. package/dist/tools/nat-gateway.d.ts +3 -0
  161. package/dist/tools/nat-gateway.js +91 -0
  162. package/dist/tools/nat-gateway.js.map +1 -0
  163. package/dist/tools/network-acl.d.ts +3 -0
  164. package/dist/tools/network-acl.js +322 -0
  165. package/dist/tools/network-acl.js.map +1 -0
  166. package/dist/tools/network-interface.d.ts +3 -0
  167. package/dist/tools/network-interface.js +193 -0
  168. package/dist/tools/network-interface.js.map +1 -0
  169. package/dist/tools/private-ca.d.ts +8 -0
  170. package/dist/tools/private-ca.js +368 -0
  171. package/dist/tools/private-ca.js.map +1 -0
  172. package/dist/tools/resource-manager.d.ts +3 -0
  173. package/dist/tools/resource-manager.js +151 -0
  174. package/dist/tools/resource-manager.js.map +1 -0
  175. package/dist/tools/route-table.d.ts +3 -0
  176. package/dist/tools/route-table.js +205 -0
  177. package/dist/tools/route-table.js.map +1 -0
  178. package/dist/tools/security-monitoring.d.ts +3 -0
  179. package/dist/tools/security-monitoring.js +182 -0
  180. package/dist/tools/security-monitoring.js.map +1 -0
  181. package/dist/tools/sens.d.ts +3 -0
  182. package/dist/tools/sens.js +240 -0
  183. package/dist/tools/sens.js.map +1 -0
  184. package/dist/tools/sourcebuild.d.ts +3 -0
  185. package/dist/tools/sourcebuild.js +481 -0
  186. package/dist/tools/sourcebuild.js.map +1 -0
  187. package/dist/tools/sourcecommit.d.ts +13 -0
  188. package/dist/tools/sourcecommit.js +228 -0
  189. package/dist/tools/sourcecommit.js.map +1 -0
  190. package/dist/tools/sourcedeploy.d.ts +3 -0
  191. package/dist/tools/sourcedeploy.js +448 -0
  192. package/dist/tools/sourcedeploy.js.map +1 -0
  193. package/dist/tools/sourcepipeline.d.ts +12 -0
  194. package/dist/tools/sourcepipeline.js +357 -0
  195. package/dist/tools/sourcepipeline.js.map +1 -0
  196. package/dist/tools/storage-archive.d.ts +3 -0
  197. package/dist/tools/storage-archive.js +337 -0
  198. package/dist/tools/storage-archive.js.map +1 -0
  199. package/dist/tools/storage-nas.d.ts +3 -0
  200. package/dist/tools/storage-nas.js +288 -0
  201. package/dist/tools/storage-nas.js.map +1 -0
  202. package/dist/tools/storage-ncloud.d.ts +3 -0
  203. package/dist/tools/storage-ncloud.js +864 -0
  204. package/dist/tools/storage-ncloud.js.map +1 -0
  205. package/dist/tools/storage-object.d.ts +3 -0
  206. package/dist/tools/storage-object.js +982 -0
  207. package/dist/tools/storage-object.js.map +1 -0
  208. package/dist/tools/sub-account.d.ts +3 -0
  209. package/dist/tools/sub-account.js +311 -0
  210. package/dist/tools/sub-account.js.map +1 -0
  211. package/dist/tools/target-group.d.ts +3 -0
  212. package/dist/tools/target-group.js +207 -0
  213. package/dist/tools/target-group.js.map +1 -0
  214. package/dist/tools/vpc-peering.d.ts +3 -0
  215. package/dist/tools/vpc-peering.js +109 -0
  216. package/dist/tools/vpc-peering.js.map +1 -0
  217. package/dist/tools/vpc.d.ts +3 -0
  218. package/dist/tools/vpc.js +194 -0
  219. package/dist/tools/vpc.js.map +1 -0
  220. package/package.json +53 -0
@@ -0,0 +1,337 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Parse JSON array response from Swift (when format=json is specified).
4
+ */
5
+ function parseJsonResponse(body) {
6
+ try {
7
+ return JSON.parse(body);
8
+ }
9
+ catch {
10
+ return body;
11
+ }
12
+ }
13
+ /**
14
+ * Extract metadata from response headers.
15
+ * Swift returns metadata as X-Container-Meta-* or X-Object-Meta-* headers.
16
+ */
17
+ function extractMetadata(headers, prefix) {
18
+ const metadata = {};
19
+ headers.forEach((value, key) => {
20
+ const lower = key.toLowerCase();
21
+ if (lower.startsWith(prefix)) {
22
+ const metaKey = key.substring(prefix.length);
23
+ metadata[metaKey] = value;
24
+ }
25
+ });
26
+ return metadata;
27
+ }
28
+ export function registerStorageArchiveTools(server, client) {
29
+ // ─── Container Query Tools ─────────────────────────────────────────────────
30
+ server.tool("ncloud_list_archive_containers", "List all containers in the Archive Storage account", {
31
+ limit: z.number().optional().describe("Maximum number of containers to return"),
32
+ marker: z.string().optional().describe("Container name to start listing after (for pagination)"),
33
+ prefix: z.string().optional().describe("Filter containers by name prefix"),
34
+ }, async (params) => {
35
+ try {
36
+ const queryParams = { format: "json" };
37
+ if (params.limit)
38
+ queryParams["limit"] = String(params.limit);
39
+ if (params.marker)
40
+ queryParams["marker"] = params.marker;
41
+ if (params.prefix)
42
+ queryParams["prefix"] = params.prefix;
43
+ const response = await client.request({
44
+ method: "GET",
45
+ queryParams,
46
+ });
47
+ const result = parseJsonResponse(response.body);
48
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
49
+ }
50
+ catch (error) {
51
+ return { content: [{ type: "text", text: error.message }], isError: true };
52
+ }
53
+ });
54
+ // ─── Container Create Tools ────────────────────────────────────────────────
55
+ server.tool("ncloud_create_archive_container", "Create a new container in Archive Storage. Use dryRun=true to preview.", {
56
+ containerName: z.string({
57
+ required_error: "필수 파라미터 'containerName'이 누락되었습니다.",
58
+ }).describe("Name of the container to create"),
59
+ dryRun: z.boolean().optional().default(false).describe("If true, returns a preview without actually creating"),
60
+ }, async (params) => {
61
+ try {
62
+ if (params.dryRun) {
63
+ const preview = {
64
+ label: "🔍 Dry-Run Preview: Archive Container Creation",
65
+ containerName: params.containerName,
66
+ region: client.getRegionCode(),
67
+ message: "이 요청은 실제 컨테이너를 생성하지 않습니다. dryRun=false로 호출하면 생성됩니다.",
68
+ };
69
+ return { content: [{ type: "text", text: JSON.stringify(preview, null, 2) }] };
70
+ }
71
+ await client.request({
72
+ method: "PUT",
73
+ container: params.containerName,
74
+ });
75
+ const summary = {
76
+ 리소스타입: "Archive Container",
77
+ 리소스명: params.containerName,
78
+ 리전: client.getRegionCode(),
79
+ 상태: "created",
80
+ };
81
+ return { content: [{ type: "text", text: JSON.stringify(summary, null, 2) }] };
82
+ }
83
+ catch (error) {
84
+ return { content: [{ type: "text", text: error.message }], isError: true };
85
+ }
86
+ });
87
+ // ─── Container Destructive Tools ───────────────────────────────────────────
88
+ server.tool("ncloud_delete_archive_container", "⚠️ Destructive: Permanently delete an empty container from Archive Storage. The container must be empty. Set confirm=true to execute.", {
89
+ containerName: z.string({
90
+ required_error: "필수 파라미터 'containerName'이 누락되었습니다.",
91
+ }).describe("Name of the container to delete"),
92
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
93
+ }, async (params) => {
94
+ try {
95
+ if (!params.confirm) {
96
+ const message = `⚠️ This will permanently delete Archive Container [${params.containerName}]. The container must be empty. Do you want to proceed? (yes/no)\n\nTo execute, call this tool again with confirm=true.`;
97
+ return { content: [{ type: "text", text: message }] };
98
+ }
99
+ await client.request({
100
+ method: "DELETE",
101
+ container: params.containerName,
102
+ });
103
+ const result = { message: `✅ Archive 컨테이너 '${params.containerName}'이(가) 삭제되었습니다.` };
104
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
105
+ }
106
+ catch (error) {
107
+ return { content: [{ type: "text", text: error.message }], isError: true };
108
+ }
109
+ });
110
+ // ─── Container Metadata Tools ──────────────────────────────────────────────
111
+ server.tool("ncloud_head_archive_container", "Get metadata for an Archive Storage container (object count, bytes used, custom metadata)", {
112
+ containerName: z.string({
113
+ required_error: "필수 파라미터 'containerName'이 누락되었습니다.",
114
+ }).describe("Name of the container"),
115
+ }, async (params) => {
116
+ try {
117
+ const response = await client.request({
118
+ method: "HEAD",
119
+ container: params.containerName,
120
+ });
121
+ const metadata = extractMetadata(response.headers, "x-container-meta-");
122
+ const result = {
123
+ container: params.containerName,
124
+ objectCount: response.headers.get("x-container-object-count") ?? "0",
125
+ bytesUsed: response.headers.get("x-container-bytes-used") ?? "0",
126
+ metadata,
127
+ };
128
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
129
+ }
130
+ catch (error) {
131
+ return { content: [{ type: "text", text: error.message }], isError: true };
132
+ }
133
+ });
134
+ // ─── Object Query Tools ────────────────────────────────────────────────────
135
+ server.tool("ncloud_list_archive_objects", "List objects in an Archive Storage container", {
136
+ containerName: z.string({
137
+ required_error: "필수 파라미터 'containerName'이 누락되었습니다.",
138
+ }).describe("Name of the container"),
139
+ limit: z.number().optional().describe("Maximum number of objects to return"),
140
+ marker: z.string().optional().describe("Object name to start listing after (for pagination)"),
141
+ prefix: z.string().optional().describe("Filter objects by name prefix"),
142
+ delimiter: z.string().optional().describe("Delimiter for pseudo-directory grouping (commonly '/')"),
143
+ }, async (params) => {
144
+ try {
145
+ const queryParams = { format: "json" };
146
+ if (params.limit)
147
+ queryParams["limit"] = String(params.limit);
148
+ if (params.marker)
149
+ queryParams["marker"] = params.marker;
150
+ if (params.prefix)
151
+ queryParams["prefix"] = params.prefix;
152
+ if (params.delimiter)
153
+ queryParams["delimiter"] = params.delimiter;
154
+ const response = await client.request({
155
+ method: "GET",
156
+ container: params.containerName,
157
+ queryParams,
158
+ });
159
+ const result = parseJsonResponse(response.body);
160
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
161
+ }
162
+ catch (error) {
163
+ return { content: [{ type: "text", text: error.message }], isError: true };
164
+ }
165
+ });
166
+ server.tool("ncloud_download_archive_object", "Download (GET) an object from an Archive Storage container. Returns the object content as text.", {
167
+ containerName: z.string({
168
+ required_error: "필수 파라미터 'containerName'이 누락되었습니다.",
169
+ }).describe("Name of the container"),
170
+ objectName: z.string({
171
+ required_error: "필수 파라미터 'objectName'이 누락되었습니다.",
172
+ }).describe("Object name (path) to download"),
173
+ }, async (params) => {
174
+ try {
175
+ const response = await client.request({
176
+ method: "GET",
177
+ container: params.containerName,
178
+ object: params.objectName,
179
+ });
180
+ const result = {
181
+ container: params.containerName,
182
+ object: params.objectName,
183
+ contentLength: response.headers.get("content-length"),
184
+ contentType: response.headers.get("content-type"),
185
+ lastModified: response.headers.get("last-modified"),
186
+ etag: response.headers.get("etag"),
187
+ body: response.body,
188
+ };
189
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
190
+ }
191
+ catch (error) {
192
+ return { content: [{ type: "text", text: error.message }], isError: true };
193
+ }
194
+ });
195
+ // ─── Object Metadata Tools ─────────────────────────────────────────────────
196
+ server.tool("ncloud_head_archive_object", "Get metadata for an object in Archive Storage (size, content-type, custom metadata)", {
197
+ containerName: z.string({
198
+ required_error: "필수 파라미터 'containerName'이 누락되었습니다.",
199
+ }).describe("Name of the container"),
200
+ objectName: z.string({
201
+ required_error: "필수 파라미터 'objectName'이 누락되었습니다.",
202
+ }).describe("Object name (path) to inspect"),
203
+ }, async (params) => {
204
+ try {
205
+ const response = await client.request({
206
+ method: "HEAD",
207
+ container: params.containerName,
208
+ object: params.objectName,
209
+ });
210
+ const metadata = extractMetadata(response.headers, "x-object-meta-");
211
+ const result = {
212
+ container: params.containerName,
213
+ object: params.objectName,
214
+ contentLength: response.headers.get("content-length"),
215
+ contentType: response.headers.get("content-type"),
216
+ lastModified: response.headers.get("last-modified"),
217
+ etag: response.headers.get("etag"),
218
+ metadata,
219
+ };
220
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
221
+ }
222
+ catch (error) {
223
+ return { content: [{ type: "text", text: error.message }], isError: true };
224
+ }
225
+ });
226
+ // ─── Object Create/Update Tools ────────────────────────────────────────────
227
+ server.tool("ncloud_upload_archive_object", "Upload (PUT) an object to an Archive Storage container. Use dryRun=true to preview.", {
228
+ containerName: z.string({
229
+ required_error: "필수 파라미터 'containerName'이 누락되었습니다.",
230
+ }).describe("Name of the container"),
231
+ objectName: z.string({
232
+ required_error: "필수 파라미터 'objectName'이 누락되었습니다.",
233
+ }).describe("Object name (path) to upload to"),
234
+ body: z.string({
235
+ required_error: "필수 파라미터 'body'가 누락되었습니다.",
236
+ }).describe("Content to upload as the object body"),
237
+ contentType: z.string().optional().describe("Content-Type for the object (e.g., 'text/plain', 'application/json')"),
238
+ dryRun: z.boolean().optional().default(false).describe("If true, returns a preview without actually uploading"),
239
+ }, async (params) => {
240
+ try {
241
+ if (params.dryRun) {
242
+ const preview = {
243
+ label: "🔍 Dry-Run Preview: Archive Object Upload",
244
+ containerName: params.containerName,
245
+ objectName: params.objectName,
246
+ contentType: params.contentType ?? "application/octet-stream",
247
+ bodySize: `${params.body.length} bytes`,
248
+ message: "이 요청은 실제 오브젝트를 업로드하지 않습니다. dryRun=false로 호출하면 업로드됩니다.",
249
+ };
250
+ return { content: [{ type: "text", text: JSON.stringify(preview, null, 2) }] };
251
+ }
252
+ const headers = {};
253
+ if (params.contentType) {
254
+ headers["Content-Type"] = params.contentType;
255
+ }
256
+ const response = await client.request({
257
+ method: "PUT",
258
+ container: params.containerName,
259
+ object: params.objectName,
260
+ headers,
261
+ body: params.body,
262
+ });
263
+ const summary = {
264
+ 리소스타입: "Archive Object",
265
+ 컨테이너: params.containerName,
266
+ 오브젝트: params.objectName,
267
+ 크기: `${params.body.length} bytes`,
268
+ etag: response.headers.get("etag") ?? "",
269
+ 상태: "uploaded",
270
+ };
271
+ return { content: [{ type: "text", text: JSON.stringify(summary, null, 2) }] };
272
+ }
273
+ catch (error) {
274
+ return { content: [{ type: "text", text: error.message }], isError: true };
275
+ }
276
+ });
277
+ // ─── Object Copy Tools ─────────────────────────────────────────────────────
278
+ server.tool("ncloud_copy_archive_object", "Copy an object to another location within Archive Storage", {
279
+ containerName: z.string({
280
+ required_error: "필수 파라미터 'containerName'이 누락되었습니다.",
281
+ }).describe("Source container name"),
282
+ objectName: z.string({
283
+ required_error: "필수 파라미터 'objectName'이 누락되었습니다.",
284
+ }).describe("Source object name"),
285
+ destination: z.string({
286
+ required_error: "필수 파라미터 'destination'이 누락되었습니다.",
287
+ }).describe("Destination path in format: /{destContainer}/{destObject}"),
288
+ }, async (params) => {
289
+ try {
290
+ await client.request({
291
+ method: "COPY",
292
+ container: params.containerName,
293
+ object: params.objectName,
294
+ headers: {
295
+ Destination: params.destination,
296
+ },
297
+ });
298
+ const result = {
299
+ source: `${params.containerName}/${params.objectName}`,
300
+ destination: params.destination,
301
+ 상태: "copied",
302
+ };
303
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
304
+ }
305
+ catch (error) {
306
+ return { content: [{ type: "text", text: error.message }], isError: true };
307
+ }
308
+ });
309
+ // ─── Object Destructive Tools ──────────────────────────────────────────────
310
+ server.tool("ncloud_delete_archive_object", "⚠️ Destructive: Permanently delete an object from an Archive Storage container. Set confirm=true to execute.", {
311
+ containerName: z.string({
312
+ required_error: "필수 파라미터 'containerName'이 누락되었습니다.",
313
+ }).describe("Name of the container"),
314
+ objectName: z.string({
315
+ required_error: "필수 파라미터 'objectName'이 누락되었습니다.",
316
+ }).describe("Object name (path) to delete"),
317
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
318
+ }, async (params) => {
319
+ try {
320
+ if (!params.confirm) {
321
+ const message = `⚠️ This will permanently delete Archive Object [${params.containerName}/${params.objectName}]. Do you want to proceed? (yes/no)\n\nTo execute, call this tool again with confirm=true.`;
322
+ return { content: [{ type: "text", text: message }] };
323
+ }
324
+ await client.request({
325
+ method: "DELETE",
326
+ container: params.containerName,
327
+ object: params.objectName,
328
+ });
329
+ const result = { message: `✅ Archive 오브젝트 '${params.containerName}/${params.objectName}'이(가) 삭제되었습니다.` };
330
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
331
+ }
332
+ catch (error) {
333
+ return { content: [{ type: "text", text: error.message }], isError: true };
334
+ }
335
+ });
336
+ }
337
+ //# sourceMappingURL=storage-archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-archive.js","sourceRoot":"","sources":["../../src/tools/storage-archive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { NcloudClient } from "../client/ncloud-client.js";
3
+ export declare function registerStorageNasTools(server: McpServer, client: NcloudClient): void;