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
package/dist/index.js ADDED
@@ -0,0 +1,362 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
+ import { NcloudClient } from "./client/ncloud-client.js";
5
+ import { S3CompatibleClient } from "./client/s3-compatible-client.js";
6
+ import { SwiftCompatibleClient } from "./client/swift-compatible-client.js";
7
+ import { registerCommonTools, registerComputeServerTools, registerComputeStorageTools, registerComputePublicIpTools, registerComputeLoginKeyTools, registerComputeInitScriptTools, registerComputePlacementTools, registerVpcTools, registerAcgTools, registerNetworkAclTools, registerNatGatewayTools, registerRouteTableTools, registerVpcPeeringTools, registerNetworkInterfaceTools, registerLoadBalancerTools, registerTargetGroupTools, registerAutoScalingTools, registerDatabaseMysqlTools, registerDatabasePostgresqlTools, registerDatabaseMssqlTools, registerDatabaseMongodbTools, registerDatabaseCacheTools, registerStorageObjectTools, registerStorageNcloudTools, registerContainersNksTools, registerContainersRegistryTools, registerActivityTracerTools, registerStorageNasTools, registerLogAnalyticsTools, registerCertificateManagerTools, registerSecurityMonitoringTools, registerCloudInsightTools, registerCloudInsightRuleTools, registerCloudInsightPluginTools, registerCloudInsightIntegrationTools, registerSourceCommitTools, registerSourceBuildTools, registerSourceDeployTools, registerSourcePipelineTools, registerGlobalEdgeTools, registerVodStationTools, registerLiveStationTools, registerImageOptimizerTools, registerSubAccountTools, registerApiGatewayTools, registerSensTools, registerSearchEngineServiceTools, registerCloudHadoopTools, registerCloudDataStreamingTools, registerDataStreamTools, registerCloudFunctionsTools, registerResourceManagerTools, registerGlobalDnsTools, registerGlobalTrafficManagerTools, registerStorageArchiveTools, registerDataCatalogTools, registerDataForestTools, registerCloudAdvisorTools, registerDataFlowTools, registerDataQueryTools, registerPrivateCaTools, registerKmsTools, registerBillingTools } from "./tools/index.js";
8
+ // Validate required environment variables
9
+ const accessKey = process.env.NCLOUD_ACCESS_KEY;
10
+ const secretKey = process.env.NCLOUD_SECRET_KEY;
11
+ if (!accessKey) {
12
+ console.error("Error: NCLOUD_ACCESS_KEY 환경 변수가 설정되지 않았습니다.");
13
+ process.exit(1);
14
+ }
15
+ if (!secretKey) {
16
+ console.error("Error: NCLOUD_SECRET_KEY 환경 변수가 설정되지 않았습니다.");
17
+ process.exit(1);
18
+ }
19
+ const regionCode = process.env.NCLOUD_REGION ?? "KR";
20
+ const baseUrl = process.env.NCLOUD_API_URL ?? "https://ncloud.apigw.ntruss.com";
21
+ // Create NcloudClient for general APIs
22
+ const client = new NcloudClient({
23
+ accessKey,
24
+ secretKey,
25
+ baseUrl,
26
+ regionCode,
27
+ });
28
+ // Create NcloudClient for Cloud Insight APIs
29
+ const cloudInsightClient = new NcloudClient({
30
+ accessKey,
31
+ secretKey,
32
+ baseUrl: "https://cw.apigw.ntruss.com",
33
+ regionCode,
34
+ });
35
+ // Create NcloudClient for Container Registry APIs
36
+ const ncrClient = new NcloudClient({
37
+ accessKey,
38
+ secretKey,
39
+ baseUrl: "https://ncr.apigw.ntruss.com",
40
+ regionCode,
41
+ });
42
+ // Create NcloudClient for Cloud Activity Tracer APIs
43
+ const activityTracerClient = new NcloudClient({
44
+ accessKey,
45
+ secretKey,
46
+ baseUrl: "https://cloudactivitytracer.apigw.ntruss.com",
47
+ regionCode,
48
+ });
49
+ // Create NcloudClient for SourceCommit APIs
50
+ const sourceCommitClient = new NcloudClient({
51
+ accessKey,
52
+ secretKey,
53
+ baseUrl: "https://sourcecommit.apigw.ntruss.com",
54
+ regionCode,
55
+ });
56
+ // Create NcloudClient for SourceBuild APIs
57
+ const sourceBuildClient = new NcloudClient({
58
+ accessKey,
59
+ secretKey,
60
+ baseUrl: "https://sourcebuild.apigw.ntruss.com",
61
+ regionCode,
62
+ });
63
+ // Create NcloudClient for SourceDeploy APIs (VPC)
64
+ const sourceDeployClient = new NcloudClient({
65
+ accessKey,
66
+ secretKey,
67
+ baseUrl: "https://vpcsourcedeploy.apigw.ntruss.com",
68
+ regionCode,
69
+ });
70
+ // Create NcloudClient for SourcePipeline APIs (VPC)
71
+ const sourcePipelineClient = new NcloudClient({
72
+ accessKey,
73
+ secretKey,
74
+ baseUrl: "https://vpcsourcepipeline.apigw.ntruss.com",
75
+ regionCode,
76
+ });
77
+ // Create NcloudClient for Global Edge APIs
78
+ const globalEdgeClient = new NcloudClient({
79
+ accessKey,
80
+ secretKey,
81
+ baseUrl: "https://edge.apigw.ntruss.com",
82
+ regionCode,
83
+ });
84
+ // Create NcloudClient for VOD Station APIs
85
+ const vodStationClient = new NcloudClient({
86
+ accessKey,
87
+ secretKey,
88
+ baseUrl: "https://vodstation.apigw.ntruss.com",
89
+ regionCode,
90
+ });
91
+ // Create NcloudClient for Live Station APIs
92
+ const liveStationClient = new NcloudClient({
93
+ accessKey,
94
+ secretKey,
95
+ baseUrl: "https://livestation.apigw.ntruss.com",
96
+ regionCode,
97
+ });
98
+ // Create NcloudClient for Image Optimizer APIs
99
+ const imageOptimizerClient = new NcloudClient({
100
+ accessKey,
101
+ secretKey,
102
+ baseUrl: "https://imageoptimizer.apigw.ntruss.com",
103
+ regionCode,
104
+ });
105
+ // Create NcloudClient for Sub Account (IAM) APIs
106
+ const subAccountClient = new NcloudClient({
107
+ accessKey,
108
+ secretKey,
109
+ baseUrl: "https://subaccount.apigw.ntruss.com",
110
+ regionCode,
111
+ });
112
+ // Create NcloudClient for Certificate Manager APIs (v2)
113
+ const certificateManagerClient = new NcloudClient({
114
+ accessKey,
115
+ secretKey,
116
+ baseUrl: "https://certificatemanager.apigw.ntruss.com",
117
+ regionCode,
118
+ });
119
+ // Create NcloudClient for API Gateway APIs
120
+ const apiGatewayClient = new NcloudClient({
121
+ accessKey,
122
+ secretKey,
123
+ baseUrl: "https://apigateway.apigw.ntruss.com",
124
+ regionCode,
125
+ });
126
+ // Create NcloudClient for SENS APIs
127
+ const sensClient = new NcloudClient({
128
+ accessKey,
129
+ secretKey,
130
+ baseUrl: "https://sens.apigw.ntruss.com",
131
+ regionCode,
132
+ });
133
+ // Create S3CompatibleClient for Object Storage APIs
134
+ const s3Client = new S3CompatibleClient({
135
+ accessKey,
136
+ secretKey,
137
+ regionCode,
138
+ storageType: "object",
139
+ });
140
+ // Create S3CompatibleClient for Ncloud Storage APIs
141
+ const ncloudStorageClient = new S3CompatibleClient({
142
+ accessKey,
143
+ secretKey,
144
+ regionCode,
145
+ storageType: "ncloud",
146
+ });
147
+ // Create MCP Server
148
+ const server = new McpServer({
149
+ name: "ncloud-mcp-server",
150
+ version: "1.0.0",
151
+ });
152
+ // Register all tools
153
+ registerCommonTools(server, client);
154
+ registerComputeServerTools(server, client);
155
+ registerComputeStorageTools(server, client);
156
+ registerComputePublicIpTools(server, client);
157
+ registerComputeLoginKeyTools(server, client);
158
+ registerComputeInitScriptTools(server, client);
159
+ registerComputePlacementTools(server, client);
160
+ registerVpcTools(server, client);
161
+ registerAcgTools(server, client);
162
+ registerNetworkAclTools(server, client);
163
+ registerNatGatewayTools(server, client);
164
+ registerRouteTableTools(server, client);
165
+ registerVpcPeeringTools(server, client);
166
+ registerNetworkInterfaceTools(server, client);
167
+ registerLoadBalancerTools(server, client);
168
+ registerTargetGroupTools(server, client);
169
+ registerAutoScalingTools(server, client);
170
+ registerDatabaseMysqlTools(server, client);
171
+ registerDatabasePostgresqlTools(server, client);
172
+ registerDatabaseMssqlTools(server, client);
173
+ registerDatabaseMongodbTools(server, client);
174
+ registerDatabaseCacheTools(server, client);
175
+ registerStorageObjectTools(server, s3Client);
176
+ registerStorageNcloudTools(server, ncloudStorageClient);
177
+ // Create NcloudClient for NKS (Ncloud Kubernetes Service) APIs
178
+ const nksClient = new NcloudClient({
179
+ accessKey,
180
+ secretKey,
181
+ baseUrl: "https://nks.apigw.ntruss.com",
182
+ regionCode,
183
+ });
184
+ registerContainersNksTools(server, nksClient);
185
+ registerContainersRegistryTools(server, ncrClient);
186
+ registerActivityTracerTools(server, activityTracerClient);
187
+ registerStorageNasTools(server, client);
188
+ registerLogAnalyticsTools(server, client);
189
+ registerCertificateManagerTools(server, certificateManagerClient);
190
+ registerSecurityMonitoringTools(server, client);
191
+ registerCloudInsightTools(server, cloudInsightClient);
192
+ registerCloudInsightRuleTools(server, cloudInsightClient);
193
+ registerCloudInsightPluginTools(server, cloudInsightClient);
194
+ registerCloudInsightIntegrationTools(server, cloudInsightClient);
195
+ registerSourceCommitTools(server, sourceCommitClient);
196
+ registerSourceBuildTools(server, sourceBuildClient);
197
+ registerSourceDeployTools(server, sourceDeployClient);
198
+ registerSourcePipelineTools(server, sourcePipelineClient);
199
+ registerGlobalEdgeTools(server, globalEdgeClient);
200
+ registerVodStationTools(server, vodStationClient);
201
+ registerLiveStationTools(server, liveStationClient);
202
+ registerImageOptimizerTools(server, imageOptimizerClient);
203
+ registerSubAccountTools(server, subAccountClient);
204
+ registerApiGatewayTools(server, apiGatewayClient);
205
+ registerSensTools(server, sensClient);
206
+ // Create NcloudClient for Search Engine Service APIs
207
+ const sesClient = new NcloudClient({
208
+ accessKey,
209
+ secretKey,
210
+ baseUrl: "https://vpcsearchengine.apigw.ntruss.com",
211
+ regionCode,
212
+ });
213
+ registerSearchEngineServiceTools(server, sesClient);
214
+ registerCloudHadoopTools(server, client);
215
+ // Create NcloudClient for Cloud Data Streaming Service (CDSS) APIs
216
+ const cdssClient = new NcloudClient({
217
+ accessKey,
218
+ secretKey,
219
+ baseUrl: "https://clouddatastreamingservice.apigw.ntruss.com",
220
+ regionCode,
221
+ });
222
+ registerCloudDataStreamingTools(server, cdssClient);
223
+ // Create NcloudClient for Data Stream APIs (Topic, Connector, Schema)
224
+ const dataStreamClient = new NcloudClient({
225
+ accessKey,
226
+ secretKey,
227
+ baseUrl: "https://datastream.apigw.ntruss.com",
228
+ regionCode,
229
+ });
230
+ // Create NcloudClient for Data Stream Message API (different base URL)
231
+ const dataStreamMessageClient = new NcloudClient({
232
+ accessKey,
233
+ secretKey,
234
+ baseUrl: "https://api.datastream.naverncp.com",
235
+ regionCode,
236
+ });
237
+ registerDataStreamTools(server, dataStreamClient, dataStreamMessageClient);
238
+ // Create NcloudClient for Cloud Functions APIs (region-specific base URL)
239
+ const cloudFunctionsBaseUrlMap = {
240
+ KR: "https://cloudfunctions.apigw.ntruss.com",
241
+ SGN: "https://sg-cloudfunctions.apigw.ntruss.com",
242
+ JPN: "https://jp-cloudfunctions.apigw.ntruss.com",
243
+ };
244
+ const cloudFunctionsBaseUrl = cloudFunctionsBaseUrlMap[regionCode] ?? "https://cloudfunctions.apigw.ntruss.com";
245
+ const cloudFunctionsClient = new NcloudClient({
246
+ accessKey,
247
+ secretKey,
248
+ baseUrl: cloudFunctionsBaseUrl,
249
+ regionCode,
250
+ });
251
+ registerCloudFunctionsTools(server, cloudFunctionsClient);
252
+ // Create NcloudClient for Resource Manager APIs
253
+ const resourceManagerClient = new NcloudClient({
254
+ accessKey,
255
+ secretKey,
256
+ baseUrl: "https://resourcemanager.apigw.ntruss.com",
257
+ regionCode,
258
+ });
259
+ registerResourceManagerTools(server, resourceManagerClient);
260
+ // Create NcloudClient for Global DNS APIs
261
+ const globalDnsClient = new NcloudClient({
262
+ accessKey,
263
+ secretKey,
264
+ baseUrl: "https://globaldns.apigw.ntruss.com",
265
+ regionCode,
266
+ });
267
+ registerGlobalDnsTools(server, globalDnsClient);
268
+ // Create NcloudClient for Global Traffic Manager APIs
269
+ const gtmClient = new NcloudClient({
270
+ accessKey,
271
+ secretKey,
272
+ baseUrl: "https://globaltrafficmanager.apigw.ntruss.com",
273
+ regionCode,
274
+ });
275
+ registerGlobalTrafficManagerTools(server, gtmClient);
276
+ // Create NcloudClient for Data Catalog APIs
277
+ const dataCatalogClient = new NcloudClient({
278
+ accessKey,
279
+ secretKey,
280
+ baseUrl: "https://datacatalog.apigw.ntruss.com",
281
+ regionCode,
282
+ });
283
+ registerDataCatalogTools(server, dataCatalogClient);
284
+ // Create NcloudClient for Data Forest APIs
285
+ const dataForestClient = new NcloudClient({
286
+ accessKey,
287
+ secretKey,
288
+ baseUrl: "https://df.apigw.ntruss.com",
289
+ regionCode,
290
+ });
291
+ registerDataForestTools(server, dataForestClient);
292
+ // Create NcloudClient for Cloud Advisor APIs
293
+ const cloudAdvisorClient = new NcloudClient({
294
+ accessKey,
295
+ secretKey,
296
+ baseUrl: "https://cloud-advisor.apigw.ntruss.com",
297
+ regionCode,
298
+ });
299
+ registerCloudAdvisorTools(server, cloudAdvisorClient);
300
+ // Create NcloudClient for Data Flow APIs
301
+ const dataFlowClient = new NcloudClient({
302
+ accessKey,
303
+ secretKey,
304
+ baseUrl: "https://dataflow.apigw.ntruss.com",
305
+ regionCode,
306
+ });
307
+ registerDataFlowTools(server, dataFlowClient);
308
+ // Create NcloudClient for Data Query APIs
309
+ const dataQueryClient = new NcloudClient({
310
+ accessKey,
311
+ secretKey,
312
+ baseUrl: "https://kr.dataquery.naverncp.com",
313
+ regionCode,
314
+ });
315
+ registerDataQueryTools(server, dataQueryClient);
316
+ // Create NcloudClient for Private CA APIs
317
+ const privateCaClient = new NcloudClient({
318
+ accessKey,
319
+ secretKey,
320
+ baseUrl: "https://pca.apigw.ntruss.com",
321
+ regionCode,
322
+ });
323
+ registerPrivateCaTools(server, privateCaClient);
324
+ // Create NcloudClient for KMS API 2.0
325
+ const kmsClient = new NcloudClient({
326
+ accessKey,
327
+ secretKey,
328
+ baseUrl: "https://ocapi.ncloud.com",
329
+ regionCode,
330
+ });
331
+ registerKmsTools(server, kmsClient);
332
+ // Create NcloudClient for Billing APIs (List Price, Cost and Usage, Discount)
333
+ const billingClient = new NcloudClient({
334
+ accessKey,
335
+ secretKey,
336
+ baseUrl: "https://billingapi.apigw.ntruss.com",
337
+ regionCode,
338
+ });
339
+ registerBillingTools(server, billingClient);
340
+ // Create SwiftCompatibleClient for Archive Storage APIs (optional — requires NCLOUD_ARCHIVE_PROJECT_ID and NCLOUD_ARCHIVE_DOMAIN_ID)
341
+ const archiveProjectId = process.env.NCLOUD_ARCHIVE_PROJECT_ID;
342
+ const archiveDomainId = process.env.NCLOUD_ARCHIVE_DOMAIN_ID;
343
+ if (archiveProjectId && archiveDomainId) {
344
+ const swiftClient = new SwiftCompatibleClient({
345
+ accessKey,
346
+ secretKey,
347
+ projectId: archiveProjectId,
348
+ domainId: archiveDomainId,
349
+ regionCode,
350
+ });
351
+ registerStorageArchiveTools(server, swiftClient);
352
+ }
353
+ // Connect via stdio transport
354
+ async function main() {
355
+ const transport = new StdioServerTransport();
356
+ await server.connect(transport);
357
+ }
358
+ main().catch((error) => {
359
+ console.error("Fatal error:", error);
360
+ process.exit(1);
361
+ });
362
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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 registerAcgTools(server: McpServer, client: NcloudClient): void;
@@ -0,0 +1,220 @@
1
+ import { z } from "zod";
2
+ export function registerAcgTools(server, client) {
3
+ // ─── Query Tools ───────────────────────────────────────────────────────────
4
+ server.tool("ncloud_list_acgs", "List all Access Control Groups (ACGs) in the current region", {
5
+ accessControlGroupNoList: z.array(z.string()).optional().describe("Filter by ACG numbers"),
6
+ accessControlGroupName: z.string().optional().describe("Filter by ACG name"),
7
+ accessControlGroupStatusCode: z.string().optional().describe("Filter by ACG status code (INIT | SET | RUN | TERMTING)"),
8
+ vpcNo: z.string().optional().describe("Filter by VPC number"),
9
+ pageNo: z.number().optional().describe("Page number for pagination (0 or 1 for first page)"),
10
+ pageSize: z.number().optional().describe("Page size for pagination (1-1000, required when pageNo is set)"),
11
+ }, async (params) => {
12
+ try {
13
+ const result = await client.request("/vserver/v2/getAccessControlGroupList", params);
14
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
15
+ }
16
+ catch (error) {
17
+ return { content: [{ type: "text", text: error.message }], isError: true };
18
+ }
19
+ });
20
+ server.tool("ncloud_get_acg_detail", "Get detailed information about a specific Access Control Group", {
21
+ accessControlGroupNo: z.string().describe("Access Control Group number"),
22
+ }, async (params) => {
23
+ try {
24
+ const result = await client.request("/vserver/v2/getAccessControlGroupDetail", params);
25
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
26
+ }
27
+ catch (error) {
28
+ return { content: [{ type: "text", text: error.message }], isError: true };
29
+ }
30
+ });
31
+ server.tool("ncloud_get_acg_rules", "List all inbound and outbound rules for a specific ACG", {
32
+ accessControlGroupNo: z.string().describe("Access Control Group number"),
33
+ accessControlGroupRuleTypeCode: z.string().optional().describe("Filter by rule type (INBND: inbound, OTBND: outbound). Default: all rules"),
34
+ }, async (params) => {
35
+ try {
36
+ const result = await client.request("/vserver/v2/getAccessControlGroupRuleList", params);
37
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
38
+ }
39
+ catch (error) {
40
+ return { content: [{ type: "text", text: error.message }], isError: true };
41
+ }
42
+ });
43
+ // ─── Create Tools ──────────────────────────────────────────────────────────
44
+ server.tool("ncloud_create_acg", "Create a new Access Control Group in a VPC", {
45
+ vpcNo: z.string().describe("VPC number to create ACG in (required)"),
46
+ accessControlGroupName: z.string().optional().describe("Name for the new ACG (3-30 chars, lowercase letters + numbers + '-', starts with letter, ends with letter or number). Auto-generated if omitted."),
47
+ accessControlGroupDescription: z.string().optional().describe("Description for the ACG (0-1000 bytes)"),
48
+ }, async (params) => {
49
+ try {
50
+ const result = await client.request("/vserver/v2/createAccessControlGroup", params);
51
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
52
+ }
53
+ catch (error) {
54
+ return { content: [{ type: "text", text: error.message }], isError: true };
55
+ }
56
+ });
57
+ // ─── Rule Management Tools ─────────────────────────────────────────────────
58
+ server.tool("ncloud_add_acg_inbound_rule", "Add an inbound rule to an Access Control Group", {
59
+ vpcNo: z.string().describe("VPC number (required)"),
60
+ accessControlGroupNo: z.string().describe("ACG number to add rule to (required)"),
61
+ protocolTypeCode: z.string().describe("Protocol type code (TCP, UDP, ICMP, or 1-254 protocol number)"),
62
+ ipBlock: z.string().optional().describe("Access source IP block in CIDR format (e.g., 0.0.0.0/0). Cannot be used with accessControlGroupSequence."),
63
+ accessControlGroupSequence: z.string().optional().describe("Access source ACG number (alternative to ipBlock). Cannot be used with ipBlock."),
64
+ portRange: z.string().optional().describe("Allowed port range (e.g., 22, 1-65535). Required if protocol is TCP or UDP."),
65
+ accessControlGroupRuleDescription: z.string().optional().describe("Rule description (0-1000 bytes)"),
66
+ }, async (params) => {
67
+ try {
68
+ const { vpcNo, accessControlGroupNo, protocolTypeCode, ipBlock, accessControlGroupSequence, portRange, accessControlGroupRuleDescription } = params;
69
+ const requestParams = {
70
+ vpcNo,
71
+ accessControlGroupNo,
72
+ "accessControlGroupRuleList.1.protocolTypeCode": protocolTypeCode,
73
+ };
74
+ if (ipBlock) {
75
+ requestParams["accessControlGroupRuleList.1.ipBlock"] = ipBlock;
76
+ }
77
+ if (accessControlGroupSequence) {
78
+ requestParams["accessControlGroupRuleList.1.accessControlGroupSequence"] = accessControlGroupSequence;
79
+ }
80
+ if (portRange) {
81
+ requestParams["accessControlGroupRuleList.1.portRange"] = portRange;
82
+ }
83
+ if (accessControlGroupRuleDescription) {
84
+ requestParams["accessControlGroupRuleList.1.accessControlGroupRuleDescription"] = accessControlGroupRuleDescription;
85
+ }
86
+ const result = await client.request("/vserver/v2/addAccessControlGroupInboundRule", requestParams);
87
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
88
+ }
89
+ catch (error) {
90
+ return { content: [{ type: "text", text: error.message }], isError: true };
91
+ }
92
+ });
93
+ server.tool("ncloud_add_acg_outbound_rule", "Add an outbound rule to an Access Control Group", {
94
+ vpcNo: z.string().describe("VPC number (required)"),
95
+ accessControlGroupNo: z.string().describe("ACG number to add rule to (required)"),
96
+ protocolTypeCode: z.string().describe("Protocol type code (TCP, UDP, ICMP, or 1-254 protocol number)"),
97
+ ipBlock: z.string().optional().describe("Destination IP block in CIDR format (e.g., 0.0.0.0/0). Cannot be used with accessControlGroupSequence."),
98
+ accessControlGroupSequence: z.string().optional().describe("Destination ACG number (alternative to ipBlock). Cannot be used with ipBlock."),
99
+ portRange: z.string().optional().describe("Allowed port range (e.g., 80, 1-65535). Required if protocol is TCP or UDP."),
100
+ accessControlGroupRuleDescription: z.string().optional().describe("Rule description (0-1000 bytes)"),
101
+ }, async (params) => {
102
+ try {
103
+ const { vpcNo, accessControlGroupNo, protocolTypeCode, ipBlock, accessControlGroupSequence, portRange, accessControlGroupRuleDescription } = params;
104
+ const requestParams = {
105
+ vpcNo,
106
+ accessControlGroupNo,
107
+ "accessControlGroupRuleList.1.protocolTypeCode": protocolTypeCode,
108
+ };
109
+ if (ipBlock) {
110
+ requestParams["accessControlGroupRuleList.1.ipBlock"] = ipBlock;
111
+ }
112
+ if (accessControlGroupSequence) {
113
+ requestParams["accessControlGroupRuleList.1.accessControlGroupSequence"] = accessControlGroupSequence;
114
+ }
115
+ if (portRange) {
116
+ requestParams["accessControlGroupRuleList.1.portRange"] = portRange;
117
+ }
118
+ if (accessControlGroupRuleDescription) {
119
+ requestParams["accessControlGroupRuleList.1.accessControlGroupRuleDescription"] = accessControlGroupRuleDescription;
120
+ }
121
+ const result = await client.request("/vserver/v2/addAccessControlGroupOutboundRule", requestParams);
122
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
123
+ }
124
+ catch (error) {
125
+ return { content: [{ type: "text", text: error.message }], isError: true };
126
+ }
127
+ });
128
+ // ─── Destructive Tools (with confirm gate) ─────────────────────────────────
129
+ server.tool("ncloud_delete_acg", "⚠️ Destructive: Delete an Access Control Group. Set confirm=true to execute.", {
130
+ vpcNo: z.string().describe("VPC number (required)"),
131
+ accessControlGroupNo: z.string().describe("ACG number to delete (required)"),
132
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
133
+ }, async (params) => {
134
+ try {
135
+ if (!params.confirm) {
136
+ const message = `⚠️ This will permanently delete ACG [${params.accessControlGroupNo}]. Do you want to proceed? (yes/no)\n\nTo execute, call this tool again with confirm=true.`;
137
+ return { content: [{ type: "text", text: message }] };
138
+ }
139
+ const { confirm, ...apiParams } = params;
140
+ const result = await client.request("/vserver/v2/deleteAccessControlGroup", apiParams);
141
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
142
+ }
143
+ catch (error) {
144
+ return { content: [{ type: "text", text: error.message }], isError: true };
145
+ }
146
+ });
147
+ server.tool("ncloud_remove_acg_inbound_rule", "⚠️ Destructive: Remove an inbound rule from an Access Control Group. Set confirm=true to execute.", {
148
+ vpcNo: z.string().describe("VPC number (required)"),
149
+ accessControlGroupNo: z.string().describe("ACG number to remove rule from (required)"),
150
+ protocolTypeCode: z.string().describe("Protocol type code (TCP, UDP, ICMP, or protocol number)"),
151
+ ipBlock: z.string().optional().describe("IP block in CIDR format. Cannot be used with accessControlGroupSequence."),
152
+ accessControlGroupSequence: z.string().optional().describe("Source ACG number. Cannot be used with ipBlock."),
153
+ portRange: z.string().optional().describe("Port range (e.g., 80, 1-65535). Required if protocol is TCP or UDP."),
154
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
155
+ }, async (params) => {
156
+ try {
157
+ if (!params.confirm) {
158
+ const message = `⚠️ This will permanently remove inbound rule from ACG [${params.accessControlGroupNo}]. Do you want to proceed? (yes/no)\n\nTo execute, call this tool again with confirm=true.`;
159
+ return { content: [{ type: "text", text: message }] };
160
+ }
161
+ const { confirm, vpcNo, accessControlGroupNo, protocolTypeCode, ipBlock, accessControlGroupSequence, portRange } = params;
162
+ const requestParams = {
163
+ vpcNo,
164
+ accessControlGroupNo,
165
+ "accessControlGroupRuleList.1.protocolTypeCode": protocolTypeCode,
166
+ };
167
+ if (ipBlock) {
168
+ requestParams["accessControlGroupRuleList.1.ipBlock"] = ipBlock;
169
+ }
170
+ if (accessControlGroupSequence) {
171
+ requestParams["accessControlGroupRuleList.1.accessControlGroupSequence"] = accessControlGroupSequence;
172
+ }
173
+ if (portRange) {
174
+ requestParams["accessControlGroupRuleList.1.portRange"] = portRange;
175
+ }
176
+ const result = await client.request("/vserver/v2/removeAccessControlGroupInboundRule", requestParams);
177
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
178
+ }
179
+ catch (error) {
180
+ return { content: [{ type: "text", text: error.message }], isError: true };
181
+ }
182
+ });
183
+ server.tool("ncloud_remove_acg_outbound_rule", "⚠️ Destructive: Remove an outbound rule from an Access Control Group. Set confirm=true to execute.", {
184
+ vpcNo: z.string().describe("VPC number (required)"),
185
+ accessControlGroupNo: z.string().describe("ACG number to remove rule from (required)"),
186
+ protocolTypeCode: z.string().describe("Protocol type code (TCP, UDP, ICMP, or protocol number)"),
187
+ ipBlock: z.string().optional().describe("IP block in CIDR format. Cannot be used with accessControlGroupSequence."),
188
+ accessControlGroupSequence: z.string().optional().describe("Destination ACG number. Cannot be used with ipBlock."),
189
+ portRange: z.string().optional().describe("Port range (e.g., 80, 1-65535). Required if protocol is TCP or UDP."),
190
+ confirm: z.boolean().optional().default(false).describe("Must be true to actually execute the destructive operation"),
191
+ }, async (params) => {
192
+ try {
193
+ if (!params.confirm) {
194
+ const message = `⚠️ This will permanently remove outbound rule from ACG [${params.accessControlGroupNo}]. Do you want to proceed? (yes/no)\n\nTo execute, call this tool again with confirm=true.`;
195
+ return { content: [{ type: "text", text: message }] };
196
+ }
197
+ const { confirm, vpcNo, accessControlGroupNo, protocolTypeCode, ipBlock, accessControlGroupSequence, portRange } = params;
198
+ const requestParams = {
199
+ vpcNo,
200
+ accessControlGroupNo,
201
+ "accessControlGroupRuleList.1.protocolTypeCode": protocolTypeCode,
202
+ };
203
+ if (ipBlock) {
204
+ requestParams["accessControlGroupRuleList.1.ipBlock"] = ipBlock;
205
+ }
206
+ if (accessControlGroupSequence) {
207
+ requestParams["accessControlGroupRuleList.1.accessControlGroupSequence"] = accessControlGroupSequence;
208
+ }
209
+ if (portRange) {
210
+ requestParams["accessControlGroupRuleList.1.portRange"] = portRange;
211
+ }
212
+ const result = await client.request("/vserver/v2/removeAccessControlGroupOutboundRule", requestParams);
213
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
214
+ }
215
+ catch (error) {
216
+ return { content: [{ type: "text", text: error.message }], isError: true };
217
+ }
218
+ });
219
+ }
220
+ //# sourceMappingURL=acg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acg.js","sourceRoot":"","sources":["../../src/tools/acg.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 registerActivityTracerTools(server: McpServer, client: NcloudClient): void;