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,84 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Certificate Manager API 1.0
4
+ * Base URL: https://certificatemanager.apigw.ntruss.com
5
+ *
6
+ * v1 API는 3개 엔드포인트를 제공:
7
+ * - GET /api/v1/certificates — 인증서 목록 조회
8
+ * - POST /api/v1/certificate/withExternal — 외부 인증서 등록
9
+ * - DELETE /api/v1/certificate/{no}?certificateName=... — 인증서 삭제
10
+ *
11
+ * 주의:
12
+ * - Certificate Manager API는 일반 Ncloud API와 달리 responseFormatType, regionCode
13
+ * 쿼리 파라미터를 사용하지 않는다 (글로벌 서비스).
14
+ * - 모든 요청에 Content-Type: application/json, Accept: application/json 헤더 필수.
15
+ * - client.requestRaw()를 사용하여 자동 파라미터 주입을 회피한다.
16
+ */
17
+ export function registerCertificateManagerTools(server, client) {
18
+ // ─── 인증서 목록 조회 ──────────────────────────────────────────────────────
19
+ server.tool("ncloud_list_certificates", "List all registered SSL/TLS certificates in Certificate Manager. Supports filtering by certificateName, certificateNo, or instanceNo.", {
20
+ certificateName: z.string().optional().describe("Filter by certificate name"),
21
+ certificateNo: z.number().optional().describe("Filter by certificate number"),
22
+ instanceNo: z.number().optional().describe("Filter by instance number (Load Balancer, CDN+, Global Edge)"),
23
+ }, async (params) => {
24
+ try {
25
+ const queryParams = {};
26
+ if (params.certificateName !== undefined)
27
+ queryParams["certificateName"] = params.certificateName;
28
+ if (params.certificateNo !== undefined)
29
+ queryParams["certificateNo"] = params.certificateNo;
30
+ if (params.instanceNo !== undefined)
31
+ queryParams["instanceNo"] = params.instanceNo;
32
+ const hasQuery = Object.values(queryParams).some((v) => v !== undefined);
33
+ const result = await client.requestRaw("GET", "/api/v1/certificates", hasQuery ? queryParams : undefined);
34
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
35
+ }
36
+ catch (error) {
37
+ return { content: [{ type: "text", text: error.message }], isError: true };
38
+ }
39
+ });
40
+ // ─── 외부 인증서 등록 ──────────────────────────────────────────────────────
41
+ server.tool("ncloud_register_external_certificate", "Register an external SSL certificate issued by a third-party CA (e.g. Let's Encrypt, ZeroSSL, DigiCert)", {
42
+ certificateName: z.string().describe("Certificate name (3-30 chars, alphanumeric and '-', no duplicates)"),
43
+ privateKey: z.string().describe("PEM-encoded private key (must be decrypted, not encrypted)"),
44
+ publicKeyCertificate: z.string().describe("PEM-encoded certificate body (public key certificate)"),
45
+ certificateChain: z.string().describe("PEM-encoded certificate chain (intermediate CA certificates)"),
46
+ }, async (params) => {
47
+ try {
48
+ const result = await client.requestRaw("POST", "/api/v1/certificate/withExternal", undefined, {
49
+ certificateName: params.certificateName,
50
+ privateKey: params.privateKey,
51
+ publicKeyCertificate: params.publicKeyCertificate,
52
+ certificateChain: params.certificateChain,
53
+ });
54
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
55
+ }
56
+ catch (error) {
57
+ return { content: [{ type: "text", text: error.message }], isError: true };
58
+ }
59
+ });
60
+ // ─── 인증서 삭제 ───────────────────────────────────────────────────────────
61
+ server.tool("ncloud_delete_certificate", "⚠️ Destructive: Permanently delete a registered certificate. Ensure it is not in use by any Load Balancer, CDN+, or Global Edge. Set confirm=true to execute.", {
62
+ certificateNo: z.number().describe("Certificate number to delete (from ncloud_list_certificates)"),
63
+ certificateName: z.string().describe("Certificate name (must match exactly for verification)"),
64
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
65
+ }, async (params) => {
66
+ try {
67
+ if (!params.confirm) {
68
+ const message = [
69
+ `⚠️ This will permanently delete Certificate #${params.certificateNo} (${params.certificateName}).`,
70
+ `Ensure it is not in use by any Load Balancer, CDN+, or Global Edge instance.`,
71
+ ``,
72
+ `To execute, call this tool again with confirm=true.`,
73
+ ].join("\n");
74
+ return { content: [{ type: "text", text: message }] };
75
+ }
76
+ const result = await client.requestRaw("DELETE", `/api/v1/certificate/${params.certificateNo}`, { certificateName: params.certificateName });
77
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
78
+ }
79
+ catch (error) {
80
+ return { content: [{ type: "text", text: error.message }], isError: true };
81
+ }
82
+ });
83
+ }
84
+ //# sourceMappingURL=certificate-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificate-manager.js","sourceRoot":"","sources":["../../src/tools/certificate-manager.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 registerCloudAdvisorTools(server: McpServer, client: NcloudClient): void;
@@ -0,0 +1,202 @@
1
+ import { z } from "zod";
2
+ export function registerCloudAdvisorTools(server, client) {
3
+ // ncloud_advisor_get_categories — Get check categories
4
+ server.tool("ncloud_advisor_get_categories", "Get Cloud Advisor check categories (SECURITY, COST). Returns available inspection category list.", {}, async () => {
5
+ try {
6
+ const result = await client.requestRaw("GET", "/api/v1/categories");
7
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
8
+ }
9
+ catch (error) {
10
+ return { content: [{ type: "text", text: error.message }], isError: true };
11
+ }
12
+ });
13
+ // ncloud_advisor_get_checkitems — Get check items for a category
14
+ server.tool("ncloud_advisor_get_checkitems", "Get Cloud Advisor check items for a specific category. Returns item codes, names, descriptions, recommendations, and result table header info.", {
15
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY (security) or COST (cost & high availability)"),
16
+ }, async (params) => {
17
+ try {
18
+ const result = await client.requestRaw("GET", `/api/v1/categories/${params.categoryCode}/checkitems`);
19
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
20
+ }
21
+ catch (error) {
22
+ return { content: [{ type: "text", text: error.message }], isError: true };
23
+ }
24
+ });
25
+ // ncloud_advisor_get_category_status — Get check status for all items in a category
26
+ server.tool("ncloud_advisor_get_category_status", "Get check request availability status for all items in a category. Shows whether each item can be refreshed and its current processing state.", {
27
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY or COST"),
28
+ }, async (params) => {
29
+ try {
30
+ const result = await client.requestRaw("GET", `/api/v1/categories/${params.categoryCode}/checkitems/status`);
31
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
32
+ }
33
+ catch (error) {
34
+ return { content: [{ type: "text", text: error.message }], isError: true };
35
+ }
36
+ });
37
+ // ncloud_advisor_refresh_category — Request check for all items in a category
38
+ server.tool("ncloud_advisor_refresh_category", "Request a check (refresh) for all items in a category. Triggers inspection for all check items under the specified category.", {
39
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY or COST"),
40
+ }, async (params) => {
41
+ try {
42
+ const result = await client.requestRaw("POST", `/api/v1/categories/${params.categoryCode}/checkitems/refresh`, undefined, {});
43
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
44
+ }
45
+ catch (error) {
46
+ return { content: [{ type: "text", text: error.message }], isError: true };
47
+ }
48
+ });
49
+ // ncloud_advisor_get_category_dashboard — Get check result grade summary for a category
50
+ server.tool("ncloud_advisor_get_category_dashboard", "Get check result grade summary (GREEN/YELLOW/RED counts) for categories. Shows how many items are in each alert level.", {
51
+ categoryCode: z.enum(["SECURITY", "COST"]).optional().describe("Check category code (optional). If omitted, returns dashboard for all categories."),
52
+ }, async (params) => {
53
+ try {
54
+ const path = params.categoryCode
55
+ ? `/api/v1/categories/${params.categoryCode}/dashboard`
56
+ : `/api/v1/categories/dashboard`;
57
+ const result = await client.requestRaw("GET", path);
58
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
59
+ }
60
+ catch (error) {
61
+ return { content: [{ type: "text", text: error.message }], isError: true };
62
+ }
63
+ });
64
+ // ncloud_advisor_get_category_result_summary — Get check result summary for all items in a category
65
+ server.tool("ncloud_advisor_get_category_result_summary", "Get check result summary for all items in a category. Returns each item's alert level (GREEN/YELLOW/RED), summary text, and last check time.", {
66
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY or COST"),
67
+ }, async (params) => {
68
+ try {
69
+ const result = await client.requestRaw("GET", `/api/v1/categories/${params.categoryCode}/checkitems/result-summary`);
70
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
71
+ }
72
+ catch (error) {
73
+ return { content: [{ type: "text", text: error.message }], isError: true };
74
+ }
75
+ });
76
+ // ncloud_advisor_get_item_status — Get check status for a specific item
77
+ server.tool("ncloud_advisor_get_item_status", "Get check request availability status for a specific check item. Shows whether the item can be refreshed and its current processing state.", {
78
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY or COST"),
79
+ itemCode: z.string().describe("Check item code (e.g., SUB_ACCOUNT_ACCESSKEY, ACG_PORT, IDLE_RESOURCE_VM)"),
80
+ }, async (params) => {
81
+ try {
82
+ const result = await client.requestRaw("GET", `/api/v1/categories/${params.categoryCode}/checkitems/${params.itemCode}/status`);
83
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
84
+ }
85
+ catch (error) {
86
+ return { content: [{ type: "text", text: error.message }], isError: true };
87
+ }
88
+ });
89
+ // ncloud_advisor_refresh_item — Request check for a specific item
90
+ server.tool("ncloud_advisor_refresh_item", "Request a check (refresh) for a specific check item. Triggers inspection for the specified item.", {
91
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY or COST"),
92
+ itemCode: z.string().describe("Check item code (e.g., SUB_ACCOUNT_ACCESSKEY, ACG_PORT, IDLE_RESOURCE_VM)"),
93
+ }, async (params) => {
94
+ try {
95
+ const result = await client.requestRaw("POST", `/api/v1/categories/${params.categoryCode}/checkitems/${params.itemCode}/refresh`, undefined, {});
96
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
97
+ }
98
+ catch (error) {
99
+ return { content: [{ type: "text", text: error.message }], isError: true };
100
+ }
101
+ });
102
+ // ncloud_advisor_get_item_result_summary — Get check result summary for a specific item
103
+ server.tool("ncloud_advisor_get_item_result_summary", "Get check result summary for a specific check item. Returns the item's alert level (GREEN/YELLOW/RED), summary text, and last check time.", {
104
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY or COST"),
105
+ itemCode: z.string().describe("Check item code (e.g., SUB_ACCOUNT_ACCESSKEY, ACG_PORT, IDLE_RESOURCE_VM)"),
106
+ }, async (params) => {
107
+ try {
108
+ const result = await client.requestRaw("GET", `/api/v1/categories/${params.categoryCode}/checkitems/${params.itemCode}/result-summary`);
109
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
110
+ }
111
+ catch (error) {
112
+ return { content: [{ type: "text", text: error.message }], isError: true };
113
+ }
114
+ });
115
+ // ncloud_advisor_get_item_result_detail — Get detailed check results for a specific item
116
+ server.tool("ncloud_advisor_get_item_result_detail", "Get detailed per-instance check results for a specific check item. Returns paginated instance-level inspection results with status (GREEN/YELLOW/RED).", {
117
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY or COST"),
118
+ itemCode: z.string().describe("Check item code (e.g., SUB_ACCOUNT_ACCESSKEY, ACG_PORT, IDLE_RESOURCE_VM)"),
119
+ page: z.number().describe("Page number (1-based)"),
120
+ size: z.number().describe("Number of items per page"),
121
+ display: z.enum(["all", "included", "excluded"]).optional().describe("Filter instances: all (all instances), included (included only, default), excluded (excluded only)"),
122
+ }, async (params) => {
123
+ try {
124
+ const queryParams = {
125
+ page: params.page,
126
+ size: params.size,
127
+ };
128
+ if (params.display) {
129
+ queryParams.display = params.display;
130
+ }
131
+ const result = await client.requestRaw("GET", `/api/v1/categories/${params.categoryCode}/checkitems/${params.itemCode}/result-detail`, queryParams);
132
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
133
+ }
134
+ catch (error) {
135
+ return { content: [{ type: "text", text: error.message }], isError: true };
136
+ }
137
+ });
138
+ // ncloud_advisor_include_instances — Set instances to include in check result detail
139
+ server.tool("ncloud_advisor_include_instances", "Set instances to include in check result detail view. Marks specified instances to be shown in detailed results (reverses exclusion).", {
140
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY or COST"),
141
+ itemCode: z.string().describe("Check item code"),
142
+ instanceKeys: z.array(z.string()).describe("Array of instance keys to include in results"),
143
+ }, async (params) => {
144
+ try {
145
+ const result = await client.requestRaw("POST", `/api/v1/categories/${params.categoryCode}/checkitems/${params.itemCode}/result-detail/include`, undefined, params.instanceKeys);
146
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
147
+ }
148
+ catch (error) {
149
+ return { content: [{ type: "text", text: error.message }], isError: true };
150
+ }
151
+ });
152
+ // ncloud_advisor_exclude_instances — Set instances to exclude from check result detail
153
+ server.tool("ncloud_advisor_exclude_instances", "Set instances to exclude from check result detail view. Marks specified instances to be hidden from detailed results.", {
154
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY or COST"),
155
+ itemCode: z.string().describe("Check item code"),
156
+ instanceKeys: z.array(z.string()).describe("Array of instance keys to exclude from results"),
157
+ }, async (params) => {
158
+ try {
159
+ const result = await client.requestRaw("POST", `/api/v1/categories/${params.categoryCode}/checkitems/${params.itemCode}/result-detail/exclude`, undefined, params.instanceKeys);
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
+ // ncloud_advisor_download_category_results — Download check results for a category (Excel)
167
+ server.tool("ncloud_advisor_download_category_results", "Download check results for all items in a category. Returns the download URL or binary data for the Excel report.", {
168
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY or COST"),
169
+ }, async (params) => {
170
+ try {
171
+ const result = await client.requestRaw("GET", `/api/v1/categories/${params.categoryCode}/checkitems/excel`);
172
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
173
+ }
174
+ catch (error) {
175
+ return { content: [{ type: "text", text: error.message }], isError: true };
176
+ }
177
+ });
178
+ // ncloud_advisor_download_item_results — Download check results for a specific item (Excel)
179
+ server.tool("ncloud_advisor_download_item_results", "Download check results for a specific check item. Returns the download URL or binary data for the Excel report.", {
180
+ categoryCode: z.enum(["SECURITY", "COST"]).describe("Check category code: SECURITY or COST"),
181
+ itemCode: z.string().describe("Check item code"),
182
+ }, async (params) => {
183
+ try {
184
+ const result = await client.requestRaw("GET", `/api/v1/categories/${params.categoryCode}/checkitems/${params.itemCode}/excel`);
185
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
186
+ }
187
+ catch (error) {
188
+ return { content: [{ type: "text", text: error.message }], isError: true };
189
+ }
190
+ });
191
+ // ncloud_advisor_download_all_results — Download check results for all categories (Excel)
192
+ server.tool("ncloud_advisor_download_all_results", "Download check results for all categories. Returns the download URL or binary data for the complete Excel report.", {}, async () => {
193
+ try {
194
+ const result = await client.requestRaw("GET", "/api/v1/excel");
195
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
196
+ }
197
+ catch (error) {
198
+ return { content: [{ type: "text", text: error.message }], isError: true };
199
+ }
200
+ });
201
+ }
202
+ //# sourceMappingURL=cloud-advisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-advisor.js","sourceRoot":"","sources":["../../src/tools/cloud-advisor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAoB;IAC/E,uDAAuD;IACvD,MAAM,CAAC,IAAI,CACT,+BAA+B,EAC/B,kGAAkG,EAClG,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACpE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iEAAiE;IACjE,MAAM,CAAC,IAAI,CACT,+BAA+B,EAC/B,gJAAgJ,EAChJ;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,6EAA6E,CAAC;KACnI,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,sBAAsB,MAAM,CAAC,YAAY,aAAa,CAAC,CAAC;YACtG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,oFAAoF;IACpF,MAAM,CAAC,IAAI,CACT,oCAAoC,EACpC,+IAA+I,EAC/I;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAC7F,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,sBAAsB,MAAM,CAAC,YAAY,oBAAoB,CAAC,CAAC;YAC7G,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8EAA8E;IAC9E,MAAM,CAAC,IAAI,CACT,iCAAiC,EACjC,8HAA8H,EAC9H;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAC7F,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,sBAAsB,MAAM,CAAC,YAAY,qBAAqB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAC9H,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,wFAAwF;IACxF,MAAM,CAAC,IAAI,CACT,uCAAuC,EACvC,wHAAwH,EACxH;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;KACpJ,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY;gBAC9B,CAAC,CAAC,sBAAsB,MAAM,CAAC,YAAY,YAAY;gBACvD,CAAC,CAAC,8BAA8B,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACpD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,oGAAoG;IACpG,MAAM,CAAC,IAAI,CACT,4CAA4C,EAC5C,8IAA8I,EAC9I;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAC7F,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,sBAAsB,MAAM,CAAC,YAAY,4BAA4B,CAAC,CAAC;YACrH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,wEAAwE;IACxE,MAAM,CAAC,IAAI,CACT,gCAAgC,EAChC,4IAA4I,EAC5I;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC5F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;KAC3G,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,sBAAsB,MAAM,CAAC,YAAY,eAAe,MAAM,CAAC,QAAQ,SAAS,CAAC,CAAC;YAChI,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,IAAI,CACT,6BAA6B,EAC7B,kGAAkG,EAClG;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC5F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;KAC3G,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,sBAAsB,MAAM,CAAC,YAAY,eAAe,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YACjJ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,wFAAwF;IACxF,MAAM,CAAC,IAAI,CACT,wCAAwC,EACxC,2IAA2I,EAC3I;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC5F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;KAC3G,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,sBAAsB,MAAM,CAAC,YAAY,eAAe,MAAM,CAAC,QAAQ,iBAAiB,CAAC,CAAC;YACxI,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yFAAyF;IACzF,MAAM,CAAC,IAAI,CACT,uCAAuC,EACvC,wJAAwJ,EACxJ;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC5F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;QAC1G,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAClD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACrD,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oGAAoG,CAAC;KAC3K,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,WAAW,GAA0D;gBACzE,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC;YACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACvC,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CACpC,KAAK,EACL,sBAAsB,MAAM,CAAC,YAAY,eAAe,MAAM,CAAC,QAAQ,gBAAgB,EACvF,WAAW,CACZ,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,qFAAqF;IACrF,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,uIAAuI,EACvI;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC5F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAChD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KAC3F,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CACpC,MAAM,EACN,sBAAsB,MAAM,CAAC,YAAY,eAAe,MAAM,CAAC,QAAQ,wBAAwB,EAC/F,SAAS,EACT,MAAM,CAAC,YAAY,CACpB,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,uFAAuF;IACvF,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,uHAAuH,EACvH;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC5F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAChD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,gDAAgD,CAAC;KAC7F,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CACpC,MAAM,EACN,sBAAsB,MAAM,CAAC,YAAY,eAAe,MAAM,CAAC,QAAQ,wBAAwB,EAC/F,SAAS,EACT,MAAM,CAAC,YAAY,CACpB,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,2FAA2F;IAC3F,MAAM,CAAC,IAAI,CACT,0CAA0C,EAC1C,mHAAmH,EACnH;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAC7F,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,sBAAsB,MAAM,CAAC,YAAY,mBAAmB,CAAC,CAAC;YAC5G,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,4FAA4F;IAC5F,MAAM,CAAC,IAAI,CACT,sCAAsC,EACtC,iHAAiH,EACjH;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC5F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;KACjD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,sBAAsB,MAAM,CAAC,YAAY,eAAe,MAAM,CAAC,QAAQ,QAAQ,CAAC,CAAC;YAC/H,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,0FAA0F;IAC1F,MAAM,CAAC,IAAI,CACT,qCAAqC,EACrC,mHAAmH,EACnH,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAC/D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -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 registerCloudFunctionsTools(server: McpServer, client: NcloudClient): void;