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.
- package/LICENSE +21 -0
- package/README.md +159 -0
- package/README_EN.md +159 -0
- package/dist/auth/signature.d.ts +16 -0
- package/dist/auth/signature.js +18 -0
- package/dist/auth/signature.js.map +1 -0
- package/dist/auth/signature.test.d.ts +1 -0
- package/dist/auth/signature.test.js +90 -0
- package/dist/auth/signature.test.js.map +1 -0
- package/dist/client/ncloud-client.d.ts +27 -0
- package/dist/client/ncloud-client.js +270 -0
- package/dist/client/ncloud-client.js.map +1 -0
- package/dist/client/ncloud-client.test.d.ts +1 -0
- package/dist/client/ncloud-client.test.js +477 -0
- package/dist/client/ncloud-client.test.js.map +1 -0
- package/dist/client/s3-compatible-client.d.ts +49 -0
- package/dist/client/s3-compatible-client.js +210 -0
- package/dist/client/s3-compatible-client.js.map +1 -0
- package/dist/client/swift-compatible-client.d.ts +68 -0
- package/dist/client/swift-compatible-client.js +173 -0
- package/dist/client/swift-compatible-client.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +362 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/acg.d.ts +3 -0
- package/dist/tools/acg.js +220 -0
- package/dist/tools/acg.js.map +1 -0
- package/dist/tools/activity-tracer.d.ts +3 -0
- package/dist/tools/activity-tracer.js +77 -0
- package/dist/tools/activity-tracer.js.map +1 -0
- package/dist/tools/analytics-cdss.d.ts +3 -0
- package/dist/tools/analytics-cdss.js +618 -0
- package/dist/tools/analytics-cdss.js.map +1 -0
- package/dist/tools/analytics-datacatalog.d.ts +10 -0
- package/dist/tools/analytics-datacatalog.js +409 -0
- package/dist/tools/analytics-datacatalog.js.map +1 -0
- package/dist/tools/analytics-dataflow.d.ts +16 -0
- package/dist/tools/analytics-dataflow.js +478 -0
- package/dist/tools/analytics-dataflow.js.map +1 -0
- package/dist/tools/analytics-dataforest.d.ts +10 -0
- package/dist/tools/analytics-dataforest.js +379 -0
- package/dist/tools/analytics-dataforest.js.map +1 -0
- package/dist/tools/analytics-dataquery.d.ts +16 -0
- package/dist/tools/analytics-dataquery.js +143 -0
- package/dist/tools/analytics-dataquery.js.map +1 -0
- package/dist/tools/analytics-datastream.d.ts +13 -0
- package/dist/tools/analytics-datastream.js +359 -0
- package/dist/tools/analytics-datastream.js.map +1 -0
- package/dist/tools/analytics-hadoop.d.ts +12 -0
- package/dist/tools/analytics-hadoop.js +450 -0
- package/dist/tools/analytics-hadoop.js.map +1 -0
- package/dist/tools/analytics-ses.d.ts +3 -0
- package/dist/tools/analytics-ses.js +653 -0
- package/dist/tools/analytics-ses.js.map +1 -0
- package/dist/tools/api-gateway.d.ts +3 -0
- package/dist/tools/api-gateway.js +202 -0
- package/dist/tools/api-gateway.js.map +1 -0
- package/dist/tools/autoscaling.d.ts +3 -0
- package/dist/tools/autoscaling.js +430 -0
- package/dist/tools/autoscaling.js.map +1 -0
- package/dist/tools/billing.d.ts +14 -0
- package/dist/tools/billing.js +545 -0
- package/dist/tools/billing.js.map +1 -0
- package/dist/tools/certificate-manager.d.ts +18 -0
- package/dist/tools/certificate-manager.js +84 -0
- package/dist/tools/certificate-manager.js.map +1 -0
- package/dist/tools/cloud-advisor.d.ts +3 -0
- package/dist/tools/cloud-advisor.js +202 -0
- package/dist/tools/cloud-advisor.js.map +1 -0
- package/dist/tools/cloud-functions.d.ts +3 -0
- package/dist/tools/cloud-functions.js +497 -0
- package/dist/tools/cloud-functions.js.map +1 -0
- package/dist/tools/cloud-insight-integration.d.ts +3 -0
- package/dist/tools/cloud-insight-integration.js +90 -0
- package/dist/tools/cloud-insight-integration.js.map +1 -0
- package/dist/tools/cloud-insight-plugin.d.ts +3 -0
- package/dist/tools/cloud-insight-plugin.js +600 -0
- package/dist/tools/cloud-insight-plugin.js.map +1 -0
- package/dist/tools/cloud-insight-rule.d.ts +3 -0
- package/dist/tools/cloud-insight-rule.js +570 -0
- package/dist/tools/cloud-insight-rule.js.map +1 -0
- package/dist/tools/cloud-insight.d.ts +3 -0
- package/dist/tools/cloud-insight.js +246 -0
- package/dist/tools/cloud-insight.js.map +1 -0
- package/dist/tools/common.d.ts +3 -0
- package/dist/tools/common.js +120 -0
- package/dist/tools/common.js.map +1 -0
- package/dist/tools/compute-initscript.d.ts +3 -0
- package/dist/tools/compute-initscript.js +62 -0
- package/dist/tools/compute-initscript.js.map +1 -0
- package/dist/tools/compute-loginkey.d.ts +3 -0
- package/dist/tools/compute-loginkey.js +59 -0
- package/dist/tools/compute-loginkey.js.map +1 -0
- package/dist/tools/compute-placement.d.ts +3 -0
- package/dist/tools/compute-placement.js +196 -0
- package/dist/tools/compute-placement.js.map +1 -0
- package/dist/tools/compute-publicip.d.ts +3 -0
- package/dist/tools/compute-publicip.js +97 -0
- package/dist/tools/compute-publicip.js.map +1 -0
- package/dist/tools/compute-server.d.ts +3 -0
- package/dist/tools/compute-server.js +445 -0
- package/dist/tools/compute-server.js.map +1 -0
- package/dist/tools/compute-server.test.d.ts +1 -0
- package/dist/tools/compute-server.test.js +224 -0
- package/dist/tools/compute-server.test.js.map +1 -0
- package/dist/tools/compute-storage.d.ts +3 -0
- package/dist/tools/compute-storage.js +240 -0
- package/dist/tools/compute-storage.js.map +1 -0
- package/dist/tools/containers-nks.d.ts +13 -0
- package/dist/tools/containers-nks.js +576 -0
- package/dist/tools/containers-nks.js.map +1 -0
- package/dist/tools/containers-registry.d.ts +3 -0
- package/dist/tools/containers-registry.js +181 -0
- package/dist/tools/containers-registry.js.map +1 -0
- package/dist/tools/database-cache.d.ts +3 -0
- package/dist/tools/database-cache.js +388 -0
- package/dist/tools/database-cache.js.map +1 -0
- package/dist/tools/database-mongodb.d.ts +3 -0
- package/dist/tools/database-mongodb.js +460 -0
- package/dist/tools/database-mongodb.js.map +1 -0
- package/dist/tools/database-mssql.d.ts +3 -0
- package/dist/tools/database-mssql.js +345 -0
- package/dist/tools/database-mssql.js.map +1 -0
- package/dist/tools/database-mysql.d.ts +3 -0
- package/dist/tools/database-mysql.js +500 -0
- package/dist/tools/database-mysql.js.map +1 -0
- package/dist/tools/database-postgresql.d.ts +3 -0
- package/dist/tools/database-postgresql.js +432 -0
- package/dist/tools/database-postgresql.js.map +1 -0
- package/dist/tools/global-dns.d.ts +3 -0
- package/dist/tools/global-dns.js +207 -0
- package/dist/tools/global-dns.js.map +1 -0
- package/dist/tools/global-edge.d.ts +3 -0
- package/dist/tools/global-edge.js +386 -0
- package/dist/tools/global-edge.js.map +1 -0
- package/dist/tools/global-traffic-manager.d.ts +3 -0
- package/dist/tools/global-traffic-manager.js +497 -0
- package/dist/tools/global-traffic-manager.js.map +1 -0
- package/dist/tools/index.d.ts +63 -0
- package/dist/tools/index.js +64 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/kms.d.ts +8 -0
- package/dist/tools/kms.js +529 -0
- package/dist/tools/kms.js.map +1 -0
- package/dist/tools/loadbalancer.d.ts +3 -0
- package/dist/tools/loadbalancer.js +341 -0
- package/dist/tools/loadbalancer.js.map +1 -0
- package/dist/tools/log-analytics.d.ts +3 -0
- package/dist/tools/log-analytics.js +183 -0
- package/dist/tools/log-analytics.js.map +1 -0
- package/dist/tools/media-imageoptimizer.d.ts +3 -0
- package/dist/tools/media-imageoptimizer.js +187 -0
- package/dist/tools/media-imageoptimizer.js.map +1 -0
- package/dist/tools/media-livestation.d.ts +3 -0
- package/dist/tools/media-livestation.js +252 -0
- package/dist/tools/media-livestation.js.map +1 -0
- package/dist/tools/media-vodstation.d.ts +3 -0
- package/dist/tools/media-vodstation.js +197 -0
- package/dist/tools/media-vodstation.js.map +1 -0
- package/dist/tools/nat-gateway.d.ts +3 -0
- package/dist/tools/nat-gateway.js +91 -0
- package/dist/tools/nat-gateway.js.map +1 -0
- package/dist/tools/network-acl.d.ts +3 -0
- package/dist/tools/network-acl.js +322 -0
- package/dist/tools/network-acl.js.map +1 -0
- package/dist/tools/network-interface.d.ts +3 -0
- package/dist/tools/network-interface.js +193 -0
- package/dist/tools/network-interface.js.map +1 -0
- package/dist/tools/private-ca.d.ts +8 -0
- package/dist/tools/private-ca.js +368 -0
- package/dist/tools/private-ca.js.map +1 -0
- package/dist/tools/resource-manager.d.ts +3 -0
- package/dist/tools/resource-manager.js +151 -0
- package/dist/tools/resource-manager.js.map +1 -0
- package/dist/tools/route-table.d.ts +3 -0
- package/dist/tools/route-table.js +205 -0
- package/dist/tools/route-table.js.map +1 -0
- package/dist/tools/security-monitoring.d.ts +3 -0
- package/dist/tools/security-monitoring.js +182 -0
- package/dist/tools/security-monitoring.js.map +1 -0
- package/dist/tools/sens.d.ts +3 -0
- package/dist/tools/sens.js +240 -0
- package/dist/tools/sens.js.map +1 -0
- package/dist/tools/sourcebuild.d.ts +3 -0
- package/dist/tools/sourcebuild.js +481 -0
- package/dist/tools/sourcebuild.js.map +1 -0
- package/dist/tools/sourcecommit.d.ts +13 -0
- package/dist/tools/sourcecommit.js +228 -0
- package/dist/tools/sourcecommit.js.map +1 -0
- package/dist/tools/sourcedeploy.d.ts +3 -0
- package/dist/tools/sourcedeploy.js +448 -0
- package/dist/tools/sourcedeploy.js.map +1 -0
- package/dist/tools/sourcepipeline.d.ts +12 -0
- package/dist/tools/sourcepipeline.js +357 -0
- package/dist/tools/sourcepipeline.js.map +1 -0
- package/dist/tools/storage-archive.d.ts +3 -0
- package/dist/tools/storage-archive.js +337 -0
- package/dist/tools/storage-archive.js.map +1 -0
- package/dist/tools/storage-nas.d.ts +3 -0
- package/dist/tools/storage-nas.js +288 -0
- package/dist/tools/storage-nas.js.map +1 -0
- package/dist/tools/storage-ncloud.d.ts +3 -0
- package/dist/tools/storage-ncloud.js +864 -0
- package/dist/tools/storage-ncloud.js.map +1 -0
- package/dist/tools/storage-object.d.ts +3 -0
- package/dist/tools/storage-object.js +982 -0
- package/dist/tools/storage-object.js.map +1 -0
- package/dist/tools/sub-account.d.ts +3 -0
- package/dist/tools/sub-account.js +311 -0
- package/dist/tools/sub-account.js.map +1 -0
- package/dist/tools/target-group.d.ts +3 -0
- package/dist/tools/target-group.js +207 -0
- package/dist/tools/target-group.js.map +1 -0
- package/dist/tools/vpc-peering.d.ts +3 -0
- package/dist/tools/vpc-peering.js +109 -0
- package/dist/tools/vpc-peering.js.map +1 -0
- package/dist/tools/vpc.d.ts +3 -0
- package/dist/tools/vpc.js +194 -0
- package/dist/tools/vpc.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,570 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export function registerCloudInsightRuleTools(server, client) {
|
|
3
|
+
// ncloud_list_rule_groups — Get event rule group list
|
|
4
|
+
server.tool("ncloud_list_rule_groups", "Get the list of Cloud Insight event rule groups for monitoring alerts.", {
|
|
5
|
+
prodKey: z.string({ required_error: "필수 파라미터 'prodKey'가 누락되었습니다." }).describe("Product key (cw_key) to filter rule groups (required)"),
|
|
6
|
+
pageSize: z.number({ required_error: "필수 파라미터 'pageSize'가 누락되었습니다." }).describe("Number of results per page (required)"),
|
|
7
|
+
pageNum: z.number({ required_error: "필수 파라미터 'pageNum'이 누락되었습니다." }).describe("Page number (required, starts from 1)"),
|
|
8
|
+
search: z.string().optional().describe("Search keyword to filter rule groups"),
|
|
9
|
+
}, async (params) => {
|
|
10
|
+
try {
|
|
11
|
+
const body = {
|
|
12
|
+
prodKey: params.prodKey,
|
|
13
|
+
pageSize: params.pageSize,
|
|
14
|
+
pageNum: params.pageNum,
|
|
15
|
+
};
|
|
16
|
+
if (params.search !== undefined)
|
|
17
|
+
body.search = params.search;
|
|
18
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/ruleGrp/query", body);
|
|
19
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
// ncloud_get_rule_group — Get details of a specific event rule group
|
|
26
|
+
server.tool("ncloud_get_rule_group", "Get detailed information about a specific Cloud Insight event rule group.", {
|
|
27
|
+
ruleGroupId: z.string().describe("Rule group ID to retrieve details for"),
|
|
28
|
+
}, async (params) => {
|
|
29
|
+
try {
|
|
30
|
+
const body = {
|
|
31
|
+
ruleGroupId: params.ruleGroupId,
|
|
32
|
+
};
|
|
33
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/detail", body);
|
|
34
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
// ncloud_create_rule_group — Create a new event rule group
|
|
41
|
+
server.tool("ncloud_create_rule_group", "Create a new Cloud Insight event rule group for monitoring alerts. Defines monitoring targets, metrics, thresholds, and notification recipients.", {
|
|
42
|
+
groupName: z.string().describe("Name of the rule group"),
|
|
43
|
+
prodKey: z.string().describe("Product key (cw_key) for the target service"),
|
|
44
|
+
metricsGroupId: z.string().describe("Metrics group ID (rule template) to apply"),
|
|
45
|
+
monitorGroupId: z.string().describe("Monitor group ID (target group) to monitor"),
|
|
46
|
+
recipientNotification: z.array(z.object({
|
|
47
|
+
notificationType: z.enum(["EMAIL", "SMS", "WEBHOOK"]).describe("Notification type"),
|
|
48
|
+
recipient: z.string().describe("Notification recipient (email, phone, or webhook URL)"),
|
|
49
|
+
})).optional().describe("Notification recipients for alerts"),
|
|
50
|
+
cfgRuleList: z.array(z.object({
|
|
51
|
+
metricGroupItemId: z.string().describe("Metric item ID"),
|
|
52
|
+
condition: z.enum(["GT", "GTE", "LT", "LTE", "EQ"]).describe("Threshold condition (GT: >, GTE: >=, LT: <, LTE: <=, EQ: ==)"),
|
|
53
|
+
threshold: z.number().describe("Threshold value"),
|
|
54
|
+
duration: z.number().describe("Duration in minutes before triggering alert"),
|
|
55
|
+
eventLevel: z.enum(["CRITICAL", "WARNING", "INFO"]).describe("Event severity level"),
|
|
56
|
+
aggregation: z.enum(["AVG", "MIN", "MAX", "SUM", "COUNT"]).optional().describe("Aggregation type (default: AVG)"),
|
|
57
|
+
})).describe("List of rule configurations defining alert conditions"),
|
|
58
|
+
dryRun: z.boolean().optional().describe("If true, returns a preview without creating the rule group (default: false)"),
|
|
59
|
+
}, async (params) => {
|
|
60
|
+
try {
|
|
61
|
+
if (params.dryRun) {
|
|
62
|
+
const preview = {
|
|
63
|
+
label: "📋 생성 예상 결과 (미리보기 - 실제 생성되지 않음)",
|
|
64
|
+
리소스타입: "Cloud Insight Rule Group",
|
|
65
|
+
그룹명: params.groupName,
|
|
66
|
+
대상서비스: params.prodKey,
|
|
67
|
+
메트릭그룹: params.metricsGroupId,
|
|
68
|
+
모니터그룹: params.monitorGroupId,
|
|
69
|
+
규칙수: params.cfgRuleList.length,
|
|
70
|
+
알림수신자: params.recipientNotification?.length ?? 0,
|
|
71
|
+
};
|
|
72
|
+
return { content: [{ type: "text", text: JSON.stringify(preview, null, 2) }] };
|
|
73
|
+
}
|
|
74
|
+
const body = {
|
|
75
|
+
groupName: params.groupName,
|
|
76
|
+
prodKey: params.prodKey,
|
|
77
|
+
metricsGroupId: params.metricsGroupId,
|
|
78
|
+
monitorGroupId: params.monitorGroupId,
|
|
79
|
+
cfgRuleList: params.cfgRuleList,
|
|
80
|
+
};
|
|
81
|
+
if (params.recipientNotification !== undefined)
|
|
82
|
+
body.recipientNotification = params.recipientNotification;
|
|
83
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/create", body);
|
|
84
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
// ncloud_delete_rule_group — Delete an event rule group
|
|
91
|
+
server.tool("ncloud_delete_rule_group", "⚠️ Destructive: Delete a Cloud Insight event rule group. This will permanently remove the rule group and stop all associated monitoring alerts.", {
|
|
92
|
+
ruleGroupId: z.string().describe("Rule group ID to delete"),
|
|
93
|
+
confirm: z.boolean().optional().describe("Must be true to execute deletion. If false or omitted, returns a confirmation prompt."),
|
|
94
|
+
}, async (params) => {
|
|
95
|
+
try {
|
|
96
|
+
if (!params.confirm) {
|
|
97
|
+
return {
|
|
98
|
+
content: [{
|
|
99
|
+
type: "text",
|
|
100
|
+
text: `⚠️ This will permanently delete Cloud Insight Rule Group [${params.ruleGroupId}]. All associated monitoring alerts will be stopped. Do you want to proceed? (yes/no)\n\nTo confirm, call this tool again with confirm=true.`,
|
|
101
|
+
}],
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
const body = {
|
|
105
|
+
ruleGroupId: params.ruleGroupId,
|
|
106
|
+
};
|
|
107
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/delete", body);
|
|
108
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
// ncloud_list_monitor_groups — Get monitoring target group list
|
|
115
|
+
server.tool("ncloud_list_monitor_groups", "Get the list of Cloud Insight monitoring target groups for a specific product.", {
|
|
116
|
+
prodKey: z.string({ required_error: "필수 파라미터 'prodKey'가 누락되었습니다." }).describe("Product key (cw_key) to get monitor groups for (required, use ncloud_get_schema_keys to find available keys)"),
|
|
117
|
+
}, async (params) => {
|
|
118
|
+
try {
|
|
119
|
+
const result = await client.requestRaw("GET", `/cw_fea/real/cw/api/rule/group/monitor/${encodeURIComponent(params.prodKey)}`);
|
|
120
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
// ncloud_list_metrics_groups — Get rule template (metrics group) list
|
|
127
|
+
server.tool("ncloud_list_metrics_groups", "Get the list of Cloud Insight rule templates (monitoring item groups / metrics groups).", {
|
|
128
|
+
prodKey: z.string().optional().describe("Product key to filter metrics groups"),
|
|
129
|
+
}, async (params) => {
|
|
130
|
+
try {
|
|
131
|
+
const body = {};
|
|
132
|
+
if (params.prodKey !== undefined)
|
|
133
|
+
body.prodKey = params.prodKey;
|
|
134
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/metrics/list", body);
|
|
135
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
// ncloud_get_notification_recipients — Get notification recipient list
|
|
142
|
+
server.tool("ncloud_get_notification_recipients", "Get the list of notification recipients configured for Cloud Insight event alerts.", {}, async () => {
|
|
143
|
+
try {
|
|
144
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/recipient", {});
|
|
145
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
// ncloud_create_monitor_group — Create a monitoring target group
|
|
152
|
+
server.tool("ncloud_create_monitor_group", "Create a new Cloud Insight monitoring target group (감시 대상 그룹).", {
|
|
153
|
+
prodKey: z.string().describe("Product key (cw_key) for the target service"),
|
|
154
|
+
groupName: z.string().describe("Name of the monitor group"),
|
|
155
|
+
resourceList: z.array(z.record(z.string())).describe("Array of resource dimension objects to include in the group"),
|
|
156
|
+
}, async (params) => {
|
|
157
|
+
try {
|
|
158
|
+
const body = {
|
|
159
|
+
prodKey: params.prodKey,
|
|
160
|
+
groupName: params.groupName,
|
|
161
|
+
resourceList: params.resourceList,
|
|
162
|
+
};
|
|
163
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/monitor/create", body);
|
|
164
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
// ncloud_get_monitor_group — Get monitoring target group details
|
|
171
|
+
server.tool("ncloud_get_monitor_group", "Get detailed information about a specific Cloud Insight monitoring target group.", {
|
|
172
|
+
monitorGroupId: z.string().describe("Monitor group ID to retrieve details for"),
|
|
173
|
+
}, async (params) => {
|
|
174
|
+
try {
|
|
175
|
+
const body = {
|
|
176
|
+
monitorGroupId: params.monitorGroupId,
|
|
177
|
+
};
|
|
178
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/monitor/detail", body);
|
|
179
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
// ncloud_update_monitor_group — Update a monitoring target group
|
|
186
|
+
server.tool("ncloud_update_monitor_group", "Update an existing Cloud Insight monitoring target group.", {
|
|
187
|
+
monitorGroupId: z.string().describe("Monitor group ID to update"),
|
|
188
|
+
groupName: z.string().optional().describe("New name for the monitor group"),
|
|
189
|
+
resourceList: z.array(z.record(z.string())).optional().describe("Updated array of resource dimension objects"),
|
|
190
|
+
}, async (params) => {
|
|
191
|
+
try {
|
|
192
|
+
const body = {
|
|
193
|
+
monitorGroupId: params.monitorGroupId,
|
|
194
|
+
};
|
|
195
|
+
if (params.groupName !== undefined)
|
|
196
|
+
body.groupName = params.groupName;
|
|
197
|
+
if (params.resourceList !== undefined)
|
|
198
|
+
body.resourceList = params.resourceList;
|
|
199
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/monitor/update", body);
|
|
200
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
// ncloud_delete_monitor_group — Delete a monitoring target group
|
|
207
|
+
server.tool("ncloud_delete_monitor_group", "⚠️ Destructive: Delete a Cloud Insight monitoring target group. This will permanently remove the group.", {
|
|
208
|
+
monitorGroupId: z.string().describe("Monitor group ID to delete"),
|
|
209
|
+
confirm: z.boolean().optional().describe("Must be true to execute deletion."),
|
|
210
|
+
}, async (params) => {
|
|
211
|
+
try {
|
|
212
|
+
if (!params.confirm) {
|
|
213
|
+
return {
|
|
214
|
+
content: [{
|
|
215
|
+
type: "text",
|
|
216
|
+
text: `⚠️ This will permanently delete monitor group [${params.monitorGroupId}]. To confirm, call this tool again with confirm=true.`,
|
|
217
|
+
}],
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
const body = { monitorGroupId: params.monitorGroupId };
|
|
221
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/monitor/delete", body);
|
|
222
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
// ncloud_create_metrics_group — Create a rule template (metrics group)
|
|
229
|
+
server.tool("ncloud_create_metrics_group", "Create a new Cloud Insight rule template (감시 항목 그룹 / metrics group).", {
|
|
230
|
+
prodKey: z.string().describe("Product key (cw_key) for the target service"),
|
|
231
|
+
groupName: z.string().describe("Name of the metrics group"),
|
|
232
|
+
metricList: z.array(z.object({
|
|
233
|
+
metricGroupItemId: z.string().describe("Metric item ID"),
|
|
234
|
+
condition: z.enum(["GT", "GTE", "LT", "LTE", "EQ"]).describe("Threshold condition"),
|
|
235
|
+
threshold: z.number().describe("Threshold value"),
|
|
236
|
+
duration: z.number().describe("Duration in minutes before triggering"),
|
|
237
|
+
eventLevel: z.enum(["CRITICAL", "WARNING", "INFO"]).describe("Event severity level"),
|
|
238
|
+
aggregation: z.enum(["AVG", "MIN", "MAX", "SUM", "COUNT"]).optional().describe("Aggregation type"),
|
|
239
|
+
})).describe("List of metric configurations"),
|
|
240
|
+
}, async (params) => {
|
|
241
|
+
try {
|
|
242
|
+
const body = {
|
|
243
|
+
prodKey: params.prodKey,
|
|
244
|
+
groupName: params.groupName,
|
|
245
|
+
metricList: params.metricList,
|
|
246
|
+
};
|
|
247
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/metrics/create", body);
|
|
248
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
// ncloud_get_metrics_group — Get rule template details
|
|
255
|
+
server.tool("ncloud_get_metrics_group", "Get detailed information about a specific Cloud Insight rule template (metrics group).", {
|
|
256
|
+
metricsGroupId: z.string().describe("Metrics group ID to retrieve details for"),
|
|
257
|
+
}, async (params) => {
|
|
258
|
+
try {
|
|
259
|
+
const body = { metricsGroupId: params.metricsGroupId };
|
|
260
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/metrics/detail", body);
|
|
261
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
// ncloud_update_metrics_group — Update a rule template
|
|
268
|
+
server.tool("ncloud_update_metrics_group", "Update an existing Cloud Insight rule template (metrics group).", {
|
|
269
|
+
metricsGroupId: z.string().describe("Metrics group ID to update"),
|
|
270
|
+
groupName: z.string().optional().describe("New name for the metrics group"),
|
|
271
|
+
metricList: z.array(z.object({
|
|
272
|
+
metricGroupItemId: z.string().describe("Metric item ID"),
|
|
273
|
+
condition: z.enum(["GT", "GTE", "LT", "LTE", "EQ"]).describe("Threshold condition"),
|
|
274
|
+
threshold: z.number().describe("Threshold value"),
|
|
275
|
+
duration: z.number().describe("Duration in minutes"),
|
|
276
|
+
eventLevel: z.enum(["CRITICAL", "WARNING", "INFO"]).describe("Event severity level"),
|
|
277
|
+
aggregation: z.enum(["AVG", "MIN", "MAX", "SUM", "COUNT"]).optional().describe("Aggregation type"),
|
|
278
|
+
})).optional().describe("Updated metric configurations"),
|
|
279
|
+
}, async (params) => {
|
|
280
|
+
try {
|
|
281
|
+
const body = {
|
|
282
|
+
metricsGroupId: params.metricsGroupId,
|
|
283
|
+
};
|
|
284
|
+
if (params.groupName !== undefined)
|
|
285
|
+
body.groupName = params.groupName;
|
|
286
|
+
if (params.metricList !== undefined)
|
|
287
|
+
body.metricList = params.metricList;
|
|
288
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/metrics/update", body);
|
|
289
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
// ncloud_delete_metrics_group — Delete a rule template
|
|
296
|
+
server.tool("ncloud_delete_metrics_group", "⚠️ Destructive: Delete a Cloud Insight rule template (metrics group).", {
|
|
297
|
+
metricsGroupId: z.string().describe("Metrics group ID to delete"),
|
|
298
|
+
confirm: z.boolean().optional().describe("Must be true to execute deletion."),
|
|
299
|
+
}, async (params) => {
|
|
300
|
+
try {
|
|
301
|
+
if (!params.confirm) {
|
|
302
|
+
return {
|
|
303
|
+
content: [{
|
|
304
|
+
type: "text",
|
|
305
|
+
text: `⚠️ This will permanently delete metrics group [${params.metricsGroupId}]. To confirm, call this tool again with confirm=true.`,
|
|
306
|
+
}],
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
const body = { metricsGroupId: params.metricsGroupId };
|
|
310
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/metrics/delete", body);
|
|
311
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
312
|
+
}
|
|
313
|
+
catch (error) {
|
|
314
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
// ncloud_update_rule_group — Update an event rule group
|
|
318
|
+
server.tool("ncloud_update_rule_group", "Update an existing Cloud Insight event rule group.", {
|
|
319
|
+
ruleGroupId: z.string().describe("Rule group ID to update"),
|
|
320
|
+
groupName: z.string().optional().describe("New name for the rule group"),
|
|
321
|
+
metricsGroupId: z.string().optional().describe("New metrics group ID"),
|
|
322
|
+
monitorGroupId: z.string().optional().describe("New monitor group ID"),
|
|
323
|
+
recipientNotification: z.array(z.object({
|
|
324
|
+
notificationType: z.enum(["EMAIL", "SMS", "WEBHOOK"]).describe("Notification type"),
|
|
325
|
+
recipient: z.string().describe("Notification recipient"),
|
|
326
|
+
})).optional().describe("Updated notification recipients"),
|
|
327
|
+
cfgRuleList: z.array(z.object({
|
|
328
|
+
metricGroupItemId: z.string().describe("Metric item ID"),
|
|
329
|
+
condition: z.enum(["GT", "GTE", "LT", "LTE", "EQ"]).describe("Threshold condition"),
|
|
330
|
+
threshold: z.number().describe("Threshold value"),
|
|
331
|
+
duration: z.number().describe("Duration in minutes"),
|
|
332
|
+
eventLevel: z.enum(["CRITICAL", "WARNING", "INFO"]).describe("Event severity level"),
|
|
333
|
+
aggregation: z.enum(["AVG", "MIN", "MAX", "SUM", "COUNT"]).optional().describe("Aggregation type"),
|
|
334
|
+
})).optional().describe("Updated rule configurations"),
|
|
335
|
+
}, async (params) => {
|
|
336
|
+
try {
|
|
337
|
+
const body = {
|
|
338
|
+
ruleGroupId: params.ruleGroupId,
|
|
339
|
+
};
|
|
340
|
+
if (params.groupName !== undefined)
|
|
341
|
+
body.groupName = params.groupName;
|
|
342
|
+
if (params.metricsGroupId !== undefined)
|
|
343
|
+
body.metricsGroupId = params.metricsGroupId;
|
|
344
|
+
if (params.monitorGroupId !== undefined)
|
|
345
|
+
body.monitorGroupId = params.monitorGroupId;
|
|
346
|
+
if (params.recipientNotification !== undefined)
|
|
347
|
+
body.recipientNotification = params.recipientNotification;
|
|
348
|
+
if (params.cfgRuleList !== undefined)
|
|
349
|
+
body.cfgRuleList = params.cfgRuleList;
|
|
350
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/update", body);
|
|
351
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
352
|
+
}
|
|
353
|
+
catch (error) {
|
|
354
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
// ncloud_create_rule_directly — Create event rule with direct target/metric specification
|
|
358
|
+
server.tool("ncloud_create_rule_directly", "Create a Cloud Insight event rule by directly specifying monitoring targets and metrics (without pre-created groups).", {
|
|
359
|
+
groupName: z.string().describe("Name of the rule group"),
|
|
360
|
+
prodKey: z.string().describe("Product key (cw_key)"),
|
|
361
|
+
resourceList: z.array(z.record(z.string())).describe("Array of resource dimension objects to monitor"),
|
|
362
|
+
cfgRuleList: z.array(z.object({
|
|
363
|
+
metricGroupItemId: z.string().describe("Metric item ID"),
|
|
364
|
+
condition: z.enum(["GT", "GTE", "LT", "LTE", "EQ"]).describe("Threshold condition"),
|
|
365
|
+
threshold: z.number().describe("Threshold value"),
|
|
366
|
+
duration: z.number().describe("Duration in minutes"),
|
|
367
|
+
eventLevel: z.enum(["CRITICAL", "WARNING", "INFO"]).describe("Event severity level"),
|
|
368
|
+
aggregation: z.enum(["AVG", "MIN", "MAX", "SUM", "COUNT"]).optional().describe("Aggregation type"),
|
|
369
|
+
})).describe("Rule configurations"),
|
|
370
|
+
recipientNotification: z.array(z.object({
|
|
371
|
+
notificationType: z.enum(["EMAIL", "SMS", "WEBHOOK"]).describe("Notification type"),
|
|
372
|
+
recipient: z.string().describe("Notification recipient"),
|
|
373
|
+
})).optional().describe("Notification recipients"),
|
|
374
|
+
}, async (params) => {
|
|
375
|
+
try {
|
|
376
|
+
const body = {
|
|
377
|
+
groupName: params.groupName,
|
|
378
|
+
prodKey: params.prodKey,
|
|
379
|
+
resourceList: params.resourceList,
|
|
380
|
+
cfgRuleList: params.cfgRuleList,
|
|
381
|
+
};
|
|
382
|
+
if (params.recipientNotification !== undefined)
|
|
383
|
+
body.recipientNotification = params.recipientNotification;
|
|
384
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/createDirectly", body);
|
|
385
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
386
|
+
}
|
|
387
|
+
catch (error) {
|
|
388
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
// ncloud_copy_rule_group — Copy an event rule group
|
|
392
|
+
server.tool("ncloud_copy_rule_group", "Copy an existing Cloud Insight event rule group to create a new one.", {
|
|
393
|
+
ruleGroupId: z.string().describe("Source rule group ID to copy from"),
|
|
394
|
+
groupName: z.string().describe("Name for the new copied rule group"),
|
|
395
|
+
}, async (params) => {
|
|
396
|
+
try {
|
|
397
|
+
const body = {
|
|
398
|
+
ruleGroupId: params.ruleGroupId,
|
|
399
|
+
groupName: params.groupName,
|
|
400
|
+
};
|
|
401
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/copy", body);
|
|
402
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
403
|
+
}
|
|
404
|
+
catch (error) {
|
|
405
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
406
|
+
}
|
|
407
|
+
});
|
|
408
|
+
// ncloud_search_metric_list — Search available metrics for a monitor group
|
|
409
|
+
server.tool("ncloud_search_metric_list", "Search available monitoring metrics for a specific product in Cloud Insight.", {
|
|
410
|
+
prodKey: z.string().describe("Product key (cw_key) to search metrics for"),
|
|
411
|
+
}, async (params) => {
|
|
412
|
+
try {
|
|
413
|
+
const body = { prodKey: params.prodKey };
|
|
414
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/metric/search", body);
|
|
415
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
416
|
+
}
|
|
417
|
+
catch (error) {
|
|
418
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
419
|
+
}
|
|
420
|
+
});
|
|
421
|
+
// ncloud_remove_resource_from_rules — Remove a resource from event rules
|
|
422
|
+
server.tool("ncloud_remove_resource_from_rules", "⚠️ Destructive: Remove a specific monitoring target from Cloud Insight event rules.", {
|
|
423
|
+
prodKey: z.string().describe("Product key (cw_key)"),
|
|
424
|
+
resourceId: z.string().describe("Resource ID to remove from rules"),
|
|
425
|
+
confirm: z.boolean().optional().describe("Must be true to execute removal."),
|
|
426
|
+
}, async (params) => {
|
|
427
|
+
try {
|
|
428
|
+
if (!params.confirm) {
|
|
429
|
+
return {
|
|
430
|
+
content: [{
|
|
431
|
+
type: "text",
|
|
432
|
+
text: `⚠️ This will remove resource [${params.resourceId}] from all associated event rules. To confirm, call this tool again with confirm=true.`,
|
|
433
|
+
}],
|
|
434
|
+
};
|
|
435
|
+
}
|
|
436
|
+
const body = {
|
|
437
|
+
prodKey: params.prodKey,
|
|
438
|
+
resourceId: params.resourceId,
|
|
439
|
+
};
|
|
440
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/resource/remove", body);
|
|
441
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
442
|
+
}
|
|
443
|
+
catch (error) {
|
|
444
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
// ncloud_get_rules_by_metrics_group — Get rules by metrics group IDs
|
|
448
|
+
server.tool("ncloud_get_rules_by_metrics_group", "Get Cloud Insight event rules associated with specific rule template (metrics group) IDs.", {
|
|
449
|
+
metricsGroupIds: z.array(z.string()).describe("Array of metrics group IDs to query"),
|
|
450
|
+
}, async (params) => {
|
|
451
|
+
try {
|
|
452
|
+
const body = { metricsGroupIds: params.metricsGroupIds };
|
|
453
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/byMetricGroupIds", body);
|
|
454
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
455
|
+
}
|
|
456
|
+
catch (error) {
|
|
457
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
458
|
+
}
|
|
459
|
+
});
|
|
460
|
+
// ncloud_get_rules_by_monitor_group — Get rules by monitor group IDs
|
|
461
|
+
server.tool("ncloud_get_rules_by_monitor_group", "Get Cloud Insight event rules associated with specific monitoring target group IDs.", {
|
|
462
|
+
monitorGroupIds: z.array(z.string()).describe("Array of monitor group IDs to query"),
|
|
463
|
+
}, async (params) => {
|
|
464
|
+
try {
|
|
465
|
+
const body = { monitorGroupIds: params.monitorGroupIds };
|
|
466
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/byMonitorGroupIds", body);
|
|
467
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
468
|
+
}
|
|
469
|
+
catch (error) {
|
|
470
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
471
|
+
}
|
|
472
|
+
});
|
|
473
|
+
// ncloud_delete_rule_group_by_id — Delete event rule by product key and ID
|
|
474
|
+
server.tool("ncloud_delete_rule_group_by_id", "⚠️ Destructive: Delete a Cloud Insight event rule by product key and rule group ID.", {
|
|
475
|
+
prodKey: z.string().describe("Product key (cw_key)"),
|
|
476
|
+
ruleGroupId: z.string().describe("Rule group ID to delete"),
|
|
477
|
+
confirm: z.boolean().optional().describe("Must be true to execute deletion."),
|
|
478
|
+
}, async (params) => {
|
|
479
|
+
try {
|
|
480
|
+
if (!params.confirm) {
|
|
481
|
+
return {
|
|
482
|
+
content: [{
|
|
483
|
+
type: "text",
|
|
484
|
+
text: `⚠️ This will permanently delete rule group [${params.ruleGroupId}]. To confirm, call this tool again with confirm=true.`,
|
|
485
|
+
}],
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
const body = {
|
|
489
|
+
prodKey: params.prodKey,
|
|
490
|
+
ruleGroupId: params.ruleGroupId,
|
|
491
|
+
};
|
|
492
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/deleteByProdKeyAndId", body);
|
|
493
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
494
|
+
}
|
|
495
|
+
catch (error) {
|
|
496
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
497
|
+
}
|
|
498
|
+
});
|
|
499
|
+
// ncloud_delete_metrics_group_by_id — Delete metrics group by product key and ID
|
|
500
|
+
server.tool("ncloud_delete_metrics_group_by_id", "⚠️ Destructive: Delete a Cloud Insight rule template by product key and metrics group ID.", {
|
|
501
|
+
prodKey: z.string().describe("Product key (cw_key)"),
|
|
502
|
+
metricsGroupId: z.string().describe("Metrics group ID to delete"),
|
|
503
|
+
confirm: z.boolean().optional().describe("Must be true to execute deletion."),
|
|
504
|
+
}, async (params) => {
|
|
505
|
+
try {
|
|
506
|
+
if (!params.confirm) {
|
|
507
|
+
return {
|
|
508
|
+
content: [{
|
|
509
|
+
type: "text",
|
|
510
|
+
text: `⚠️ This will permanently delete metrics group [${params.metricsGroupId}]. To confirm, call this tool again with confirm=true.`,
|
|
511
|
+
}],
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
const body = {
|
|
515
|
+
prodKey: params.prodKey,
|
|
516
|
+
metricsGroupId: params.metricsGroupId,
|
|
517
|
+
};
|
|
518
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/metrics/deleteByProdKeyAndId", body);
|
|
519
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
520
|
+
}
|
|
521
|
+
catch (error) {
|
|
522
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
523
|
+
}
|
|
524
|
+
});
|
|
525
|
+
// ncloud_delete_metrics_group_force — Force delete all rules related to a metrics group
|
|
526
|
+
server.tool("ncloud_delete_metrics_group_force", "⚠️ Destructive: Force delete ALL event rules associated with a specific rule template (metrics group). This is irreversible.", {
|
|
527
|
+
metricsGroupId: z.string().describe("Metrics group ID whose related rules will be deleted"),
|
|
528
|
+
confirm: z.boolean().optional().describe("Must be true to execute force deletion."),
|
|
529
|
+
}, async (params) => {
|
|
530
|
+
try {
|
|
531
|
+
if (!params.confirm) {
|
|
532
|
+
return {
|
|
533
|
+
content: [{
|
|
534
|
+
type: "text",
|
|
535
|
+
text: `⚠️ This will permanently delete ALL event rules related to metrics group [${params.metricsGroupId}]. This is irreversible. To confirm, call this tool again with confirm=true.`,
|
|
536
|
+
}],
|
|
537
|
+
};
|
|
538
|
+
}
|
|
539
|
+
const body = { metricsGroupId: params.metricsGroupId };
|
|
540
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/metrics/deleteForce", body);
|
|
541
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
542
|
+
}
|
|
543
|
+
catch (error) {
|
|
544
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
545
|
+
}
|
|
546
|
+
});
|
|
547
|
+
// ncloud_delete_monitor_group_force — Force delete all rules related to a monitor group
|
|
548
|
+
server.tool("ncloud_delete_monitor_group_force", "⚠️ Destructive: Force delete ALL event rules associated with a specific monitoring target group. This is irreversible.", {
|
|
549
|
+
monitorGroupId: z.string().describe("Monitor group ID whose related rules will be deleted"),
|
|
550
|
+
confirm: z.boolean().optional().describe("Must be true to execute force deletion."),
|
|
551
|
+
}, async (params) => {
|
|
552
|
+
try {
|
|
553
|
+
if (!params.confirm) {
|
|
554
|
+
return {
|
|
555
|
+
content: [{
|
|
556
|
+
type: "text",
|
|
557
|
+
text: `⚠️ This will permanently delete ALL event rules related to monitor group [${params.monitorGroupId}]. This is irreversible. To confirm, call this tool again with confirm=true.`,
|
|
558
|
+
}],
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
const body = { monitorGroupId: params.monitorGroupId };
|
|
562
|
+
const result = await client.postRequest("/cw_fea/real/cw/api/rule/group/monitor/deleteForce", body);
|
|
563
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
564
|
+
}
|
|
565
|
+
catch (error) {
|
|
566
|
+
return { content: [{ type: "text", text: error.message }], isError: true };
|
|
567
|
+
}
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
//# sourceMappingURL=cloud-insight-rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-insight-rule.js","sourceRoot":"","sources":["../../src/tools/cloud-insight-rule.ts"],"names":[],"mappings":"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"}
|