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,240 @@
1
+ import { z } from "zod";
2
+ export function registerSensTools(server, client) {
3
+ const smsServiceId = process.env.NCLOUD_SENS_SMS_SERVICE_ID ?? process.env.NCLOUD_SENS_SERVICE_ID ?? "";
4
+ const alimtalkServiceId = process.env.NCLOUD_SENS_ALIMTALK_SERVICE_ID ?? process.env.NCLOUD_SENS_SERVICE_ID ?? "";
5
+ const pushServiceId = process.env.NCLOUD_SENS_PUSH_SERVICE_ID ?? process.env.NCLOUD_SENS_SERVICE_ID ?? "";
6
+ // ─── SMS Tools ─────────────────────────────────────────────────────────────
7
+ server.tool("ncloud_sens_send_sms", "Send SMS/LMS/MMS message via SENS. Requires NCLOUD_SENS_SERVICE_ID or NCLOUD_SENS_SMS_SERVICE_ID environment variable.", {
8
+ type: z.enum(["SMS", "LMS", "MMS"]).describe("Message type: SMS (short), LMS (long), MMS (multimedia)"),
9
+ from: z.string({ required_error: "필수 파라미터 'from'이 누락되었습니다." }).describe("Caller ID (registered phone number, numbers only)"),
10
+ content: z.string({ required_error: "필수 파라미터 'content'이 누락되었습니다." }).describe("Default message content (SMS: 0-90 bytes, LMS/MMS: 0-2000 bytes)"),
11
+ messages: z.array(z.object({
12
+ to: z.string().describe("Recipient phone number (numbers only)"),
13
+ subject: z.string().optional().describe("Individual message subject (LMS/MMS only, 0-40 bytes)"),
14
+ content: z.string().optional().describe("Individual message content (overrides default content)"),
15
+ })).describe("Array of message recipients (up to 100)"),
16
+ contentType: z.enum(["COMM", "AD"]).optional().describe("Content type: COMM (general, default) or AD (advertisement)"),
17
+ countryCode: z.string().optional().describe("Country code (default: 82 for Korea)"),
18
+ subject: z.string().optional().describe("Default message subject (LMS/MMS only, 0-40 bytes)"),
19
+ reserveTime: z.string().optional().describe("Reserved send time (YYYY-MM-DD HH:mm format)"),
20
+ reserveTimeZone: z.string().optional().describe("Reserved time zone (default: Asia/Seoul)"),
21
+ }, async (params) => {
22
+ try {
23
+ if (!smsServiceId) {
24
+ return { content: [{ type: "text", text: "Error: NCLOUD_SENS_SERVICE_ID 또는 NCLOUD_SENS_SMS_SERVICE_ID 환경 변수가 설정되지 않았습니다." }], isError: true };
25
+ }
26
+ const body = {
27
+ type: params.type,
28
+ from: params.from,
29
+ content: params.content,
30
+ messages: params.messages,
31
+ };
32
+ if (params.contentType)
33
+ body.contentType = params.contentType;
34
+ if (params.countryCode)
35
+ body.countryCode = params.countryCode;
36
+ if (params.subject)
37
+ body.subject = params.subject;
38
+ if (params.reserveTime)
39
+ body.reserveTime = params.reserveTime;
40
+ if (params.reserveTimeZone)
41
+ body.reserveTimeZone = params.reserveTimeZone;
42
+ const result = await client.postRequest(`/sms/v2/services/${encodeURIComponent(smsServiceId)}/messages`, body);
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
+ server.tool("ncloud_sens_get_sms_status", "Get SMS message delivery result by message ID. Requires NCLOUD_SENS_SERVICE_ID or NCLOUD_SENS_SMS_SERVICE_ID environment variable.", {
50
+ messageId: z.string({ required_error: "필수 파라미터 'messageId'가 누락되었습니다." }).describe("Message ID to check delivery status"),
51
+ }, async (params) => {
52
+ try {
53
+ if (!smsServiceId) {
54
+ return { content: [{ type: "text", text: "Error: NCLOUD_SENS_SERVICE_ID 또는 NCLOUD_SENS_SMS_SERVICE_ID 환경 변수가 설정되지 않았습니다." }], isError: true };
55
+ }
56
+ const result = await client.request(`/sms/v2/services/${encodeURIComponent(smsServiceId)}/messages/${encodeURIComponent(params.messageId)}`);
57
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
58
+ }
59
+ catch (error) {
60
+ return { content: [{ type: "text", text: error.message }], isError: true };
61
+ }
62
+ });
63
+ server.tool("ncloud_sens_list_sms_requests", "Get SMS message delivery request list (within last 90 days). Requires NCLOUD_SENS_SERVICE_ID or NCLOUD_SENS_SMS_SERVICE_ID environment variable.", {
64
+ requestId: z.string().optional().describe("Request ID (conditional: one of requestId, requestStartTime+requestEndTime, or completeStartTime+completeEndTime required)"),
65
+ requestStartTime: z.string().optional().describe("Query start time based on delivery request (YYYY-MM-DD HH:mm:ss format)"),
66
+ requestEndTime: z.string().optional().describe("Query end time based on delivery request (within 30 days of requestStartTime)"),
67
+ completeStartTime: z.string().optional().describe("Query start time based on delivery completion (YYYY-MM-DD HH:mm:ss format)"),
68
+ completeEndTime: z.string().optional().describe("Query end time based on delivery completion (within 24 hours of completeStartTime)"),
69
+ messageId: z.string().optional().describe("Filter by message ID"),
70
+ type: z.enum(["SMS", "LMS", "MMS"]).optional().describe("Filter by message type"),
71
+ status: z.enum(["READY", "PROCESSING", "COMPLETED"]).optional().describe("Filter by request status"),
72
+ statusName: z.enum(["success", "fail"]).optional().describe("Filter by reception status"),
73
+ from: z.string().optional().describe("Filter by caller ID (numbers only)"),
74
+ to: z.string().optional().describe("Filter by recipient number (numbers only)"),
75
+ pageSize: z.number().optional().describe("Number of items per page (1-100, default: 20)"),
76
+ nextToken: z.string().optional().describe("Page location token for pagination"),
77
+ }, async (params) => {
78
+ try {
79
+ if (!smsServiceId) {
80
+ return { content: [{ type: "text", text: "Error: NCLOUD_SENS_SERVICE_ID 또는 NCLOUD_SENS_SMS_SERVICE_ID 환경 변수가 설정되지 않았습니다." }], isError: true };
81
+ }
82
+ const apiParams = {};
83
+ if (params.requestId)
84
+ apiParams.requestId = params.requestId;
85
+ if (params.requestStartTime)
86
+ apiParams.requestStartTime = params.requestStartTime;
87
+ if (params.requestEndTime)
88
+ apiParams.requestEndTime = params.requestEndTime;
89
+ if (params.completeStartTime)
90
+ apiParams.completeStartTime = params.completeStartTime;
91
+ if (params.completeEndTime)
92
+ apiParams.completeEndTime = params.completeEndTime;
93
+ if (params.messageId)
94
+ apiParams.messageId = params.messageId;
95
+ if (params.type)
96
+ apiParams.type = params.type;
97
+ if (params.status)
98
+ apiParams.status = params.status;
99
+ if (params.statusName)
100
+ apiParams.statusName = params.statusName;
101
+ if (params.from)
102
+ apiParams.from = params.from;
103
+ if (params.to)
104
+ apiParams.to = params.to;
105
+ if (params.pageSize !== undefined)
106
+ apiParams.pageSize = String(params.pageSize);
107
+ if (params.nextToken)
108
+ apiParams.nextToken = params.nextToken;
109
+ const result = await client.request(`/sms/v2/services/${encodeURIComponent(smsServiceId)}/messages`, apiParams);
110
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
111
+ }
112
+ catch (error) {
113
+ return { content: [{ type: "text", text: error.message }], isError: true };
114
+ }
115
+ });
116
+ // ─── AlimTalk Tools ────────────────────────────────────────────────────────
117
+ server.tool("ncloud_sens_send_alimtalk", "Send Alim Talk (KakaoTalk notification) message via SENS. Requires NCLOUD_SENS_SERVICE_ID or NCLOUD_SENS_ALIMTALK_SERVICE_ID environment variable.", {
118
+ plusFriendId: z.string({ required_error: "필수 파라미터 'plusFriendId'가 누락되었습니다." }).describe("KakaoTalk Channel ID (e.g., @channelname)"),
119
+ templateCode: z.string({ required_error: "필수 파라미터 'templateCode'가 누락되었습니다." }).describe("Approved template code"),
120
+ messages: z.array(z.object({
121
+ to: z.string().describe("Recipient phone number (numbers only)"),
122
+ content: z.string().describe("Message content (must match template)"),
123
+ countryCode: z.string().optional().describe("Country code (default: 82)"),
124
+ title: z.string().optional().describe("Highlight title (highlight-type templates only)"),
125
+ buttons: z.array(z.object({
126
+ type: z.enum(["DS", "WL", "AL", "BK", "MD", "AC"]).describe("Button type"),
127
+ name: z.string().describe("Button name"),
128
+ linkMobile: z.string().optional().describe("Mobile web link (required for WL type)"),
129
+ linkPc: z.string().optional().describe("PC web link (required for WL type)"),
130
+ schemeIos: z.string().optional().describe("iOS app link (required for AL type)"),
131
+ schemeAndroid: z.string().optional().describe("Android app link (required for AL type)"),
132
+ })).optional().describe("Button list (must match template)"),
133
+ useSmsFailover: z.boolean().optional().describe("Enable SMS failover delivery"),
134
+ failoverConfig: z.object({
135
+ type: z.enum(["SMS", "LMS"]).optional().describe("Failover message type"),
136
+ from: z.string().optional().describe("Failover caller ID"),
137
+ subject: z.string().optional().describe("Failover message subject (LMS only)"),
138
+ content: z.string().optional().describe("Failover message content"),
139
+ }).optional().describe("SMS failover configuration"),
140
+ })).describe("Array of message recipients (up to 100)"),
141
+ reserveTime: z.string().optional().describe("Reserved send time (YYYY-MM-DD HH:mm format)"),
142
+ reserveTimeZone: z.string().optional().describe("Reserved time zone (default: Asia/Seoul)"),
143
+ }, async (params) => {
144
+ try {
145
+ if (!alimtalkServiceId) {
146
+ return { content: [{ type: "text", text: "Error: NCLOUD_SENS_SERVICE_ID 또는 NCLOUD_SENS_ALIMTALK_SERVICE_ID 환경 변수가 설정되지 않았습니다." }], isError: true };
147
+ }
148
+ const body = {
149
+ plusFriendId: params.plusFriendId,
150
+ templateCode: params.templateCode,
151
+ messages: params.messages,
152
+ };
153
+ if (params.reserveTime)
154
+ body.reserveTime = params.reserveTime;
155
+ if (params.reserveTimeZone)
156
+ body.reserveTimeZone = params.reserveTimeZone;
157
+ const result = await client.postRequest(`/alimtalk/v2/services/${encodeURIComponent(alimtalkServiceId)}/messages`, body);
158
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
159
+ }
160
+ catch (error) {
161
+ return { content: [{ type: "text", text: error.message }], isError: true };
162
+ }
163
+ });
164
+ server.tool("ncloud_sens_list_alimtalk_templates", "List registered Alim Talk templates. Requires NCLOUD_SENS_SERVICE_ID or NCLOUD_SENS_ALIMTALK_SERVICE_ID environment variable.", {
165
+ channelId: z.string({ required_error: "필수 파라미터 'channelId'가 누락되었습니다." }).describe("KakaoTalk Channel ID (e.g., @channelname)"),
166
+ templateCode: z.string().optional().describe("Template code (if provided, returns template details including inspection info)"),
167
+ templateName: z.string().optional().describe("Template name filter (partial match)"),
168
+ pageSize: z.number().optional().describe("Number of items per page (1-100, default: 100)"),
169
+ pageIndex: z.number().optional().describe("Page index (0-N, default: 0)"),
170
+ }, async (params) => {
171
+ try {
172
+ if (!alimtalkServiceId) {
173
+ return { content: [{ type: "text", text: "Error: NCLOUD_SENS_SERVICE_ID 또는 NCLOUD_SENS_ALIMTALK_SERVICE_ID 환경 변수가 설정되지 않았습니다." }], isError: true };
174
+ }
175
+ const apiParams = {
176
+ channelId: params.channelId,
177
+ };
178
+ if (params.templateCode)
179
+ apiParams.templateCode = params.templateCode;
180
+ if (params.templateName)
181
+ apiParams.templateName = params.templateName;
182
+ if (params.pageSize !== undefined)
183
+ apiParams.pageSize = String(params.pageSize);
184
+ if (params.pageIndex !== undefined)
185
+ apiParams.pageIndex = String(params.pageIndex);
186
+ const result = await client.request(`/alimtalk/v2/services/${encodeURIComponent(alimtalkServiceId)}/templates`, apiParams);
187
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
188
+ }
189
+ catch (error) {
190
+ return { content: [{ type: "text", text: error.message }], isError: true };
191
+ }
192
+ });
193
+ // ─── Push Notification Tool ────────────────────────────────────────────────
194
+ server.tool("ncloud_sens_send_push", "Send push notification via SENS. Requires NCLOUD_SENS_SERVICE_ID or NCLOUD_SENS_PUSH_SERVICE_ID environment variable.", {
195
+ target: z.object({
196
+ type: z.enum(["ALL", "USER", "TOPIC"]).describe("Target type: ALL (all devices), USER (specific users), TOPIC (topic subscribers)"),
197
+ to: z.array(z.string()).optional().describe("Target user IDs or topic names (required for USER/TOPIC type)"),
198
+ country: z.string().optional().describe("Target country code filter"),
199
+ }).describe("Push notification target"),
200
+ message: z.object({
201
+ default: z.object({
202
+ title: z.string().optional().describe("Notification title"),
203
+ body: z.string().describe("Notification body text"),
204
+ custom: z.record(z.string()).optional().describe("Custom key-value data payload"),
205
+ }).describe("Default message content"),
206
+ apns: z.object({
207
+ title: z.string().optional().describe("iOS notification title"),
208
+ body: z.string().optional().describe("iOS notification body"),
209
+ custom: z.record(z.string()).optional().describe("iOS custom data payload"),
210
+ }).optional().describe("iOS-specific message (overrides default)"),
211
+ gcm: z.object({
212
+ title: z.string().optional().describe("Android notification title"),
213
+ body: z.string().optional().describe("Android notification body"),
214
+ custom: z.record(z.string()).optional().describe("Android custom data payload"),
215
+ }).optional().describe("Android-specific message (overrides default)"),
216
+ }).describe("Push notification message content"),
217
+ reserveTime: z.string().optional().describe("Reserved send time (YYYY-MM-DD HH:mm format)"),
218
+ reserveTimeZone: z.string().optional().describe("Reserved time zone (default: Asia/Seoul)"),
219
+ }, async (params) => {
220
+ try {
221
+ if (!pushServiceId) {
222
+ return { content: [{ type: "text", text: "Error: NCLOUD_SENS_SERVICE_ID 또는 NCLOUD_SENS_PUSH_SERVICE_ID 환경 변수가 설정되지 않았습니다." }], isError: true };
223
+ }
224
+ const body = {
225
+ target: params.target,
226
+ message: params.message,
227
+ };
228
+ if (params.reserveTime)
229
+ body.reserveTime = params.reserveTime;
230
+ if (params.reserveTimeZone)
231
+ body.reserveTimeZone = params.reserveTimeZone;
232
+ const result = await client.postRequest(`/push/v2/services/${encodeURIComponent(pushServiceId)}/messages`, body);
233
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
234
+ }
235
+ catch (error) {
236
+ return { content: [{ type: "text", text: error.message }], isError: true };
237
+ }
238
+ });
239
+ }
240
+ //# sourceMappingURL=sens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sens.js","sourceRoot":"","sources":["../../src/tools/sens.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 registerSourceBuildTools(server: McpServer, client: NcloudClient): void;