@rad-security/mcp-server 0.0.27 → 0.0.31-2.g635c655
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/README.md +53 -60
- package/dist/index.js +44 -381
- package/dist/index.js.map +1 -1
- package/dist/operations/cve-dispositions.d.ts +27 -0
- package/dist/operations/cve-dispositions.js +46 -0
- package/dist/operations/cve-dispositions.js.map +1 -0
- package/dist/operations/findings.d.ts +4 -4
- package/dist/operations/findings.js +1 -1
- package/dist/operations/findings.js.map +1 -1
- package/dist/operations/inbox.d.ts +2 -2
- package/dist/operations/radql.js +72 -1
- package/dist/operations/radql.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/dist/operations/cloud-compliance.d.ts +0 -116
- package/dist/operations/cloud-compliance.js +0 -123
- package/dist/operations/cloud-compliance.js.map +0 -1
- package/dist/operations/cloud-inventory.d.ts +0 -70
- package/dist/operations/cloud-inventory.js +0 -61
- package/dist/operations/cloud-inventory.js.map +0 -1
- package/dist/operations/cves.d.ts +0 -23
- package/dist/operations/cves.js +0 -51
- package/dist/operations/cves.js.map +0 -1
- package/dist/operations/identities.d.ts +0 -33
- package/dist/operations/identities.js +0 -30
- package/dist/operations/identities.js.map +0 -1
- package/dist/operations/misconfigs.d.ts +0 -23
- package/dist/operations/misconfigs.js +0 -306
- package/dist/operations/misconfigs.js.map +0 -1
- package/dist/operations/runtime_network.d.ts +0 -50
- package/dist/operations/runtime_network.js +0 -41
- package/dist/operations/runtime_network.js.map +0 -1
- package/dist/operations/threats.d.ts +0 -22
- package/dist/operations/threats.js +0 -24
- package/dist/operations/threats.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -13,23 +13,17 @@ import express from "express";
|
|
|
13
13
|
import { RadSecurityClient } from "./client.js";
|
|
14
14
|
import * as containers from "./operations/containers.js";
|
|
15
15
|
import * as audit from "./operations/audit.js";
|
|
16
|
-
import * as cloudInventory from "./operations/cloud-inventory.js";
|
|
17
16
|
import * as clusters from "./operations/clusters.js";
|
|
18
|
-
import * as identities from "./operations/identities.js";
|
|
19
17
|
import * as images from "./operations/images.js";
|
|
18
|
+
import * as cveDispositions from "./operations/cve-dispositions.js";
|
|
20
19
|
import * as kubeobject from "./operations/kubeobject.js";
|
|
21
|
-
import * as misconfigs from "./operations/misconfigs.js";
|
|
22
20
|
import * as runtime from "./operations/runtime.js";
|
|
23
|
-
import * as runtimeNetwork from "./operations/runtime_network.js";
|
|
24
|
-
import * as threats from "./operations/threats.js";
|
|
25
21
|
import * as findings from "./operations/findings.js";
|
|
26
|
-
import * as cves from "./operations/cves.js";
|
|
27
22
|
import * as inbox from "./operations/inbox.js";
|
|
28
23
|
import * as workflows from "./operations/workflows.js";
|
|
29
24
|
import * as customWorkflows from "./operations/custom-workflows.js";
|
|
30
25
|
import * as knowledgeBase from "./operations/knowledge-base.js";
|
|
31
26
|
import * as radql from "./operations/radql.js";
|
|
32
|
-
import * as cloudCompliance from "./operations/cloud-compliance.js";
|
|
33
27
|
import * as dashboards from "./operations/dashboards.js";
|
|
34
28
|
import * as integrations from "./operations/integrations.js";
|
|
35
29
|
import { VERSION } from "./version.js";
|
|
@@ -115,21 +109,6 @@ async function newServer() {
|
|
|
115
109
|
},
|
|
116
110
|
]
|
|
117
111
|
: []),
|
|
118
|
-
// Identity tools
|
|
119
|
-
...(isToolkitEnabled("identities", toolkitFilters)
|
|
120
|
-
? [
|
|
121
|
-
{
|
|
122
|
-
name: "list_identities",
|
|
123
|
-
description: "Get list of identities for a specific Kubernetes cluster",
|
|
124
|
-
inputSchema: zodToJsonSchema(identities.ListIdentitiesSchema),
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
name: "get_identity_details",
|
|
128
|
-
description: "Get detailed information about a specific identity in a Kubernetes cluster",
|
|
129
|
-
inputSchema: zodToJsonSchema(identities.GetIdentityDetailsSchema),
|
|
130
|
-
},
|
|
131
|
-
]
|
|
132
|
-
: []),
|
|
133
112
|
// Audit tools
|
|
134
113
|
...(isToolkitEnabled("audit", toolkitFilters)
|
|
135
114
|
? [
|
|
@@ -140,66 +119,6 @@ async function newServer() {
|
|
|
140
119
|
},
|
|
141
120
|
]
|
|
142
121
|
: []),
|
|
143
|
-
// Cloud Inventory tools
|
|
144
|
-
...(isToolkitEnabled("cloud_inventory", toolkitFilters)
|
|
145
|
-
? [
|
|
146
|
-
{
|
|
147
|
-
name: "list_cloud_resources",
|
|
148
|
-
description: "List cloud resources for a specific provider with optional filtering",
|
|
149
|
-
inputSchema: zodToJsonSchema(cloudInventory.ListCloudResourcesSchema),
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
name: "get_cloud_resource_details",
|
|
153
|
-
description: "Get detailed information about a specific cloud resource",
|
|
154
|
-
inputSchema: zodToJsonSchema(cloudInventory.GetCloudResourceDetailsSchema),
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
name: "get_cloud_resource_facets",
|
|
158
|
-
description: "Get available facets for filtering cloud resources from a provider",
|
|
159
|
-
inputSchema: zodToJsonSchema(cloudInventory.GetCloudResourceFacetsSchema),
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
name: "get_cloud_resource_facet_value",
|
|
163
|
-
description: "Get values for a specific facet from a cloud provider",
|
|
164
|
-
inputSchema: zodToJsonSchema(cloudInventory.GetCloudResourceFacetValuesSchema),
|
|
165
|
-
},
|
|
166
|
-
]
|
|
167
|
-
: []),
|
|
168
|
-
// Cloud Compliance tools
|
|
169
|
-
...(isToolkitEnabled("cloud_compliance", toolkitFilters)
|
|
170
|
-
? [
|
|
171
|
-
{
|
|
172
|
-
name: "list_compliance_frameworks",
|
|
173
|
-
description: "List all compliance frameworks available for cloud resources (e.g., CIS, SOC2, PCI-DSS)",
|
|
174
|
-
inputSchema: zodToJsonSchema(cloudCompliance.ListComplianceFrameworksSchema),
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
name: "list_framework_requirements",
|
|
178
|
-
description: "List all requirements for a specific compliance framework",
|
|
179
|
-
inputSchema: zodToJsonSchema(cloudCompliance.ListFrameworkRequirementsSchema),
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
name: "list_requirement_controls",
|
|
183
|
-
description: "List controls associated with a specific requirement within a compliance framework",
|
|
184
|
-
inputSchema: zodToJsonSchema(cloudCompliance.ListRequirementControlsSchema),
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
name: "list_compliance_controls",
|
|
188
|
-
description: "List all compliance control summaries for the account",
|
|
189
|
-
inputSchema: zodToJsonSchema(cloudCompliance.ListComplianceControlsSchema),
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
name: "get_compliance_control",
|
|
193
|
-
description: "Get detailed information about a specific compliance control",
|
|
194
|
-
inputSchema: zodToJsonSchema(cloudCompliance.GetComplianceControlSchema),
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
name: "list_control_resources",
|
|
198
|
-
description: "List cloud resources associated with a specific compliance control",
|
|
199
|
-
inputSchema: zodToJsonSchema(cloudCompliance.ListControlResourcesSchema),
|
|
200
|
-
},
|
|
201
|
-
]
|
|
202
|
-
: []),
|
|
203
122
|
// Image tools
|
|
204
123
|
...(isToolkitEnabled("images", toolkitFilters)
|
|
205
124
|
? [
|
|
@@ -223,6 +142,21 @@ async function newServer() {
|
|
|
223
142
|
description: "Get the SBOM of a container image",
|
|
224
143
|
inputSchema: zodToJsonSchema(images.GetImageSBOMSchema),
|
|
225
144
|
},
|
|
145
|
+
{
|
|
146
|
+
name: "ignore_cve",
|
|
147
|
+
description: "Ignore a CVE for this account so it no longer appears in vulnerability reporting. Use for confirmed false positives, accepted risks, or won't-fix decisions. Do NOT use for remediated CVEs — those drop off automatically on the next scan.",
|
|
148
|
+
inputSchema: zodToJsonSchema(cveDispositions.ignoreCveSchema),
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: "unignore_cve",
|
|
152
|
+
description: "Remove an account-wide CVE disposition, restoring the CVE to vulnerability reporting.",
|
|
153
|
+
inputSchema: zodToJsonSchema(cveDispositions.unignoreCveSchema),
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: "list_cve_dispositions",
|
|
157
|
+
description: "List active CVE dispositions (ignored / false positive) for this account, with reason and author.",
|
|
158
|
+
inputSchema: zodToJsonSchema(cveDispositions.listCveDispositionsSchema),
|
|
159
|
+
},
|
|
226
160
|
]
|
|
227
161
|
: []),
|
|
228
162
|
// Kubernetes Object tools
|
|
@@ -240,26 +174,6 @@ async function newServer() {
|
|
|
240
174
|
},
|
|
241
175
|
]
|
|
242
176
|
: []),
|
|
243
|
-
// Manifest Misconfigurations tools
|
|
244
|
-
...(isToolkitEnabled("misconfigs", toolkitFilters)
|
|
245
|
-
? [
|
|
246
|
-
{
|
|
247
|
-
name: "list_k8s_resource_misconfigs",
|
|
248
|
-
description: "Get manifest misconfigurations for a Kubernetes resource",
|
|
249
|
-
inputSchema: zodToJsonSchema(misconfigs.ListKubernetesResourceMisconfigurationsSchema),
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
name: "get_k8s_resource_misconfig",
|
|
253
|
-
description: "Get detailed information about a specific Kubernetes resource misconfiguration",
|
|
254
|
-
inputSchema: zodToJsonSchema(misconfigs.GetKubernetesResourceMisconfigurationDetailsSchema),
|
|
255
|
-
},
|
|
256
|
-
{
|
|
257
|
-
name: "list_k8s_resource_misconfig_policies",
|
|
258
|
-
description: "List available misconfiguration policies used by RAD Security to detect Kubernetes resource misconfigurations",
|
|
259
|
-
inputSchema: zodToJsonSchema(misconfigs.ListKubernetesResourceMisconfigurationPoliciesSchema),
|
|
260
|
-
},
|
|
261
|
-
]
|
|
262
|
-
: []),
|
|
263
177
|
// Runtime tools
|
|
264
178
|
...(isToolkitEnabled("runtime", toolkitFilters)
|
|
265
179
|
? [
|
|
@@ -280,36 +194,6 @@ async function newServer() {
|
|
|
280
194
|
},
|
|
281
195
|
]
|
|
282
196
|
: []),
|
|
283
|
-
// Runtime Network tools
|
|
284
|
-
...(isToolkitEnabled("runtime_network", toolkitFilters)
|
|
285
|
-
? [
|
|
286
|
-
{
|
|
287
|
-
name: "list_http_requests",
|
|
288
|
-
description: "List HTTP requests insights with optional filtering by method, path, source and destination workloads, and PII detection",
|
|
289
|
-
inputSchema: zodToJsonSchema(runtimeNetwork.listHttpRequestsSchema),
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
name: "list_network_connections",
|
|
293
|
-
description: "List network connections with optional filtering",
|
|
294
|
-
inputSchema: zodToJsonSchema(runtimeNetwork.listNetworkConnectionsSchema),
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
name: "list_network_connection_srcs",
|
|
298
|
-
description: "List network connection sources with optional filtering by source and destination workloads",
|
|
299
|
-
inputSchema: zodToJsonSchema(runtimeNetwork.listNetworkConnectionSourcesSchema),
|
|
300
|
-
},
|
|
301
|
-
]
|
|
302
|
-
: []),
|
|
303
|
-
// Threat Vectors tools
|
|
304
|
-
...(isToolkitEnabled("threats", toolkitFilters)
|
|
305
|
-
? [
|
|
306
|
-
{
|
|
307
|
-
name: "list_threat_vectors",
|
|
308
|
-
description: "List threat vectors",
|
|
309
|
-
inputSchema: zodToJsonSchema(threats.listThreatVectorsSchema),
|
|
310
|
-
},
|
|
311
|
-
]
|
|
312
|
-
: []),
|
|
313
197
|
// Findings tools
|
|
314
198
|
...(isToolkitEnabled("findings", toolkitFilters)
|
|
315
199
|
? [
|
|
@@ -325,40 +209,6 @@ async function newServer() {
|
|
|
325
209
|
},
|
|
326
210
|
]
|
|
327
211
|
: []),
|
|
328
|
-
// CVE tools
|
|
329
|
-
...(isToolkitEnabled("cves", toolkitFilters)
|
|
330
|
-
? [
|
|
331
|
-
{
|
|
332
|
-
name: "list_cve_vendors",
|
|
333
|
-
description: "Get a list of all vendors in the CVE database. Source: cve-search.org",
|
|
334
|
-
inputSchema: zodToJsonSchema(z.object({})),
|
|
335
|
-
},
|
|
336
|
-
{
|
|
337
|
-
name: "list_cve_products",
|
|
338
|
-
description: "Get a list of all products associated with a vendor in the CVE database. Source: cve-search.org",
|
|
339
|
-
inputSchema: zodToJsonSchema(z.object({
|
|
340
|
-
vendor: z
|
|
341
|
-
.string()
|
|
342
|
-
.describe("Vendor name to list products for"),
|
|
343
|
-
})),
|
|
344
|
-
},
|
|
345
|
-
{
|
|
346
|
-
name: "search_cves",
|
|
347
|
-
description: "Search CVEs by vendor and optionally product. Source: cve-search.org",
|
|
348
|
-
inputSchema: zodToJsonSchema(cves.searchCvesSchema),
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
name: "get_cve",
|
|
352
|
-
description: "Get details for a specific CVE ID. Source: cve-search.org",
|
|
353
|
-
inputSchema: zodToJsonSchema(cves.getCveSchema),
|
|
354
|
-
},
|
|
355
|
-
{
|
|
356
|
-
name: "get_latest_30_cves",
|
|
357
|
-
description: "Get the latest/newest 30 CVEs including CAPEC, CWE and CPE expansions. Source: cve-search.org",
|
|
358
|
-
inputSchema: zodToJsonSchema(z.object({})),
|
|
359
|
-
},
|
|
360
|
-
]
|
|
361
|
-
: []),
|
|
362
212
|
// Inbox tools
|
|
363
213
|
...(isToolkitEnabled("inbox", toolkitFilters)
|
|
364
214
|
? [
|
|
@@ -464,7 +314,7 @@ async function newServer() {
|
|
|
464
314
|
? [
|
|
465
315
|
{
|
|
466
316
|
name: "radql_list_data_types",
|
|
467
|
-
description: "List all available RadQL data types (discovery). ALWAYS call this FIRST before using other RadQL tools to discover what data is available to query. Returns data types like 'containers', 'kubernetes_resources', 'inbox_items', '
|
|
317
|
+
description: "List all available RadQL data types (discovery). ALWAYS call this FIRST before using other RadQL tools to discover what data is available to query. Returns data types like 'containers', 'kubernetes_resources', 'inbox_items', 'cloud_resources', 'cloud_benchmarks', 'cloud_benchmark_summaries', etc. with descriptions.",
|
|
468
318
|
inputSchema: zodToJsonSchema(radql.RadQLListDataTypesSchema),
|
|
469
319
|
},
|
|
470
320
|
{
|
|
@@ -488,7 +338,7 @@ containers: name, image_name, image_repo, owner_kind, cluster_id, created_at
|
|
|
488
338
|
Example: image_name:*nginx* AND owner_kind:Pod
|
|
489
339
|
|
|
490
340
|
finding_groups: type, source_kind, source_name, rule_title, severity, event_timestamp
|
|
491
|
-
Types: k8s_misconfiguration, k8s_audit_logs_anomaly
|
|
341
|
+
Types: k8s_misconfiguration, k8s_audit_logs_anomaly
|
|
492
342
|
Example: type:k8s_misconfiguration AND severity:critical
|
|
493
343
|
|
|
494
344
|
inbox_items: severity (High|Medium|Low), type, title, archived, false_positive, created_at
|
|
@@ -497,6 +347,16 @@ inbox_items: severity (High|Medium|Low), type, title, archived, false_positive,
|
|
|
497
347
|
kubernetes_resources: kind, name, namespace, cluster_id, owner_kind, created_at
|
|
498
348
|
Example: kind:Deployment AND namespace:production
|
|
499
349
|
|
|
350
|
+
CLOUD RESOURCES & COMPLIANCE (use these RadQL data types instead of dedicated cloud tools):
|
|
351
|
+
cloud_resources: cloud_provider, cloud_account_id, resource_type, resource_name, resource_id, resource_json, last_seen_at
|
|
352
|
+
Example: cloud_provider:aws AND resource_type:aws_iam_policy
|
|
353
|
+
|
|
354
|
+
cloud_benchmark_summaries: cloud_provider, cloud_account_id, benchmark_id, title, description, fail_count, pass_count, total_count, last_seen_at
|
|
355
|
+
Example: cloud_provider:aws AND fail_count>0
|
|
356
|
+
|
|
357
|
+
cloud_benchmarks: cloud_provider, cloud_account_id, benchmark_id, control_id, control_title, severity, status, reason, resource_id, last_seen_at
|
|
358
|
+
Example: status:fail AND benchmark_id:*cis*
|
|
359
|
+
|
|
500
360
|
CRITICAL QUOTING RULES:
|
|
501
361
|
MUST quote when value contains:
|
|
502
362
|
- Dates/timestamps: created_at>"2024-01-01" (NOT created_at>2024-01-01)
|
|
@@ -624,25 +484,6 @@ For complete schema: call radql_get_type_metadata with target data_type`,
|
|
|
624
484
|
],
|
|
625
485
|
};
|
|
626
486
|
}
|
|
627
|
-
// Identity tools
|
|
628
|
-
case "list_identities": {
|
|
629
|
-
const args = identities.ListIdentitiesSchema.parse(request.params.arguments);
|
|
630
|
-
const response = await identities.listIdentities(client, args.identity_types, args.cluster_ids, args.page, args.page_size, args.q);
|
|
631
|
-
return {
|
|
632
|
-
content: [
|
|
633
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
634
|
-
],
|
|
635
|
-
};
|
|
636
|
-
}
|
|
637
|
-
case "get_identity_details": {
|
|
638
|
-
const args = identities.GetIdentityDetailsSchema.parse(request.params.arguments);
|
|
639
|
-
const response = await identities.getIdentityDetails(client, args.identity_id);
|
|
640
|
-
return {
|
|
641
|
-
content: [
|
|
642
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
643
|
-
],
|
|
644
|
-
};
|
|
645
|
-
}
|
|
646
487
|
// Audit tools
|
|
647
488
|
case "who_shelled_into_pod": {
|
|
648
489
|
const args = audit.WhoShelledIntoPodSchema.parse(request.params.arguments);
|
|
@@ -653,98 +494,6 @@ For complete schema: call radql_get_type_metadata with target data_type`,
|
|
|
653
494
|
],
|
|
654
495
|
};
|
|
655
496
|
}
|
|
656
|
-
// Cloud Inventory tools
|
|
657
|
-
case "list_cloud_resources": {
|
|
658
|
-
const args = cloudInventory.ListCloudResourcesSchema.parse(request.params.arguments);
|
|
659
|
-
const response = await cloudInventory.listCloudResources(client, args.provider, args.filters, args.offset, args.limit, args.q);
|
|
660
|
-
return {
|
|
661
|
-
content: [
|
|
662
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
663
|
-
],
|
|
664
|
-
};
|
|
665
|
-
}
|
|
666
|
-
case "get_cloud_resource_details": {
|
|
667
|
-
const args = cloudInventory.GetCloudResourceDetailsSchema.parse(request.params.arguments);
|
|
668
|
-
const response = await cloudInventory.getCloudResourceDetails(client, args.provider, args.resource_type, args.resource_id);
|
|
669
|
-
return {
|
|
670
|
-
content: [
|
|
671
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
672
|
-
],
|
|
673
|
-
};
|
|
674
|
-
}
|
|
675
|
-
case "get_cloud_resource_facets": {
|
|
676
|
-
const args = cloudInventory.GetCloudResourceFacetsSchema.parse(request.params.arguments);
|
|
677
|
-
const response = await cloudInventory.getCloudResourceFacets(client, args.provider);
|
|
678
|
-
return {
|
|
679
|
-
content: [
|
|
680
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
681
|
-
],
|
|
682
|
-
};
|
|
683
|
-
}
|
|
684
|
-
case "get_cloud_resource_facet_value": {
|
|
685
|
-
const args = cloudInventory.GetCloudResourceFacetValuesSchema.parse(request.params.arguments);
|
|
686
|
-
const response = await cloudInventory.getCloudResourceFacetValues(client, args.provider, args.facet_id);
|
|
687
|
-
return {
|
|
688
|
-
content: [
|
|
689
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
690
|
-
],
|
|
691
|
-
};
|
|
692
|
-
}
|
|
693
|
-
// Cloud Compliance tools
|
|
694
|
-
case "list_compliance_frameworks": {
|
|
695
|
-
const args = cloudCompliance.ListComplianceFrameworksSchema.parse(request.params.arguments);
|
|
696
|
-
const response = await cloudCompliance.listComplianceFrameworks(client, args.datasource_ids, args.page, args.page_size);
|
|
697
|
-
return {
|
|
698
|
-
content: [
|
|
699
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
700
|
-
],
|
|
701
|
-
};
|
|
702
|
-
}
|
|
703
|
-
case "list_framework_requirements": {
|
|
704
|
-
const args = cloudCompliance.ListFrameworkRequirementsSchema.parse(request.params.arguments);
|
|
705
|
-
const response = await cloudCompliance.listFrameworkRequirements(client, args.framework_name, args.datasource_ids, args.page, args.page_size);
|
|
706
|
-
return {
|
|
707
|
-
content: [
|
|
708
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
709
|
-
],
|
|
710
|
-
};
|
|
711
|
-
}
|
|
712
|
-
case "list_requirement_controls": {
|
|
713
|
-
const args = cloudCompliance.ListRequirementControlsSchema.parse(request.params.arguments);
|
|
714
|
-
const response = await cloudCompliance.listRequirementControls(client, args.framework_name, args.requirement_id, args.datasource_ids, args.page, args.page_size);
|
|
715
|
-
return {
|
|
716
|
-
content: [
|
|
717
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
718
|
-
],
|
|
719
|
-
};
|
|
720
|
-
}
|
|
721
|
-
case "list_compliance_controls": {
|
|
722
|
-
const args = cloudCompliance.ListComplianceControlsSchema.parse(request.params.arguments);
|
|
723
|
-
const response = await cloudCompliance.listComplianceControls(client, args.status, args.providers, args.page, args.page_size);
|
|
724
|
-
return {
|
|
725
|
-
content: [
|
|
726
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
727
|
-
],
|
|
728
|
-
};
|
|
729
|
-
}
|
|
730
|
-
case "get_compliance_control": {
|
|
731
|
-
const args = cloudCompliance.GetComplianceControlSchema.parse(request.params.arguments);
|
|
732
|
-
const response = await cloudCompliance.getComplianceControl(client, args.control_name, args.datasource_ids);
|
|
733
|
-
return {
|
|
734
|
-
content: [
|
|
735
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
736
|
-
],
|
|
737
|
-
};
|
|
738
|
-
}
|
|
739
|
-
case "list_control_resources": {
|
|
740
|
-
const args = cloudCompliance.ListControlResourcesSchema.parse(request.params.arguments);
|
|
741
|
-
const response = await cloudCompliance.listControlResources(client, args.control_name, args.datasource_ids, args.page, args.page_size);
|
|
742
|
-
return {
|
|
743
|
-
content: [
|
|
744
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
745
|
-
],
|
|
746
|
-
};
|
|
747
|
-
}
|
|
748
497
|
// Image tools
|
|
749
498
|
case "list_images": {
|
|
750
499
|
const args = images.ListImagesSchema.parse(request.params.arguments);
|
|
@@ -781,46 +530,46 @@ For complete schema: call radql_get_type_metadata with target data_type`,
|
|
|
781
530
|
],
|
|
782
531
|
};
|
|
783
532
|
}
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
const
|
|
787
|
-
const response = await kubeobject.getKubernetesResourceDetails(client, args.cluster_id, args.resource_uid);
|
|
533
|
+
case "ignore_cve": {
|
|
534
|
+
const args = cveDispositions.ignoreCveSchema.parse(request.params.arguments);
|
|
535
|
+
const response = await cveDispositions.ignoreCve(client, args.cve_name, args.disposition, args.reason);
|
|
788
536
|
return {
|
|
789
537
|
content: [
|
|
790
538
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
791
539
|
],
|
|
792
540
|
};
|
|
793
541
|
}
|
|
794
|
-
case "
|
|
795
|
-
const args =
|
|
796
|
-
const response = await
|
|
542
|
+
case "unignore_cve": {
|
|
543
|
+
const args = cveDispositions.unignoreCveSchema.parse(request.params.arguments);
|
|
544
|
+
const response = await cveDispositions.unignoreCve(client, args.cve_name);
|
|
797
545
|
return {
|
|
798
546
|
content: [
|
|
799
547
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
800
548
|
],
|
|
801
549
|
};
|
|
802
550
|
}
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
const
|
|
806
|
-
const response = await misconfigs.listKubernetesResourceMisconfigurations(client, args.resource_uid);
|
|
551
|
+
case "list_cve_dispositions": {
|
|
552
|
+
cveDispositions.listCveDispositionsSchema.parse(request.params.arguments);
|
|
553
|
+
const response = await cveDispositions.listCveDispositions(client);
|
|
807
554
|
return {
|
|
808
555
|
content: [
|
|
809
556
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
810
557
|
],
|
|
811
558
|
};
|
|
812
559
|
}
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
const
|
|
560
|
+
// Kubernetes Objects tools
|
|
561
|
+
case "get_k8s_resource_details": {
|
|
562
|
+
const args = kubeobject.GetKubernetesResourceDetailsSchema.parse(request.params.arguments);
|
|
563
|
+
const response = await kubeobject.getKubernetesResourceDetails(client, args.cluster_id, args.resource_uid);
|
|
816
564
|
return {
|
|
817
565
|
content: [
|
|
818
566
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
819
567
|
],
|
|
820
568
|
};
|
|
821
569
|
}
|
|
822
|
-
case "
|
|
823
|
-
const
|
|
570
|
+
case "list_k8s_resources": {
|
|
571
|
+
const args = kubeobject.ListKubernetesResourcesSchema.parse(request.params.arguments);
|
|
572
|
+
const response = await kubeobject.listKubernetesResources(client, args.kinds, args.namespace, args.cluster_id, args.page, args.page_size);
|
|
824
573
|
return {
|
|
825
574
|
content: [
|
|
826
575
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
@@ -855,44 +604,6 @@ For complete schema: call radql_get_type_metadata with target data_type`,
|
|
|
855
604
|
],
|
|
856
605
|
};
|
|
857
606
|
}
|
|
858
|
-
// Runtime Network tools
|
|
859
|
-
case "list_http_requests": {
|
|
860
|
-
const args = runtimeNetwork.listHttpRequestsSchema.parse(request.params.arguments);
|
|
861
|
-
const response = await runtimeNetwork.listHttpRequests(client, args);
|
|
862
|
-
return {
|
|
863
|
-
content: [
|
|
864
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
865
|
-
],
|
|
866
|
-
};
|
|
867
|
-
}
|
|
868
|
-
case "list_network_connections": {
|
|
869
|
-
const args = runtimeNetwork.listNetworkConnectionsSchema.parse(request.params.arguments);
|
|
870
|
-
const response = await runtimeNetwork.listNetworkConnections(client, args);
|
|
871
|
-
return {
|
|
872
|
-
content: [
|
|
873
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
874
|
-
],
|
|
875
|
-
};
|
|
876
|
-
}
|
|
877
|
-
case "list_network_connection_srcs": {
|
|
878
|
-
const args = runtimeNetwork.listNetworkConnectionSourcesSchema.parse(request.params.arguments);
|
|
879
|
-
const response = await runtimeNetwork.listNetworkConnectionSources(client, args);
|
|
880
|
-
return {
|
|
881
|
-
content: [
|
|
882
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
883
|
-
],
|
|
884
|
-
};
|
|
885
|
-
}
|
|
886
|
-
// Threat Vectors tools
|
|
887
|
-
case "list_threat_vectors": {
|
|
888
|
-
const args = threats.listThreatVectorsSchema.parse(request.params.arguments);
|
|
889
|
-
const response = await threats.listThreatVectors(client, args.clustersIds, args.namespaces, args.resource_uid, args.page, args.page_size);
|
|
890
|
-
return {
|
|
891
|
-
content: [
|
|
892
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
893
|
-
],
|
|
894
|
-
};
|
|
895
|
-
}
|
|
896
607
|
// Findings tools
|
|
897
608
|
case "list_security_findings": {
|
|
898
609
|
const args = findings.listFindingsSchema.parse(request.params.arguments);
|
|
@@ -918,54 +629,6 @@ For complete schema: call radql_get_type_metadata with target data_type`,
|
|
|
918
629
|
],
|
|
919
630
|
};
|
|
920
631
|
}
|
|
921
|
-
// CVE tools
|
|
922
|
-
case "list_cve_vendors": {
|
|
923
|
-
const response = await cves.listCveVendors();
|
|
924
|
-
return {
|
|
925
|
-
content: [
|
|
926
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
927
|
-
],
|
|
928
|
-
};
|
|
929
|
-
}
|
|
930
|
-
case "list_cve_products": {
|
|
931
|
-
const args = z
|
|
932
|
-
.object({
|
|
933
|
-
vendor: z.string(),
|
|
934
|
-
})
|
|
935
|
-
.parse(request.params.arguments);
|
|
936
|
-
const response = await cves.listCveProducts(args.vendor);
|
|
937
|
-
return {
|
|
938
|
-
content: [
|
|
939
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
940
|
-
],
|
|
941
|
-
};
|
|
942
|
-
}
|
|
943
|
-
case "search_cves": {
|
|
944
|
-
const args = cves.searchCvesSchema.parse(request.params.arguments);
|
|
945
|
-
const response = await cves.searchCves(args.vendor, args.product);
|
|
946
|
-
return {
|
|
947
|
-
content: [
|
|
948
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
949
|
-
],
|
|
950
|
-
};
|
|
951
|
-
}
|
|
952
|
-
case "get_cve": {
|
|
953
|
-
const args = cves.getCveSchema.parse(request.params.arguments);
|
|
954
|
-
const response = await cves.getCve(args.cveId);
|
|
955
|
-
return {
|
|
956
|
-
content: [
|
|
957
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
958
|
-
],
|
|
959
|
-
};
|
|
960
|
-
}
|
|
961
|
-
case "get_latest_30_cves": {
|
|
962
|
-
const response = await cves.getLatest30Cves();
|
|
963
|
-
return {
|
|
964
|
-
content: [
|
|
965
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
966
|
-
],
|
|
967
|
-
};
|
|
968
|
-
}
|
|
969
632
|
// Inbox tools
|
|
970
633
|
case "mark_inbox_item_as_false_positive": {
|
|
971
634
|
const args = inbox.MarkInboxItemAsFalsePositiveSchema.parse(request.params.arguments);
|