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,481 @@
1
+ import { z } from "zod";
2
+ export function registerSourceBuildTools(server, client) {
3
+ // ─── Project Management ────────────────────────────────────────────────────
4
+ server.tool("ncloud_sourcebuild_list_projects", "List SourceBuild projects with optional name filter and pagination", {
5
+ projectName: z.string().optional().describe("Filter by project name (partial match)"),
6
+ pageNo: z.number().optional().describe("Page number (1-based, default: 1)"),
7
+ pageSize: z.number().optional().describe("Items per page (omit for all)"),
8
+ }, async (params) => {
9
+ try {
10
+ const queryParams = {};
11
+ if (params.projectName)
12
+ queryParams.projectName = params.projectName;
13
+ if (params.pageNo !== undefined)
14
+ queryParams.pageNo = String(params.pageNo);
15
+ if (params.pageSize !== undefined)
16
+ queryParams.pageSize = String(params.pageSize);
17
+ const result = await client.requestRaw("GET", "/api/v1/project", queryParams);
18
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
19
+ }
20
+ catch (error) {
21
+ return { content: [{ type: "text", text: error.message }], isError: true };
22
+ }
23
+ });
24
+ server.tool("ncloud_sourcebuild_get_project", "Get detailed information about a specific SourceBuild project", {
25
+ projectId: z.string().describe("Project ID to query"),
26
+ }, async (params) => {
27
+ try {
28
+ const result = await client.requestRaw("GET", `/api/v1/project/${encodeURIComponent(params.projectId)}`);
29
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
30
+ }
31
+ catch (error) {
32
+ return { content: [{ type: "text", text: error.message }], isError: true };
33
+ }
34
+ });
35
+ server.tool("ncloud_sourcebuild_create_project", "Create a new SourceBuild project with full configuration", {
36
+ name: z.string().describe("Project name (alphanumeric, '_', '-', 1-80 chars)"),
37
+ description: z.string().optional().describe("Project description"),
38
+ sourceType: z.string().default("SourceCommit").describe("Source repository type (SourceCommit)"),
39
+ repository: z.string().describe("Source repository name"),
40
+ branch: z.string().describe("Branch to build from"),
41
+ computeId: z.number().describe("Compute type ID (from list_compute)"),
42
+ platformType: z.string().default("SourceBuild").describe("Platform type: SourceBuild | ContainerRegistry | PublicRegistry"),
43
+ osId: z.number().optional().describe("OS ID (required if platformType=SourceBuild, from list_os)"),
44
+ runtimeId: z.number().optional().describe("Runtime type ID (required if platformType=SourceBuild, from list_runtimes)"),
45
+ runtimeVersionId: z.number().optional().describe("Runtime version ID (required if platformType=SourceBuild, from list_runtime_versions)"),
46
+ registryName: z.string().optional().describe("Container Registry name (required if platformType=ContainerRegistry)"),
47
+ image: z.string().optional().describe("Image name (required if platformType=ContainerRegistry|PublicRegistry)"),
48
+ tag: z.string().optional().describe("Image tag (required if platformType=ContainerRegistry|PublicRegistry)"),
49
+ dockerUse: z.boolean().optional().default(false).describe("Include Docker engine for build"),
50
+ dockerId: z.number().optional().describe("Docker engine version ID (required if dockerUse=true, from list_docker_engines)"),
51
+ timeout: z.number().optional().default(60).describe("Build timeout in minutes (5-540, default: 5)"),
52
+ envVars: z.array(z.object({ key: z.string(), value: z.string() })).optional().describe("Build environment variables"),
53
+ preBuildCommands: z.array(z.string()).optional().describe("Pre-build commands"),
54
+ buildCommands: z.array(z.string()).optional().describe("Build commands"),
55
+ postBuildCommands: z.array(z.string()).optional().describe("Post-build commands"),
56
+ dockerbuildUse: z.boolean().optional().default(false).describe("Enable Docker image build"),
57
+ dockerbuildDockerfile: z.string().optional().describe("Dockerfile path"),
58
+ dockerbuildRegistry: z.string().optional().describe("Docker build target Container Registry name"),
59
+ dockerbuildImage: z.string().optional().describe("Docker build image name"),
60
+ dockerbuildTag: z.string().optional().describe("Docker build image tag"),
61
+ dockerbuildLatest: z.boolean().optional().default(false).describe("Set latest tag for Docker build"),
62
+ artifactUse: z.boolean().optional().default(false).describe("Save build artifacts"),
63
+ artifactPath: z.array(z.string()).optional().describe("Build artifact paths"),
64
+ artifactBucket: z.string().optional().describe("Object Storage bucket for artifacts"),
65
+ artifactStoragePath: z.string().optional().describe("Path within bucket"),
66
+ artifactFilename: z.string().optional().describe("Artifact filename"),
67
+ artifactBackup: z.boolean().optional().default(false).describe("Backup artifacts"),
68
+ cacheUse: z.boolean().optional().default(false).describe("Save build image after completion"),
69
+ cacheRegistry: z.string().optional().describe("Container Registry for cache"),
70
+ cacheImage: z.string().optional().describe("Cache image name"),
71
+ cacheTag: z.string().optional().describe("Cache image tag"),
72
+ cacheLatest: z.boolean().optional().default(false).describe("Set latest tag for cache"),
73
+ linkedCloudLogAnalytics: z.boolean().optional().default(false).describe("Enable Cloud Log Analytics integration"),
74
+ linkedFileSafer: z.boolean().optional().default(false).describe("Enable File Safer integration"),
75
+ }, async (params) => {
76
+ try {
77
+ // Build platform config
78
+ const platformConfig = {};
79
+ if (params.platformType === "SourceBuild") {
80
+ if (params.osId !== undefined)
81
+ platformConfig.os = { id: params.osId };
82
+ if (params.runtimeId !== undefined) {
83
+ const runtime = { id: params.runtimeId };
84
+ if (params.runtimeVersionId !== undefined) {
85
+ runtime.version = { id: params.runtimeVersionId };
86
+ }
87
+ platformConfig.runtime = runtime;
88
+ }
89
+ }
90
+ else {
91
+ if (params.registryName)
92
+ platformConfig.registry = { name: params.registryName };
93
+ if (params.image)
94
+ platformConfig.image = params.image;
95
+ if (params.tag)
96
+ platformConfig.tag = params.tag;
97
+ }
98
+ // Build request body
99
+ const body = {
100
+ name: params.name,
101
+ source: {
102
+ type: params.sourceType,
103
+ config: {
104
+ repository: params.repository,
105
+ branch: params.branch,
106
+ },
107
+ },
108
+ env: {
109
+ compute: { id: params.computeId },
110
+ platform: {
111
+ type: params.platformType,
112
+ config: platformConfig,
113
+ },
114
+ docker: {
115
+ use: params.dockerUse ?? false,
116
+ ...(params.dockerUse && params.dockerId ? { id: params.dockerId } : {}),
117
+ },
118
+ timeout: params.timeout ?? 60,
119
+ envVars: params.envVars ?? [],
120
+ },
121
+ cmd: {
122
+ pre: params.preBuildCommands ?? [],
123
+ build: params.buildCommands ?? [],
124
+ post: params.postBuildCommands ?? [],
125
+ dockerbuild: {
126
+ use: params.dockerbuildUse ?? false,
127
+ ...(params.dockerbuildUse ? {
128
+ dockerfile: params.dockerbuildDockerfile ?? "",
129
+ registry: params.dockerbuildRegistry ?? "",
130
+ image: params.dockerbuildImage ?? "",
131
+ tag: params.dockerbuildTag ?? "",
132
+ latest: params.dockerbuildLatest ?? false,
133
+ } : {}),
134
+ },
135
+ },
136
+ artifact: {
137
+ use: params.artifactUse ?? false,
138
+ ...(params.artifactUse ? {
139
+ path: params.artifactPath ?? [],
140
+ storage: {
141
+ bucket: params.artifactBucket ?? "",
142
+ path: params.artifactStoragePath ?? "",
143
+ filename: params.artifactFilename ?? "",
144
+ },
145
+ backup: params.artifactBackup ?? false,
146
+ } : {}),
147
+ },
148
+ cache: {
149
+ use: params.cacheUse ?? false,
150
+ ...(params.cacheUse ? {
151
+ registry: params.cacheRegistry ?? "",
152
+ image: params.cacheImage ?? "",
153
+ tag: params.cacheTag ?? "",
154
+ latest: params.cacheLatest ?? false,
155
+ } : {}),
156
+ },
157
+ linked: {
158
+ CloudLogAnalytics: params.linkedCloudLogAnalytics ?? false,
159
+ FileSafer: params.linkedFileSafer ?? false,
160
+ },
161
+ };
162
+ if (params.description)
163
+ body.description = params.description;
164
+ const result = await client.requestRaw("POST", "/api/v1/project", undefined, body);
165
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
166
+ }
167
+ catch (error) {
168
+ return { content: [{ type: "text", text: error.message }], isError: true };
169
+ }
170
+ });
171
+ server.tool("ncloud_sourcebuild_update_project", "Update an existing SourceBuild project configuration", {
172
+ projectId: z.string().describe("Project ID to update"),
173
+ description: z.string().optional().describe("Project description"),
174
+ sourceType: z.string().optional().describe("Source repository type"),
175
+ repository: z.string().optional().describe("Source repository name"),
176
+ branch: z.string().optional().describe("Branch to build from"),
177
+ computeId: z.number().optional().describe("Compute type ID"),
178
+ platformType: z.string().optional().describe("Platform type: SourceBuild | ContainerRegistry | PublicRegistry"),
179
+ osId: z.number().optional().describe("OS ID (if platformType=SourceBuild)"),
180
+ runtimeId: z.number().optional().describe("Runtime type ID"),
181
+ runtimeVersionId: z.number().optional().describe("Runtime version ID"),
182
+ registryName: z.string().optional().describe("Container Registry name"),
183
+ image: z.string().optional().describe("Image name"),
184
+ tag: z.string().optional().describe("Image tag"),
185
+ dockerUse: z.boolean().optional().describe("Include Docker engine"),
186
+ dockerId: z.number().optional().describe("Docker engine version ID"),
187
+ timeout: z.number().optional().describe("Build timeout in minutes (5-540)"),
188
+ envVars: z.array(z.object({ key: z.string(), value: z.string() })).optional().describe("Build environment variables"),
189
+ preBuildCommands: z.array(z.string()).optional().describe("Pre-build commands"),
190
+ buildCommands: z.array(z.string()).optional().describe("Build commands"),
191
+ postBuildCommands: z.array(z.string()).optional().describe("Post-build commands"),
192
+ dockerbuildUse: z.boolean().optional().describe("Enable Docker image build"),
193
+ dockerbuildDockerfile: z.string().optional().describe("Dockerfile path"),
194
+ dockerbuildRegistry: z.string().optional().describe("Docker build target registry"),
195
+ dockerbuildImage: z.string().optional().describe("Docker build image name"),
196
+ dockerbuildTag: z.string().optional().describe("Docker build image tag"),
197
+ dockerbuildLatest: z.boolean().optional().describe("Set latest tag"),
198
+ artifactUse: z.boolean().optional().describe("Save build artifacts"),
199
+ artifactPath: z.array(z.string()).optional().describe("Artifact paths"),
200
+ artifactBucket: z.string().optional().describe("Object Storage bucket"),
201
+ artifactStoragePath: z.string().optional().describe("Path within bucket"),
202
+ artifactFilename: z.string().optional().describe("Artifact filename"),
203
+ artifactBackup: z.boolean().optional().describe("Backup artifacts"),
204
+ cacheUse: z.boolean().optional().describe("Save build image"),
205
+ cacheRegistry: z.string().optional().describe("Cache registry"),
206
+ cacheImage: z.string().optional().describe("Cache image name"),
207
+ cacheTag: z.string().optional().describe("Cache image tag"),
208
+ cacheLatest: z.boolean().optional().describe("Set latest tag for cache"),
209
+ linkedCloudLogAnalytics: z.boolean().optional().describe("Cloud Log Analytics integration"),
210
+ linkedFileSafer: z.boolean().optional().describe("File Safer integration"),
211
+ }, async (params) => {
212
+ try {
213
+ const body = {};
214
+ if (params.description !== undefined)
215
+ body.description = params.description;
216
+ // Source
217
+ if (params.sourceType || params.repository || params.branch) {
218
+ body.source = {
219
+ ...(params.sourceType ? { type: params.sourceType } : {}),
220
+ ...(params.repository || params.branch ? {
221
+ config: {
222
+ ...(params.repository ? { repository: params.repository } : {}),
223
+ ...(params.branch ? { branch: params.branch } : {}),
224
+ },
225
+ } : {}),
226
+ };
227
+ }
228
+ // Env
229
+ const env = {};
230
+ if (params.computeId !== undefined)
231
+ env.compute = { id: params.computeId };
232
+ if (params.platformType) {
233
+ const platformConfig = {};
234
+ if (params.platformType === "SourceBuild") {
235
+ if (params.osId !== undefined)
236
+ platformConfig.os = { id: params.osId };
237
+ if (params.runtimeId !== undefined) {
238
+ const runtime = { id: params.runtimeId };
239
+ if (params.runtimeVersionId !== undefined)
240
+ runtime.version = { id: params.runtimeVersionId };
241
+ platformConfig.runtime = runtime;
242
+ }
243
+ }
244
+ else {
245
+ if (params.registryName)
246
+ platformConfig.registry = { name: params.registryName };
247
+ if (params.image)
248
+ platformConfig.image = params.image;
249
+ if (params.tag)
250
+ platformConfig.tag = params.tag;
251
+ }
252
+ env.platform = { type: params.platformType, config: platformConfig };
253
+ }
254
+ if (params.dockerUse !== undefined) {
255
+ env.docker = { use: params.dockerUse, ...(params.dockerUse && params.dockerId ? { id: params.dockerId } : {}) };
256
+ }
257
+ if (params.timeout !== undefined)
258
+ env.timeout = params.timeout;
259
+ if (params.envVars !== undefined)
260
+ env.envVars = params.envVars;
261
+ if (Object.keys(env).length > 0)
262
+ body.env = env;
263
+ // Cmd
264
+ const cmd = {};
265
+ if (params.preBuildCommands !== undefined)
266
+ cmd.pre = params.preBuildCommands;
267
+ if (params.buildCommands !== undefined)
268
+ cmd.build = params.buildCommands;
269
+ if (params.postBuildCommands !== undefined)
270
+ cmd.post = params.postBuildCommands;
271
+ if (params.dockerbuildUse !== undefined) {
272
+ cmd.dockerbuild = {
273
+ use: params.dockerbuildUse,
274
+ ...(params.dockerbuildUse ? {
275
+ dockerfile: params.dockerbuildDockerfile ?? "",
276
+ registry: params.dockerbuildRegistry ?? "",
277
+ image: params.dockerbuildImage ?? "",
278
+ tag: params.dockerbuildTag ?? "",
279
+ latest: params.dockerbuildLatest ?? false,
280
+ } : {}),
281
+ };
282
+ }
283
+ if (Object.keys(cmd).length > 0)
284
+ body.cmd = cmd;
285
+ // Artifact
286
+ if (params.artifactUse !== undefined) {
287
+ body.artifact = {
288
+ use: params.artifactUse,
289
+ ...(params.artifactUse ? {
290
+ path: params.artifactPath ?? [],
291
+ storage: {
292
+ bucket: params.artifactBucket ?? "",
293
+ path: params.artifactStoragePath ?? "",
294
+ filename: params.artifactFilename ?? "",
295
+ },
296
+ backup: params.artifactBackup ?? false,
297
+ } : {}),
298
+ };
299
+ }
300
+ // Cache
301
+ if (params.cacheUse !== undefined) {
302
+ body.cache = {
303
+ use: params.cacheUse,
304
+ ...(params.cacheUse ? {
305
+ registry: params.cacheRegistry ?? "",
306
+ image: params.cacheImage ?? "",
307
+ tag: params.cacheTag ?? "",
308
+ latest: params.cacheLatest ?? false,
309
+ } : {}),
310
+ };
311
+ }
312
+ // Linked
313
+ if (params.linkedCloudLogAnalytics !== undefined || params.linkedFileSafer !== undefined) {
314
+ body.linked = {
315
+ ...(params.linkedCloudLogAnalytics !== undefined ? { CloudLogAnalytics: params.linkedCloudLogAnalytics } : {}),
316
+ ...(params.linkedFileSafer !== undefined ? { FileSafer: params.linkedFileSafer } : {}),
317
+ };
318
+ }
319
+ const result = await client.requestRaw("PATCH", `/api/v1/project/${encodeURIComponent(params.projectId)}`, undefined, body);
320
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
321
+ }
322
+ catch (error) {
323
+ return { content: [{ type: "text", text: error.message }], isError: true };
324
+ }
325
+ });
326
+ server.tool("ncloud_sourcebuild_delete_project", "⚠️ Destructive: Permanently delete a SourceBuild project and all its build history. Set confirm=true to execute.", {
327
+ projectId: z.string().describe("Project ID to delete"),
328
+ confirm: z.boolean().default(false).describe("Must be true to execute the destructive operation"),
329
+ }, async (params) => {
330
+ try {
331
+ if (!params.confirm) {
332
+ return {
333
+ content: [{
334
+ type: "text",
335
+ text: `⚠️ This will permanently delete SourceBuild project [${params.projectId}] and all build history.\n\nTo execute, call again with confirm=true.`,
336
+ }],
337
+ };
338
+ }
339
+ const result = await client.requestRaw("DELETE", `/api/v1/project/${encodeURIComponent(params.projectId)}`);
340
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
341
+ }
342
+ catch (error) {
343
+ return { content: [{ type: "text", text: error.message }], isError: true };
344
+ }
345
+ });
346
+ // ─── Build Execution ───────────────────────────────────────────────────────
347
+ server.tool("ncloud_sourcebuild_start_build", "Start a build for a SourceBuild project", {
348
+ projectId: z.string().describe("Project ID to build"),
349
+ }, async (params) => {
350
+ try {
351
+ const result = await client.requestRaw("POST", `/api/v1/project/${encodeURIComponent(params.projectId)}/build`);
352
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
353
+ }
354
+ catch (error) {
355
+ return { content: [{ type: "text", text: error.message }], isError: true };
356
+ }
357
+ });
358
+ server.tool("ncloud_sourcebuild_get_build_history", "Get build history for a SourceBuild project", {
359
+ projectId: z.string().describe("Project ID to query build history"),
360
+ }, async (params) => {
361
+ try {
362
+ const result = await client.requestRaw("GET", `/api/v1/project/${encodeURIComponent(params.projectId)}/history`);
363
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
364
+ }
365
+ catch (error) {
366
+ return { content: [{ type: "text", text: error.message }], isError: true };
367
+ }
368
+ });
369
+ server.tool("ncloud_sourcebuild_cancel_build", "⚠️ Destructive: Cancel a running SourceBuild build. Set confirm=true to execute.", {
370
+ projectId: z.string().describe("Project ID"),
371
+ buildId: z.string().describe("Build ID to cancel (from build history)"),
372
+ confirm: z.boolean().default(false).describe("Must be true to execute the cancel operation"),
373
+ }, async (params) => {
374
+ try {
375
+ if (!params.confirm) {
376
+ return {
377
+ content: [{
378
+ type: "text",
379
+ text: `⚠️ This will cancel build [${params.buildId}] of project [${params.projectId}].\n\nTo execute, call again with confirm=true.`,
380
+ }],
381
+ };
382
+ }
383
+ const result = await client.requestRaw("DELETE", `/api/v1/project/${encodeURIComponent(params.projectId)}/build`, undefined, { buildId: params.buildId });
384
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
385
+ }
386
+ catch (error) {
387
+ return { content: [{ type: "text", text: error.message }], isError: true };
388
+ }
389
+ });
390
+ // ─── Build Environment Query ───────────────────────────────────────────────
391
+ server.tool("ncloud_sourcebuild_list_os", "List available operating systems for SourceBuild build environment", {}, async () => {
392
+ try {
393
+ const result = await client.requestRaw("GET", "/api/v1/env/os");
394
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
395
+ }
396
+ catch (error) {
397
+ return { content: [{ type: "text", text: error.message }], isError: true };
398
+ }
399
+ });
400
+ server.tool("ncloud_sourcebuild_list_compute", "List available compute types for SourceBuild build environment", {}, async () => {
401
+ try {
402
+ const result = await client.requestRaw("GET", "/api/v1/env/compute");
403
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
404
+ }
405
+ catch (error) {
406
+ return { content: [{ type: "text", text: error.message }], isError: true };
407
+ }
408
+ });
409
+ server.tool("ncloud_sourcebuild_list_runtimes", "List available runtime types for a specific OS in SourceBuild", {
410
+ osId: z.string().describe("OS ID (from list_os)"),
411
+ }, async (params) => {
412
+ try {
413
+ const result = await client.requestRaw("GET", `/api/v1/env/os/${encodeURIComponent(params.osId)}/runtime`);
414
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
415
+ }
416
+ catch (error) {
417
+ return { content: [{ type: "text", text: error.message }], isError: true };
418
+ }
419
+ });
420
+ server.tool("ncloud_sourcebuild_list_runtime_versions", "List available runtime versions for a specific OS and runtime in SourceBuild", {
421
+ osId: z.string().describe("OS ID (from list_os)"),
422
+ runtimeId: z.string().describe("Runtime type ID (from list_runtimes)"),
423
+ }, async (params) => {
424
+ try {
425
+ const result = await client.requestRaw("GET", `/api/v1/env/os/${encodeURIComponent(params.osId)}/runtime/${encodeURIComponent(params.runtimeId)}/version`);
426
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
427
+ }
428
+ catch (error) {
429
+ return { content: [{ type: "text", text: error.message }], isError: true };
430
+ }
431
+ });
432
+ server.tool("ncloud_sourcebuild_list_docker_engines", "List available Docker engine versions for SourceBuild", {}, async () => {
433
+ try {
434
+ const result = await client.requestRaw("GET", "/api/v1/env/docker");
435
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
436
+ }
437
+ catch (error) {
438
+ return { content: [{ type: "text", text: error.message }], isError: true };
439
+ }
440
+ });
441
+ // ─── Linked Service Query ──────────────────────────────────────────────────
442
+ server.tool("ncloud_sourcebuild_list_repositories", "List SourceCommit repositories available for SourceBuild", {}, async () => {
443
+ try {
444
+ const result = await client.requestRaw("GET", "/api/v1/sourcecommit/repository");
445
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
446
+ }
447
+ catch (error) {
448
+ return { content: [{ type: "text", text: error.message }], isError: true };
449
+ }
450
+ });
451
+ server.tool("ncloud_sourcebuild_list_branches", "List branches of a SourceCommit repository", {
452
+ repositoryName: z.string().describe("Repository name (from list_repositories)"),
453
+ }, async (params) => {
454
+ try {
455
+ const result = await client.requestRaw("GET", `/api/v1/sourcecommit/repository/${encodeURIComponent(params.repositoryName)}/branch`);
456
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
457
+ }
458
+ catch (error) {
459
+ return { content: [{ type: "text", text: error.message }], isError: true };
460
+ }
461
+ });
462
+ server.tool("ncloud_sourcebuild_list_buckets", "List Object Storage buckets available for SourceBuild artifact storage", {}, async () => {
463
+ try {
464
+ const result = await client.requestRaw("GET", "/api/v1/objectstorage/bucket");
465
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
466
+ }
467
+ catch (error) {
468
+ return { content: [{ type: "text", text: error.message }], isError: true };
469
+ }
470
+ });
471
+ server.tool("ncloud_sourcebuild_list_registries", "List Container Registry registries available for SourceBuild", {}, async () => {
472
+ try {
473
+ const result = await client.requestRaw("GET", "/api/v1/containerregistry/registry");
474
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
475
+ }
476
+ catch (error) {
477
+ return { content: [{ type: "text", text: error.message }], isError: true };
478
+ }
479
+ });
480
+ }
481
+ //# sourceMappingURL=sourcebuild.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourcebuild.js","sourceRoot":"","sources":["../../src/tools/sourcebuild.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { NcloudClient } from "../client/ncloud-client.js";
3
+ /**
4
+ * SourceCommit API Tools
5
+ *
6
+ * Base URL: https://sourcecommit.apigw.ntruss.com
7
+ * API Style: RESTful (POST/GET/PATCH/DELETE with JSON body)
8
+ * Auth Headers: x-ncp-apigw-timestamp, x-ncp-iam-access-key, x-ncp-apigw-signature-v2
9
+ *
10
+ * Note: SourceCommit uses standard REST methods, NOT the legacy Ncloud GET-with-query style.
11
+ * Therefore we use client.requestRaw() to avoid adding responseFormatType/regionCode params.
12
+ */
13
+ export declare function registerSourceCommitTools(server: McpServer, client: NcloudClient): void;