@rad-security/mcp-server 0.0.26 → 0.0.30-2.g4ae51ae
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 +5 -10
- package/dist/index.js +70 -220
- 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/integrations.d.ts +16 -0
- package/dist/operations/integrations.js +22 -0
- package/dist/operations/integrations.js.map +1 -0
- 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/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/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# RAD Security MCP Server
|
|
2
2
|
|
|
3
|
+
[](https://npmjs.com/package/@rad-security/mcp-server)
|
|
4
|
+
|
|
3
5
|
A Model Context Protocol (MCP) server for RAD Security, providing AI-powered security insights for Kubernetes and cloud environments.
|
|
4
6
|
|
|
5
7
|
<a href="https://glama.ai/mcp/servers/@rad-security/mcp-server">
|
|
@@ -46,13 +48,10 @@ Available toolkits:
|
|
|
46
48
|
- `clusters` - Kubernetes cluster operations
|
|
47
49
|
- `identities` - Identity management operations
|
|
48
50
|
- `audit` - Audit log operations
|
|
49
|
-
- `cloud_inventory` - Cloud resource inventory
|
|
50
51
|
- `images` - Container image operations
|
|
51
52
|
- `kubeobject` - Kubernetes resource operations
|
|
52
53
|
- `misconfigs` - Misconfiguration detection
|
|
53
54
|
- `runtime` - Runtime analysis operations
|
|
54
|
-
- `runtime_network` - Network traffic analysis
|
|
55
|
-
- `threats` - Threat vector operations
|
|
56
55
|
- `findings` - Security findings operations
|
|
57
56
|
- `cves` - CVE database operations
|
|
58
57
|
- `inbox` - Inbox item operations
|
|
@@ -72,8 +71,8 @@ INCLUDE_TOOLKITS="containers,images"
|
|
|
72
71
|
# Exclude workflow toolkit (enable all others)
|
|
73
72
|
EXCLUDE_TOOLKITS="workflows"
|
|
74
73
|
|
|
75
|
-
# Exclude runtime
|
|
76
|
-
EXCLUDE_TOOLKITS="runtime
|
|
74
|
+
# Exclude runtime toolkit
|
|
75
|
+
EXCLUDE_TOOLKITS="runtime"
|
|
77
76
|
```
|
|
78
77
|
|
|
79
78
|
Note: If `INCLUDE_TOOLKITS` is set, `EXCLUDE_TOOLKITS` is ignored.
|
|
@@ -220,10 +219,6 @@ docker run \
|
|
|
220
219
|
- List Kubernetes resources*
|
|
221
220
|
- List Kubernetes resource misconfiguration policies*
|
|
222
221
|
|
|
223
|
-
- Threat Vector
|
|
224
|
-
- List threat vectors*
|
|
225
|
-
- Get details of a specific threat vector*
|
|
226
|
-
|
|
227
222
|
- CVEs
|
|
228
223
|
- List CVEs
|
|
229
224
|
- Get details of a specific CVE
|
|
@@ -257,4 +252,4 @@ npm run build
|
|
|
257
252
|
|
|
258
253
|
## License
|
|
259
254
|
|
|
260
|
-
MIT License - see the [LICENSE](LICENSE) file for details
|
|
255
|
+
MIT License - see the [LICENSE](LICENSE) file for details
|
package/dist/index.js
CHANGED
|
@@ -13,15 +13,13 @@ 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
17
|
import * as identities from "./operations/identities.js";
|
|
19
18
|
import * as images from "./operations/images.js";
|
|
19
|
+
import * as cveDispositions from "./operations/cve-dispositions.js";
|
|
20
20
|
import * as kubeobject from "./operations/kubeobject.js";
|
|
21
21
|
import * as misconfigs from "./operations/misconfigs.js";
|
|
22
22
|
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
23
|
import * as findings from "./operations/findings.js";
|
|
26
24
|
import * as cves from "./operations/cves.js";
|
|
27
25
|
import * as inbox from "./operations/inbox.js";
|
|
@@ -29,8 +27,8 @@ import * as workflows from "./operations/workflows.js";
|
|
|
29
27
|
import * as customWorkflows from "./operations/custom-workflows.js";
|
|
30
28
|
import * as knowledgeBase from "./operations/knowledge-base.js";
|
|
31
29
|
import * as radql from "./operations/radql.js";
|
|
32
|
-
import * as cloudCompliance from "./operations/cloud-compliance.js";
|
|
33
30
|
import * as dashboards from "./operations/dashboards.js";
|
|
31
|
+
import * as integrations from "./operations/integrations.js";
|
|
34
32
|
import { VERSION } from "./version.js";
|
|
35
33
|
import { logger } from "./logger.js";
|
|
36
34
|
// Parse toolkit filters from environment variables
|
|
@@ -139,66 +137,6 @@ async function newServer() {
|
|
|
139
137
|
},
|
|
140
138
|
]
|
|
141
139
|
: []),
|
|
142
|
-
// Cloud Inventory tools
|
|
143
|
-
...(isToolkitEnabled("cloud_inventory", toolkitFilters)
|
|
144
|
-
? [
|
|
145
|
-
{
|
|
146
|
-
name: "list_cloud_resources",
|
|
147
|
-
description: "List cloud resources for a specific provider with optional filtering",
|
|
148
|
-
inputSchema: zodToJsonSchema(cloudInventory.ListCloudResourcesSchema),
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
name: "get_cloud_resource_details",
|
|
152
|
-
description: "Get detailed information about a specific cloud resource",
|
|
153
|
-
inputSchema: zodToJsonSchema(cloudInventory.GetCloudResourceDetailsSchema),
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
name: "get_cloud_resource_facets",
|
|
157
|
-
description: "Get available facets for filtering cloud resources from a provider",
|
|
158
|
-
inputSchema: zodToJsonSchema(cloudInventory.GetCloudResourceFacetsSchema),
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
name: "get_cloud_resource_facet_value",
|
|
162
|
-
description: "Get values for a specific facet from a cloud provider",
|
|
163
|
-
inputSchema: zodToJsonSchema(cloudInventory.GetCloudResourceFacetValuesSchema),
|
|
164
|
-
},
|
|
165
|
-
]
|
|
166
|
-
: []),
|
|
167
|
-
// Cloud Compliance tools
|
|
168
|
-
...(isToolkitEnabled("cloud_compliance", toolkitFilters)
|
|
169
|
-
? [
|
|
170
|
-
{
|
|
171
|
-
name: "list_compliance_frameworks",
|
|
172
|
-
description: "List all compliance frameworks available for cloud resources (e.g., CIS, SOC2, PCI-DSS)",
|
|
173
|
-
inputSchema: zodToJsonSchema(cloudCompliance.ListComplianceFrameworksSchema),
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
name: "list_framework_requirements",
|
|
177
|
-
description: "List all requirements for a specific compliance framework",
|
|
178
|
-
inputSchema: zodToJsonSchema(cloudCompliance.ListFrameworkRequirementsSchema),
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
name: "list_requirement_controls",
|
|
182
|
-
description: "List controls associated with a specific requirement within a compliance framework",
|
|
183
|
-
inputSchema: zodToJsonSchema(cloudCompliance.ListRequirementControlsSchema),
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
name: "list_compliance_controls",
|
|
187
|
-
description: "List all compliance control summaries for the account",
|
|
188
|
-
inputSchema: zodToJsonSchema(cloudCompliance.ListComplianceControlsSchema),
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
name: "get_compliance_control",
|
|
192
|
-
description: "Get detailed information about a specific compliance control",
|
|
193
|
-
inputSchema: zodToJsonSchema(cloudCompliance.GetComplianceControlSchema),
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
name: "list_control_resources",
|
|
197
|
-
description: "List cloud resources associated with a specific compliance control",
|
|
198
|
-
inputSchema: zodToJsonSchema(cloudCompliance.ListControlResourcesSchema),
|
|
199
|
-
},
|
|
200
|
-
]
|
|
201
|
-
: []),
|
|
202
140
|
// Image tools
|
|
203
141
|
...(isToolkitEnabled("images", toolkitFilters)
|
|
204
142
|
? [
|
|
@@ -222,6 +160,21 @@ async function newServer() {
|
|
|
222
160
|
description: "Get the SBOM of a container image",
|
|
223
161
|
inputSchema: zodToJsonSchema(images.GetImageSBOMSchema),
|
|
224
162
|
},
|
|
163
|
+
{
|
|
164
|
+
name: "ignore_cve",
|
|
165
|
+
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.",
|
|
166
|
+
inputSchema: zodToJsonSchema(cveDispositions.ignoreCveSchema),
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
name: "unignore_cve",
|
|
170
|
+
description: "Remove an account-wide CVE disposition, restoring the CVE to vulnerability reporting.",
|
|
171
|
+
inputSchema: zodToJsonSchema(cveDispositions.unignoreCveSchema),
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
name: "list_cve_dispositions",
|
|
175
|
+
description: "List active CVE dispositions (ignored / false positive) for this account, with reason and author.",
|
|
176
|
+
inputSchema: zodToJsonSchema(cveDispositions.listCveDispositionsSchema),
|
|
177
|
+
},
|
|
225
178
|
]
|
|
226
179
|
: []),
|
|
227
180
|
// Kubernetes Object tools
|
|
@@ -279,36 +232,6 @@ async function newServer() {
|
|
|
279
232
|
},
|
|
280
233
|
]
|
|
281
234
|
: []),
|
|
282
|
-
// Runtime Network tools
|
|
283
|
-
...(isToolkitEnabled("runtime_network", toolkitFilters)
|
|
284
|
-
? [
|
|
285
|
-
{
|
|
286
|
-
name: "list_http_requests",
|
|
287
|
-
description: "List HTTP requests insights with optional filtering by method, path, source and destination workloads, and PII detection",
|
|
288
|
-
inputSchema: zodToJsonSchema(runtimeNetwork.listHttpRequestsSchema),
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
name: "list_network_connections",
|
|
292
|
-
description: "List network connections with optional filtering",
|
|
293
|
-
inputSchema: zodToJsonSchema(runtimeNetwork.listNetworkConnectionsSchema),
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
name: "list_network_connection_srcs",
|
|
297
|
-
description: "List network connection sources with optional filtering by source and destination workloads",
|
|
298
|
-
inputSchema: zodToJsonSchema(runtimeNetwork.listNetworkConnectionSourcesSchema),
|
|
299
|
-
},
|
|
300
|
-
]
|
|
301
|
-
: []),
|
|
302
|
-
// Threat Vectors tools
|
|
303
|
-
...(isToolkitEnabled("threats", toolkitFilters)
|
|
304
|
-
? [
|
|
305
|
-
{
|
|
306
|
-
name: "list_threat_vectors",
|
|
307
|
-
description: "List threat vectors",
|
|
308
|
-
inputSchema: zodToJsonSchema(threats.listThreatVectorsSchema),
|
|
309
|
-
},
|
|
310
|
-
]
|
|
311
|
-
: []),
|
|
312
235
|
// Findings tools
|
|
313
236
|
...(isToolkitEnabled("findings", toolkitFilters)
|
|
314
237
|
? [
|
|
@@ -463,7 +386,7 @@ async function newServer() {
|
|
|
463
386
|
? [
|
|
464
387
|
{
|
|
465
388
|
name: "radql_list_data_types",
|
|
466
|
-
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', '
|
|
389
|
+
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.",
|
|
467
390
|
inputSchema: zodToJsonSchema(radql.RadQLListDataTypesSchema),
|
|
468
391
|
},
|
|
469
392
|
{
|
|
@@ -487,7 +410,7 @@ containers: name, image_name, image_repo, owner_kind, cluster_id, created_at
|
|
|
487
410
|
Example: image_name:*nginx* AND owner_kind:Pod
|
|
488
411
|
|
|
489
412
|
finding_groups: type, source_kind, source_name, rule_title, severity, event_timestamp
|
|
490
|
-
Types: k8s_misconfiguration, k8s_audit_logs_anomaly
|
|
413
|
+
Types: k8s_misconfiguration, k8s_audit_logs_anomaly
|
|
491
414
|
Example: type:k8s_misconfiguration AND severity:critical
|
|
492
415
|
|
|
493
416
|
inbox_items: severity (High|Medium|Low), type, title, archived, false_positive, created_at
|
|
@@ -496,6 +419,16 @@ inbox_items: severity (High|Medium|Low), type, title, archived, false_positive,
|
|
|
496
419
|
kubernetes_resources: kind, name, namespace, cluster_id, owner_kind, created_at
|
|
497
420
|
Example: kind:Deployment AND namespace:production
|
|
498
421
|
|
|
422
|
+
CLOUD RESOURCES & COMPLIANCE (use these RadQL data types instead of dedicated cloud tools):
|
|
423
|
+
cloud_resources: cloud_provider, cloud_account_id, resource_type, resource_name, resource_id, resource_json, last_seen_at
|
|
424
|
+
Example: cloud_provider:aws AND resource_type:aws_iam_policy
|
|
425
|
+
|
|
426
|
+
cloud_benchmark_summaries: cloud_provider, cloud_account_id, benchmark_id, title, description, fail_count, pass_count, total_count, last_seen_at
|
|
427
|
+
Example: cloud_provider:aws AND fail_count>0
|
|
428
|
+
|
|
429
|
+
cloud_benchmarks: cloud_provider, cloud_account_id, benchmark_id, control_id, control_title, severity, status, reason, resource_id, last_seen_at
|
|
430
|
+
Example: status:fail AND benchmark_id:*cis*
|
|
431
|
+
|
|
499
432
|
CRITICAL QUOTING RULES:
|
|
500
433
|
MUST quote when value contains:
|
|
501
434
|
- Dates/timestamps: created_at>"2024-01-01" (NOT created_at>2024-01-01)
|
|
@@ -561,6 +494,16 @@ For complete schema: call radql_get_type_metadata with target data_type`,
|
|
|
561
494
|
},
|
|
562
495
|
]
|
|
563
496
|
: []),
|
|
497
|
+
// Integrations tools
|
|
498
|
+
...(isToolkitEnabled("integrations", toolkitFilters)
|
|
499
|
+
? [
|
|
500
|
+
{
|
|
501
|
+
name: "list_external_integrations",
|
|
502
|
+
description: "List external integrations configured for the tenant (e.g., Slack, AWS CloudTrail, Okta). Returns integration details including capabilities, configuration, mcp support and sync status.",
|
|
503
|
+
inputSchema: zodToJsonSchema(integrations.ListExternalIntegrationsSchema),
|
|
504
|
+
},
|
|
505
|
+
]
|
|
506
|
+
: []),
|
|
564
507
|
];
|
|
565
508
|
return {
|
|
566
509
|
tools: allTools,
|
|
@@ -642,128 +585,63 @@ For complete schema: call radql_get_type_metadata with target data_type`,
|
|
|
642
585
|
],
|
|
643
586
|
};
|
|
644
587
|
}
|
|
645
|
-
//
|
|
646
|
-
case "
|
|
647
|
-
const args =
|
|
648
|
-
const response = await
|
|
649
|
-
return {
|
|
650
|
-
content: [
|
|
651
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
652
|
-
],
|
|
653
|
-
};
|
|
654
|
-
}
|
|
655
|
-
case "get_cloud_resource_details": {
|
|
656
|
-
const args = cloudInventory.GetCloudResourceDetailsSchema.parse(request.params.arguments);
|
|
657
|
-
const response = await cloudInventory.getCloudResourceDetails(client, args.provider, args.resource_type, args.resource_id);
|
|
658
|
-
return {
|
|
659
|
-
content: [
|
|
660
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
661
|
-
],
|
|
662
|
-
};
|
|
663
|
-
}
|
|
664
|
-
case "get_cloud_resource_facets": {
|
|
665
|
-
const args = cloudInventory.GetCloudResourceFacetsSchema.parse(request.params.arguments);
|
|
666
|
-
const response = await cloudInventory.getCloudResourceFacets(client, args.provider);
|
|
667
|
-
return {
|
|
668
|
-
content: [
|
|
669
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
670
|
-
],
|
|
671
|
-
};
|
|
672
|
-
}
|
|
673
|
-
case "get_cloud_resource_facet_value": {
|
|
674
|
-
const args = cloudInventory.GetCloudResourceFacetValuesSchema.parse(request.params.arguments);
|
|
675
|
-
const response = await cloudInventory.getCloudResourceFacetValues(client, args.provider, args.facet_id);
|
|
676
|
-
return {
|
|
677
|
-
content: [
|
|
678
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
679
|
-
],
|
|
680
|
-
};
|
|
681
|
-
}
|
|
682
|
-
// Cloud Compliance tools
|
|
683
|
-
case "list_compliance_frameworks": {
|
|
684
|
-
const args = cloudCompliance.ListComplianceFrameworksSchema.parse(request.params.arguments);
|
|
685
|
-
const response = await cloudCompliance.listComplianceFrameworks(client, args.datasource_ids, args.page, args.page_size);
|
|
686
|
-
return {
|
|
687
|
-
content: [
|
|
688
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
689
|
-
],
|
|
690
|
-
};
|
|
691
|
-
}
|
|
692
|
-
case "list_framework_requirements": {
|
|
693
|
-
const args = cloudCompliance.ListFrameworkRequirementsSchema.parse(request.params.arguments);
|
|
694
|
-
const response = await cloudCompliance.listFrameworkRequirements(client, args.framework_name, args.datasource_ids, args.page, args.page_size);
|
|
695
|
-
return {
|
|
696
|
-
content: [
|
|
697
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
698
|
-
],
|
|
699
|
-
};
|
|
700
|
-
}
|
|
701
|
-
case "list_requirement_controls": {
|
|
702
|
-
const args = cloudCompliance.ListRequirementControlsSchema.parse(request.params.arguments);
|
|
703
|
-
const response = await cloudCompliance.listRequirementControls(client, args.framework_name, args.requirement_id, args.datasource_ids, args.page, args.page_size);
|
|
588
|
+
// Image tools
|
|
589
|
+
case "list_images": {
|
|
590
|
+
const args = images.ListImagesSchema.parse(request.params.arguments);
|
|
591
|
+
const response = await images.listImages(client, args.limit, args.offset, args.sort, args.filters, args.q);
|
|
704
592
|
return {
|
|
705
593
|
content: [
|
|
706
594
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
707
595
|
],
|
|
708
596
|
};
|
|
709
597
|
}
|
|
710
|
-
case "
|
|
711
|
-
const args =
|
|
712
|
-
const response = await
|
|
598
|
+
case "list_image_vulnerabilities": {
|
|
599
|
+
const args = images.ListImageVulnerabilitiesSchema.parse(request.params.arguments);
|
|
600
|
+
const response = await images.listImageVulnerabilities(client, args.digest, args.severities, args.page, args.page_size);
|
|
713
601
|
return {
|
|
714
602
|
content: [
|
|
715
603
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
716
604
|
],
|
|
717
605
|
};
|
|
718
606
|
}
|
|
719
|
-
case "
|
|
720
|
-
const
|
|
721
|
-
const response = await cloudCompliance.getComplianceControl(client, args.control_name, args.datasource_ids);
|
|
607
|
+
case "get_top_vulnerable_images": {
|
|
608
|
+
const response = await images.getTopVulnerableImages(client);
|
|
722
609
|
return {
|
|
723
610
|
content: [
|
|
724
611
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
725
612
|
],
|
|
726
613
|
};
|
|
727
614
|
}
|
|
728
|
-
case "
|
|
729
|
-
const args =
|
|
730
|
-
const response = await
|
|
615
|
+
case "get_image_sbom": {
|
|
616
|
+
const args = images.GetImageSBOMSchema.parse(request.params.arguments);
|
|
617
|
+
const response = await images.getImageSBOM(client, args.digest);
|
|
731
618
|
return {
|
|
732
619
|
content: [
|
|
733
620
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
734
621
|
],
|
|
735
622
|
};
|
|
736
623
|
}
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
const
|
|
740
|
-
const response = await images.listImages(client, args.limit, args.offset, args.sort, args.filters, args.q);
|
|
624
|
+
case "ignore_cve": {
|
|
625
|
+
const args = cveDispositions.ignoreCveSchema.parse(request.params.arguments);
|
|
626
|
+
const response = await cveDispositions.ignoreCve(client, args.cve_name, args.disposition, args.reason);
|
|
741
627
|
return {
|
|
742
628
|
content: [
|
|
743
629
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
744
630
|
],
|
|
745
631
|
};
|
|
746
632
|
}
|
|
747
|
-
case "
|
|
748
|
-
const args =
|
|
749
|
-
const response = await
|
|
633
|
+
case "unignore_cve": {
|
|
634
|
+
const args = cveDispositions.unignoreCveSchema.parse(request.params.arguments);
|
|
635
|
+
const response = await cveDispositions.unignoreCve(client, args.cve_name);
|
|
750
636
|
return {
|
|
751
637
|
content: [
|
|
752
638
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
753
639
|
],
|
|
754
640
|
};
|
|
755
641
|
}
|
|
756
|
-
case "
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
content: [
|
|
760
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
761
|
-
],
|
|
762
|
-
};
|
|
763
|
-
}
|
|
764
|
-
case "get_image_sbom": {
|
|
765
|
-
const args = images.GetImageSBOMSchema.parse(request.params.arguments);
|
|
766
|
-
const response = await images.getImageSBOM(client, args.digest);
|
|
642
|
+
case "list_cve_dispositions": {
|
|
643
|
+
cveDispositions.listCveDispositionsSchema.parse(request.params.arguments);
|
|
644
|
+
const response = await cveDispositions.listCveDispositions(client);
|
|
767
645
|
return {
|
|
768
646
|
content: [
|
|
769
647
|
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
@@ -844,44 +722,6 @@ For complete schema: call radql_get_type_metadata with target data_type`,
|
|
|
844
722
|
],
|
|
845
723
|
};
|
|
846
724
|
}
|
|
847
|
-
// Runtime Network tools
|
|
848
|
-
case "list_http_requests": {
|
|
849
|
-
const args = runtimeNetwork.listHttpRequestsSchema.parse(request.params.arguments);
|
|
850
|
-
const response = await runtimeNetwork.listHttpRequests(client, args);
|
|
851
|
-
return {
|
|
852
|
-
content: [
|
|
853
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
854
|
-
],
|
|
855
|
-
};
|
|
856
|
-
}
|
|
857
|
-
case "list_network_connections": {
|
|
858
|
-
const args = runtimeNetwork.listNetworkConnectionsSchema.parse(request.params.arguments);
|
|
859
|
-
const response = await runtimeNetwork.listNetworkConnections(client, args);
|
|
860
|
-
return {
|
|
861
|
-
content: [
|
|
862
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
863
|
-
],
|
|
864
|
-
};
|
|
865
|
-
}
|
|
866
|
-
case "list_network_connection_srcs": {
|
|
867
|
-
const args = runtimeNetwork.listNetworkConnectionSourcesSchema.parse(request.params.arguments);
|
|
868
|
-
const response = await runtimeNetwork.listNetworkConnectionSources(client, args);
|
|
869
|
-
return {
|
|
870
|
-
content: [
|
|
871
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
872
|
-
],
|
|
873
|
-
};
|
|
874
|
-
}
|
|
875
|
-
// Threat Vectors tools
|
|
876
|
-
case "list_threat_vectors": {
|
|
877
|
-
const args = threats.listThreatVectorsSchema.parse(request.params.arguments);
|
|
878
|
-
const response = await threats.listThreatVectors(client, args.clustersIds, args.namespaces, args.resource_uid, args.page, args.page_size);
|
|
879
|
-
return {
|
|
880
|
-
content: [
|
|
881
|
-
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
882
|
-
],
|
|
883
|
-
};
|
|
884
|
-
}
|
|
885
725
|
// Findings tools
|
|
886
726
|
case "list_security_findings": {
|
|
887
727
|
const args = findings.listFindingsSchema.parse(request.params.arguments);
|
|
@@ -1212,6 +1052,16 @@ For complete schema: call radql_get_type_metadata with target data_type`,
|
|
|
1212
1052
|
],
|
|
1213
1053
|
};
|
|
1214
1054
|
}
|
|
1055
|
+
// Integrations tools
|
|
1056
|
+
case "list_external_integrations": {
|
|
1057
|
+
const args = integrations.ListExternalIntegrationsSchema.parse(request.params.arguments);
|
|
1058
|
+
const response = await integrations.listExternalIntegrations(client, args.offset, args.limit);
|
|
1059
|
+
return {
|
|
1060
|
+
content: [
|
|
1061
|
+
{ type: "text", text: JSON.stringify(response, null, 2) },
|
|
1062
|
+
],
|
|
1063
|
+
};
|
|
1064
|
+
}
|
|
1215
1065
|
default:
|
|
1216
1066
|
throw new Error(`Unknown tool: ${toolName}`);
|
|
1217
1067
|
}
|