@chkp/policy-insights-mcp 0.3.5 → 0.4.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/dist/index.js CHANGED
@@ -1,8 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __esm = (fn, res) => function __init() {
5
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
4
+ var __esm = (fn, res, err) => function __init() {
5
+ if (err) throw err[0];
6
+ try {
7
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
8
+ } catch (e) {
9
+ throw err = [e], e;
10
+ }
6
11
  };
7
12
  var __export = (target, all) => {
8
13
  for (var name in all)
@@ -370,7 +375,7 @@ var toolDefinitionMap = [
370
375
  "properties": {}
371
376
  },
372
377
  "method": "post",
373
- "pathTemplate": "/insights/v3.0/show-card-info",
378
+ "pathTemplate": "/insights/v3.1/show-card-info",
374
379
  "parameters": [],
375
380
  "executionParameters": [],
376
381
  "securityRequirements": [],
@@ -379,22 +384,306 @@ var toolDefinitionMap = [
379
384
  },
380
385
  {
381
386
  "name": "ShowConfig",
382
- "description": "Get user configuration and settings for Policy Insights product",
387
+ "description": "Get user configuration and settings for Policy Insights product\n\nResponse includes all configuration fields with their current value,\nwhether the value is overridden from default, and the default value.",
383
388
  "inputSchema": {
384
389
  "type": "object",
385
390
  "properties": {}
386
391
  },
387
392
  "method": "post",
388
- "pathTemplate": "/insights/v3.0/show-config",
393
+ "pathTemplate": "/insights/v3.1/show-config",
389
394
  "parameters": [],
390
395
  "executionParameters": [],
391
396
  "securityRequirements": [],
392
397
  "operationId": "ShowConfig",
393
398
  "baseUrl": ""
394
399
  },
400
+ {
401
+ "name": "ShowReportLayers",
402
+ "description": "Retrieve detailed layer information with suggestion counts and security metrics.\nSupports pagination, filtering, and sorting.\n\nResponse includes layer details such as:\n- Security score and total rules\n- Suggestion counts (all and top priority)\n- Associated policy packages\n- Custom icons and colors\n\nSupports text search and ordering by various fields.",
403
+ "inputSchema": {
404
+ "type": "object",
405
+ "properties": {
406
+ "requestBody": {
407
+ "properties": {
408
+ "filters": {
409
+ "properties": {
410
+ "policy-id": {
411
+ "type": "string",
412
+ "format": "uuid",
413
+ "description": "Policy identifier associated with the event",
414
+ "pattern": "^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$"
415
+ },
416
+ "layer-id": {
417
+ "type": "string",
418
+ "format": "uuid",
419
+ "description": "Layer identifier associated with the event",
420
+ "pattern": "^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$"
421
+ },
422
+ "text": {
423
+ "type": "string",
424
+ "description": "Text string for searching or matching"
425
+ }
426
+ },
427
+ "type": "object"
428
+ },
429
+ "limit": {
430
+ "type": "number",
431
+ "format": "int32",
432
+ "description": "Maximum number of items to return"
433
+ },
434
+ "offset": {
435
+ "type": "number",
436
+ "format": "int32",
437
+ "description": "Number of items to skip for pagination"
438
+ },
439
+ "order": {
440
+ "items": {
441
+ "properties": {
442
+ "ASC": {
443
+ "type": "string",
444
+ "description": "Sort order field name for ascending order"
445
+ },
446
+ "DESC": {
447
+ "type": "string",
448
+ "description": "Sort order field name for descending order"
449
+ }
450
+ },
451
+ "type": "object"
452
+ },
453
+ "type": "array",
454
+ "description": "Array of order configurations for sorting results"
455
+ }
456
+ },
457
+ "type": "object",
458
+ "description": "The JSON request body."
459
+ }
460
+ },
461
+ "required": [
462
+ "requestBody"
463
+ ]
464
+ },
465
+ "method": "post",
466
+ "pathTemplate": "/insights/v3.1/show-report-layers",
467
+ "parameters": [],
468
+ "executionParameters": [],
469
+ "requestBodyContentType": "application/json",
470
+ "securityRequirements": [],
471
+ "operationId": "ShowReportLayers",
472
+ "baseUrl": ""
473
+ },
474
+ {
475
+ "name": "ShowReportStats",
476
+ "description": "Retrieve global statistics for the entire tenant.\nNo filters required - provides tenant-wide metrics.\n\nResponse includes:\n- Total rules and objects with recent changes\n- Log telemetry coverage (days and count)\n- Reporting server statistics\n- Total traffic logs analyzed\n\nUseful for executive dashboard and health monitoring.",
477
+ "inputSchema": {
478
+ "type": "object",
479
+ "properties": {
480
+ "requestBody": {
481
+ "properties": {},
482
+ "type": "object",
483
+ "description": "The JSON request body."
484
+ }
485
+ },
486
+ "required": [
487
+ "requestBody"
488
+ ]
489
+ },
490
+ "method": "post",
491
+ "pathTemplate": "/insights/v3.1/show-report-stats",
492
+ "parameters": [],
493
+ "executionParameters": [],
494
+ "requestBodyContentType": "application/json",
495
+ "securityRequirements": [],
496
+ "operationId": "ShowReportStats",
497
+ "baseUrl": ""
498
+ },
499
+ {
500
+ "name": "ShowReportSuggestionCategories",
501
+ "description": "Retrieve suggestion categories report showing distribution of suggestions by type over time.\nProvides insights into which types of suggestions are being generated.\n\nResponse includes both 'all' suggestions and 'top' priority suggestions,\nbroken down by category (unused-objects, tighten-rule, etc.) per day.",
502
+ "inputSchema": {
503
+ "type": "object",
504
+ "properties": {
505
+ "requestBody": {
506
+ "properties": {
507
+ "filters": {
508
+ "properties": {
509
+ "policy-id": {
510
+ "type": "string",
511
+ "format": "uuid",
512
+ "description": "Policy identifier associated with the event",
513
+ "pattern": "^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$"
514
+ },
515
+ "layer-id": {
516
+ "type": "string",
517
+ "format": "uuid",
518
+ "description": "Layer identifier associated with the event",
519
+ "pattern": "^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$"
520
+ },
521
+ "suggestion-type": {
522
+ "description": "Type of insight",
523
+ "enum": [
524
+ "unused-objects",
525
+ "tighten-rule",
526
+ "delete-disabled-rule",
527
+ "zero-hits-rule"
528
+ ],
529
+ "type": "string",
530
+ "x-enum-varnames": [
531
+ "UnusedObjects",
532
+ "TightenRule",
533
+ "DeleteDisabledRule",
534
+ "ZeroHitsRule"
535
+ ]
536
+ },
537
+ "start-date": {
538
+ "type": "string",
539
+ "description": "Timestamp when the operation started"
540
+ }
541
+ },
542
+ "type": "object"
543
+ }
544
+ },
545
+ "type": "object",
546
+ "description": "The JSON request body."
547
+ }
548
+ },
549
+ "required": [
550
+ "requestBody"
551
+ ]
552
+ },
553
+ "method": "post",
554
+ "pathTemplate": "/insights/v3.1/show-report-suggestion-categories",
555
+ "parameters": [],
556
+ "executionParameters": [],
557
+ "requestBodyContentType": "application/json",
558
+ "securityRequirements": [],
559
+ "operationId": "ShowReportSuggestionCategories",
560
+ "baseUrl": ""
561
+ },
562
+ {
563
+ "name": "ShowReportSummary",
564
+ "description": "Retrieve summary statistics for policy insights reporting.\nProvides high-level metrics including top insights, total insights, and security scores.\n\nCan be filtered by policy or layer to show specific scope.\nIncludes count of suggestions marked as 'decide later'.",
565
+ "inputSchema": {
566
+ "type": "object",
567
+ "properties": {
568
+ "requestBody": {
569
+ "properties": {
570
+ "filters": {
571
+ "properties": {
572
+ "policy-id": {
573
+ "type": "string",
574
+ "format": "uuid",
575
+ "description": "Policy identifier associated with the event",
576
+ "pattern": "^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$"
577
+ },
578
+ "layer-id": {
579
+ "type": "string",
580
+ "format": "uuid",
581
+ "description": "Layer identifier associated with the event",
582
+ "pattern": "^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$"
583
+ },
584
+ "suggestion-type": {
585
+ "description": "Type of insight",
586
+ "enum": [
587
+ "unused-objects",
588
+ "tighten-rule",
589
+ "delete-disabled-rule",
590
+ "zero-hits-rule"
591
+ ],
592
+ "type": "string",
593
+ "x-enum-varnames": [
594
+ "UnusedObjects",
595
+ "TightenRule",
596
+ "DeleteDisabledRule",
597
+ "ZeroHitsRule"
598
+ ]
599
+ }
600
+ },
601
+ "type": "object"
602
+ }
603
+ },
604
+ "type": "object",
605
+ "description": "The JSON request body."
606
+ }
607
+ },
608
+ "required": [
609
+ "requestBody"
610
+ ]
611
+ },
612
+ "method": "post",
613
+ "pathTemplate": "/insights/v3.1/show-report-summary",
614
+ "parameters": [],
615
+ "executionParameters": [],
616
+ "requestBodyContentType": "application/json",
617
+ "securityRequirements": [],
618
+ "operationId": "ShowReportSummary",
619
+ "baseUrl": ""
620
+ },
621
+ {
622
+ "name": "ShowReportUserActions",
623
+ "description": "Retrieve user actions report showing accepted and rejected suggestions over time.\nProvides historical data for tracking user engagement with suggestions.\n\nResponse includes daily breakdown of accepted vs rejected suggestions,\nfiltered by policy, layer, suggestion type, and date range.",
624
+ "inputSchema": {
625
+ "type": "object",
626
+ "properties": {
627
+ "requestBody": {
628
+ "properties": {
629
+ "filters": {
630
+ "properties": {
631
+ "policy-id": {
632
+ "type": "string",
633
+ "format": "uuid",
634
+ "description": "Policy identifier associated with the event",
635
+ "pattern": "^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$"
636
+ },
637
+ "layer-id": {
638
+ "type": "string",
639
+ "format": "uuid",
640
+ "description": "Layer identifier associated with the event",
641
+ "pattern": "^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$"
642
+ },
643
+ "suggestion-type": {
644
+ "description": "Type of insight",
645
+ "enum": [
646
+ "unused-objects",
647
+ "tighten-rule",
648
+ "delete-disabled-rule",
649
+ "zero-hits-rule"
650
+ ],
651
+ "type": "string",
652
+ "x-enum-varnames": [
653
+ "UnusedObjects",
654
+ "TightenRule",
655
+ "DeleteDisabledRule",
656
+ "ZeroHitsRule"
657
+ ]
658
+ },
659
+ "start-date": {
660
+ "type": "string",
661
+ "description": "Timestamp when the operation started"
662
+ }
663
+ },
664
+ "type": "object"
665
+ }
666
+ },
667
+ "type": "object",
668
+ "description": "The JSON request body."
669
+ }
670
+ },
671
+ "required": [
672
+ "requestBody"
673
+ ]
674
+ },
675
+ "method": "post",
676
+ "pathTemplate": "/insights/v3.1/show-report-user-actions",
677
+ "parameters": [],
678
+ "executionParameters": [],
679
+ "requestBodyContentType": "application/json",
680
+ "securityRequirements": [],
681
+ "operationId": "ShowReportUserActions",
682
+ "baseUrl": ""
683
+ },
395
684
  {
396
685
  "name": "ShowRulesUidsWithSuggestions",
397
- "description": "Retrieve rule UIDs that have suggestions for a specific suggestion type using the required layer UID\nEnhanced to show both direct suggestions and inline layer suggestions",
686
+ "description": "Retrieve rule UIDs that have suggestions for a specific suggestion type using the required layer UID.\nEnhanced to show both direct suggestions and inline layer suggestions.\nSupports filtering by suggestion creation time using start-date (ISO 8601 format).",
398
687
  "inputSchema": {
399
688
  "type": "object",
400
689
  "properties": {
@@ -511,6 +800,11 @@ var toolDefinitionMap = [
511
800
  "DeleteDisabledRule",
512
801
  "ZeroHitsRule"
513
802
  ]
803
+ },
804
+ "start-date": {
805
+ "type": "string",
806
+ "description": "Timestamp when the suggestion was created",
807
+ "format": "date-time"
514
808
  }
515
809
  },
516
810
  "required": [
@@ -532,7 +826,7 @@ var toolDefinitionMap = [
532
826
  ]
533
827
  },
534
828
  "method": "post",
535
- "pathTemplate": "/insights/v3.0/show-rules-uids-with-suggestions",
829
+ "pathTemplate": "/insights/v3.1/show-rules-uids-with-suggestions",
536
830
  "parameters": [],
537
831
  "executionParameters": [],
538
832
  "requestBodyContentType": "application/json",
@@ -548,7 +842,7 @@ var toolDefinitionMap = [
548
842
  "properties": {}
549
843
  },
550
844
  "method": "post",
551
- "pathTemplate": "/insights/v3.0/show-state",
845
+ "pathTemplate": "/insights/v3.1/show-state",
552
846
  "parameters": [],
553
847
  "executionParameters": [],
554
848
  "securityRequirements": [],
@@ -594,7 +888,7 @@ var toolDefinitionMap = [
594
888
  ]
595
889
  },
596
890
  "method": "post",
597
- "pathTemplate": "/insights/v3.0/show-suggestion-engine-metadata",
891
+ "pathTemplate": "/insights/v3.1/show-suggestion-engine-metadata",
598
892
  "parameters": [],
599
893
  "executionParameters": [],
600
894
  "requestBodyContentType": "application/json",
@@ -604,7 +898,7 @@ var toolDefinitionMap = [
604
898
  },
605
899
  {
606
900
  "name": "ShowSuggestions",
607
- "description": 'Retrieve all suggestions with advanced filtering capabilities.\nIncludes suggestions from all inline layers.\nExcludes rejected/accepted suggestions by default.\n\nRequired Parameters:\n- Must provide either "layer" OR "filters.rules-uids" OR "filters.uids"\n- Cannot retrieve suggestions without specifying at least one of these targeting parameters',
901
+ "description": 'Retrieve all suggestions with advanced filtering capabilities.\nIncludes suggestions from all inline layers.\nExcludes rejected/accepted suggestions by default.\nSupports filtering by suggestion creation time using start-date (ISO 8601 format).\n\nRequired Parameters:\n- Must provide either "layer" OR "filters.rules-uids" OR "filters.uids"\n- Cannot retrieve suggestions without specifying at least one of these targeting parameters',
608
902
  "inputSchema": {
609
903
  "type": "object",
610
904
  "properties": {
@@ -764,13 +1058,18 @@ var toolDefinitionMap = [
764
1058
  },
765
1059
  "type": "array",
766
1060
  "description": "Type of insight"
1061
+ },
1062
+ "start-date": {
1063
+ "type": "string",
1064
+ "description": "Timestamp when the suggestion was created",
1065
+ "format": "date-time"
767
1066
  }
768
1067
  },
769
1068
  "type": "object"
770
1069
  }
771
1070
  },
772
1071
  "type": "object",
773
- "description": "Parameters for showing suggestions with enhanced v3.0 capabilities"
1072
+ "description": "Parameters for showing suggestions with v3.1 capabilities"
774
1073
  }
775
1074
  },
776
1075
  "required": [
@@ -778,7 +1077,7 @@ var toolDefinitionMap = [
778
1077
  ]
779
1078
  },
780
1079
  "method": "post",
781
- "pathTemplate": "/insights/v3.0/show-suggestions",
1080
+ "pathTemplate": "/insights/v3.1/show-suggestions",
782
1081
  "parameters": [],
783
1082
  "executionParameters": [],
784
1083
  "requestBodyContentType": "application/json",
@@ -813,7 +1112,7 @@ var toolDefinitionMap = [
813
1112
  ]
814
1113
  },
815
1114
  "method": "post",
816
- "pathTemplate": "/insights/v3.0/show-suggestions-info",
1115
+ "pathTemplate": "/insights/v3.1/show-suggestions-info",
817
1116
  "parameters": [],
818
1117
  "executionParameters": [],
819
1118
  "requestBodyContentType": "application/json",
@@ -823,7 +1122,7 @@ var toolDefinitionMap = [
823
1122
  },
824
1123
  {
825
1124
  "name": "ShowSuggestionsSummary",
826
- "description": "Retrieve number of rule suggestions grouped by their type.\nProvides generation batch metadata about the current suggestions we see: how many days of traffic logs were analyzed, on which publish timestamp the suggestions are based on.",
1125
+ "description": "Retrieve number of rule suggestions grouped by their type.\nProvides generation batch metadata about the current suggestions we see: how many days of traffic logs\nwere analyzed, on which publish timestamp the suggestions are based on.\nSupports filtering by suggestion creation time using start-date (ISO 8601 format).",
827
1126
  "inputSchema": {
828
1127
  "type": "object",
829
1128
  "properties": {
@@ -924,6 +1223,11 @@ var toolDefinitionMap = [
924
1223
  "NONE"
925
1224
  ],
926
1225
  "description": "Ignore default filtering of the system"
1226
+ },
1227
+ "start-date": {
1228
+ "type": "string",
1229
+ "description": "Timestamp when the suggestion was created",
1230
+ "format": "date-time"
927
1231
  }
928
1232
  },
929
1233
  "type": "object"
@@ -938,7 +1242,7 @@ var toolDefinitionMap = [
938
1242
  ]
939
1243
  },
940
1244
  "method": "post",
941
- "pathTemplate": "/insights/v3.0/show-suggestions-summary",
1245
+ "pathTemplate": "/insights/v3.1/show-suggestions-summary",
942
1246
  "parameters": [],
943
1247
  "executionParameters": [],
944
1248
  "requestBodyContentType": "application/json",
@@ -948,7 +1252,7 @@ var toolDefinitionMap = [
948
1252
  },
949
1253
  {
950
1254
  "name": "ShowPolicyInsightsStatus",
951
- "description": "Shows Policy Insights status, reflecting the overall status of the product including supported API versions.\nReturns both Insights API versions and Threat Prevention Insights API versions when Threat Prevention is enabled.\nMay also include license status information if available.\nA license is required to activate the product, and the status provides details about the validity and expiration of the product license.",
1255
+ "description": "Shows Policy Insights status, reflecting the overall status of the product including supported API versions.\nReturns both Insights API versions and Threat Prevention Insights API versions when Threat Prevention is enabled.\nMay also include license status information if available.\nA license is required to activate the product, and the status provides details about the validity and expiration of the product license.\nMay return status messages providing additional context about the product status, such as activation progress.",
952
1256
  "inputSchema": {
953
1257
  "type": "object",
954
1258
  "properties": {}
@@ -2476,10 +2780,17 @@ var APIManagerBase = class {
2476
2780
  * Call an API endpoint
2477
2781
  */
2478
2782
  async callApi(method, uri, data, domain) {
2783
+ return (await this.callApiWithStatus(method, uri, data, domain)).response;
2784
+ }
2785
+ /**
2786
+ * Call an API endpoint and return both the HTTP status code and the response body.
2787
+ * Used by callers that need to track the underlying HTTP status (e.g. management-write).
2788
+ */
2789
+ async callApiWithStatus(method, uri, data, domain) {
2479
2790
  const sanitizedData = sanitizeData(data);
2480
2791
  const apiClient = domain && !data["domains-to-process"] ? await this.getDomainApiClientByDomain(domain) : this.client;
2481
2792
  const clientResponse = await apiClient.callApi(method, uri, sanitizedData, void 0);
2482
- return clientResponse.response;
2793
+ return { status: clientResponse.status, response: clientResponse.response };
2483
2794
  }
2484
2795
  /**
2485
2796
  * Get the result of a management API task (similar to getTaskResult but for management tasks)
@@ -3216,12 +3527,17 @@ import { z } from "zod";
3216
3527
  var zodSchemas = {
3217
3528
  ShowCardInfo: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional() },
3218
3529
  ShowConfig: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional() },
3219
- ShowRulesUidsWithSuggestions: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "layer": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Access layer identifier in UUID format"), "filters": z.object({ "states": z.array(z.enum(["ACCEPTED", "REJECTED"]).describe("State of a suggestion - either ACCEPTED or REJECTED")).describe("Array of insight state values").optional(), "user-interaction": z.object({ "operator": z.enum(["NOT-IN", "IN"]).describe("Operator for filtering by user-interaction-types").optional(), "types": z.array(z.literal("DECIDE_LATER").describe("Type of user interaction with an insight")).describe("Array of user interaction type values") }).optional(), "security-impact": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum security impact threshold to include").optional(), "confidence-level": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum confidence threshold to include").optional(), "default-filter": z.literal("NONE").describe("Ignore default filtering of the system").optional(), "suggestions-type": z.enum(["unused-objects", "tighten-rule", "delete-disabled-rule", "zero-hits-rule"]).describe("Type of insight") }) }).describe("Parameters for showing rules UIDs with their suggestions") },
3530
+ ShowReportLayers: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "filters": z.object({ "policy-id": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Policy identifier associated with the event").optional(), "layer-id": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Layer identifier associated with the event").optional(), "text": z.string().describe("Text string for searching or matching").optional() }).optional(), "limit": z.number().describe("Maximum number of items to return").optional(), "offset": z.number().describe("Number of items to skip for pagination").optional(), "order": z.array(z.object({ "ASC": z.string().describe("Sort order field name for ascending order").optional(), "DESC": z.string().describe("Sort order field name for descending order").optional() })).describe("Array of order configurations for sorting results").optional() }).describe("The JSON request body.") },
3531
+ ShowReportStats: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({}).describe("The JSON request body.") },
3532
+ ShowReportSuggestionCategories: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "filters": z.object({ "policy-id": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Policy identifier associated with the event").optional(), "layer-id": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Layer identifier associated with the event").optional(), "suggestion-type": z.enum(["unused-objects", "tighten-rule", "delete-disabled-rule", "zero-hits-rule"]).describe("Type of insight").optional(), "start-date": z.string().describe("Timestamp when the operation started").optional() }).optional() }).describe("The JSON request body.") },
3533
+ ShowReportSummary: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "filters": z.object({ "policy-id": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Policy identifier associated with the event").optional(), "layer-id": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Layer identifier associated with the event").optional(), "suggestion-type": z.enum(["unused-objects", "tighten-rule", "delete-disabled-rule", "zero-hits-rule"]).describe("Type of insight").optional() }).optional() }).describe("The JSON request body.") },
3534
+ ShowReportUserActions: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "filters": z.object({ "policy-id": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Policy identifier associated with the event").optional(), "layer-id": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Layer identifier associated with the event").optional(), "suggestion-type": z.enum(["unused-objects", "tighten-rule", "delete-disabled-rule", "zero-hits-rule"]).describe("Type of insight").optional(), "start-date": z.string().describe("Timestamp when the operation started").optional() }).optional() }).describe("The JSON request body.") },
3535
+ ShowRulesUidsWithSuggestions: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "layer": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Access layer identifier in UUID format"), "filters": z.object({ "states": z.array(z.enum(["ACCEPTED", "REJECTED"]).describe("State of a suggestion - either ACCEPTED or REJECTED")).describe("Array of insight state values").optional(), "user-interaction": z.object({ "operator": z.enum(["NOT-IN", "IN"]).describe("Operator for filtering by user-interaction-types").optional(), "types": z.array(z.literal("DECIDE_LATER").describe("Type of user interaction with an insight")).describe("Array of user interaction type values") }).optional(), "security-impact": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum security impact threshold to include").optional(), "confidence-level": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum confidence threshold to include").optional(), "default-filter": z.literal("NONE").describe("Ignore default filtering of the system").optional(), "suggestions-type": z.enum(["unused-objects", "tighten-rule", "delete-disabled-rule", "zero-hits-rule"]).describe("Type of insight"), "start-date": z.string().datetime({ offset: true }).describe("Timestamp when the suggestion was created").optional() }) }).describe("Parameters for showing rules UIDs with their suggestions") },
3220
3536
  ShowState: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional() },
3221
3537
  ShowSuggestionEngineMetadata: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "filters": z.object({ "suggestion-type": z.enum(["unused-objects", "tighten-rule", "delete-disabled-rule", "zero-hits-rule"]).describe("Type of insight").optional() }).optional() }).describe("The JSON request body.") },
3222
- ShowSuggestions: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "layer": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Access layer identifier in UUID format").optional(), "options": z.object({ "include-inline-layers": z.boolean().describe("Whether to include insights on inline layers").optional() }).optional(), "limit": z.number().describe("Maximum number of items to return").optional(), "offset": z.number().describe("Number of items to skip for pagination").optional(), "filters": z.object({ "states": z.array(z.enum(["ACCEPTED", "REJECTED"]).describe("State of a suggestion - either ACCEPTED or REJECTED")).describe("Array of insight state values").optional(), "user-interaction": z.object({ "operator": z.enum(["NOT-IN", "IN"]).describe("Operator for filtering by user-interaction-types").optional(), "types": z.array(z.literal("DECIDE_LATER").describe("Type of user interaction with an insight")).describe("Array of user interaction type values") }).optional(), "security-impact": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum security impact threshold to include").optional(), "confidence-level": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum confidence threshold to include").optional(), "default-filter": z.literal("NONE").describe("Ignore default filtering of the system").optional(), "uids": z.array(z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Stringified UUID.")).describe("Array of insight unique identifiers").optional(), "rules-uids": z.array(z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Stringified UUID.")).describe("Array of rule unique identifiers").optional(), "types": z.array(z.enum(["unused-objects", "tighten-rule", "delete-disabled-rule", "zero-hits-rule"]).describe("Type of insight")).describe("Type of insight").optional() }).optional() }).describe("Parameters for showing suggestions with enhanced v3.0 capabilities") },
3538
+ ShowSuggestions: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "layer": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Access layer identifier in UUID format").optional(), "options": z.object({ "include-inline-layers": z.boolean().describe("Whether to include insights on inline layers").optional() }).optional(), "limit": z.number().describe("Maximum number of items to return").optional(), "offset": z.number().describe("Number of items to skip for pagination").optional(), "filters": z.object({ "states": z.array(z.enum(["ACCEPTED", "REJECTED"]).describe("State of a suggestion - either ACCEPTED or REJECTED")).describe("Array of insight state values").optional(), "user-interaction": z.object({ "operator": z.enum(["NOT-IN", "IN"]).describe("Operator for filtering by user-interaction-types").optional(), "types": z.array(z.literal("DECIDE_LATER").describe("Type of user interaction with an insight")).describe("Array of user interaction type values") }).optional(), "security-impact": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum security impact threshold to include").optional(), "confidence-level": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum confidence threshold to include").optional(), "default-filter": z.literal("NONE").describe("Ignore default filtering of the system").optional(), "uids": z.array(z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Stringified UUID.")).describe("Array of insight unique identifiers").optional(), "rules-uids": z.array(z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Stringified UUID.")).describe("Array of rule unique identifiers").optional(), "types": z.array(z.enum(["unused-objects", "tighten-rule", "delete-disabled-rule", "zero-hits-rule"]).describe("Type of insight")).describe("Type of insight").optional(), "start-date": z.string().datetime({ offset: true }).describe("Timestamp when the suggestion was created").optional() }).optional() }).describe("Parameters for showing suggestions with v3.1 capabilities") },
3223
3539
  ShowSuggestionsInfo: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "layer": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Access layer identifier in UUID format") }).describe("The JSON request body.") },
3224
- ShowSuggestionsSummary: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "layer": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Access layer identifier in UUID format").optional(), "filters": z.object({ "states": z.array(z.enum(["ACCEPTED", "REJECTED"]).describe("State of a suggestion - either ACCEPTED or REJECTED")).describe("Array of insight state values").optional(), "user-interaction": z.object({ "operator": z.enum(["NOT-IN", "IN"]).describe("Operator for filtering by user-interaction-types").optional(), "types": z.array(z.literal("DECIDE_LATER").describe("Type of user interaction with an insight")).describe("Array of user interaction type values") }).optional(), "security-impact": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum security impact threshold to include").optional(), "confidence-level": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum confidence threshold to include").optional(), "default-filter": z.literal("NONE").describe("Ignore default filtering of the system").optional() }).optional() }).describe("Parameters for showing suggestions summary") },
3540
+ ShowSuggestionsSummary: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional(), "requestBody": z.object({ "layer": z.string().uuid().regex(new RegExp("^[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$")).describe("Access layer identifier in UUID format").optional(), "filters": z.object({ "states": z.array(z.enum(["ACCEPTED", "REJECTED"]).describe("State of a suggestion - either ACCEPTED or REJECTED")).describe("Array of insight state values").optional(), "user-interaction": z.object({ "operator": z.enum(["NOT-IN", "IN"]).describe("Operator for filtering by user-interaction-types").optional(), "types": z.array(z.literal("DECIDE_LATER").describe("Type of user interaction with an insight")).describe("Array of user interaction type values") }).optional(), "security-impact": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum security impact threshold to include").optional(), "confidence-level": z.enum(["HIGH", "MEDIUM_AND_ABOVE", "LOW_AND_ABOVE"]).describe("Minimum confidence threshold to include").optional(), "default-filter": z.literal("NONE").describe("Ignore default filtering of the system").optional(), "start-date": z.string().datetime({ offset: true }).describe("Timestamp when the suggestion was created").optional() }).optional() }).describe("Parameters for showing suggestions summary") },
3225
3541
  ShowPolicyInsightsStatus: { domain: z.string().optional(), domains_to_process: z.enum(["ALL_DOMAINS_ON_THIS_SERVER", "CURRENT_DOMAIN"]).optional() }
3226
3542
  };
3227
3543
 
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chkp/policy-insights-mcp",
3
- "version": "0.3.5",
3
+ "version": "0.4.0",
4
4
  "bin": {
5
5
  "policy-insights-mcp": "dist/index.js"
6
6
  },
@@ -27,14 +27,14 @@
27
27
  "dependencies": {
28
28
  "@chkp/mcp-utils": "*",
29
29
  "@chkp/quantum-infra": "*",
30
- "@modelcontextprotocol/sdk": "^1.26.0",
31
- "axios": "^1.13.5",
32
- "commander": "^13.1.0",
30
+ "@modelcontextprotocol/sdk": "^1.29.0",
31
+ "axios": "^1.16.0",
32
+ "commander": "^14.0.3",
33
33
  "node-machine-id": "^1.1.12",
34
34
  "zod": "^3.22.4"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/node": "^22.15.2",
37
+ "@types/node": "^26.0.0",
38
38
  "@typescript-eslint/eslint-plugin": "^8.38.0",
39
39
  "@typescript-eslint/parser": "^8.38.0",
40
40
  "eslint": "^8.57.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chkp/policy-insights-mcp",
3
- "version": "0.3.5",
3
+ "version": "0.4.0",
4
4
  "bin": {
5
5
  "policy-insights-mcp": "dist/index.js"
6
6
  },
@@ -25,14 +25,14 @@
25
25
  "postpack": "node ../../scripts/strip-bundled-deps.js restore"
26
26
  },
27
27
  "dependencies": {
28
- "@modelcontextprotocol/sdk": "^1.26.0",
29
- "commander": "^13.1.0",
30
- "axios": "^1.13.5",
28
+ "@modelcontextprotocol/sdk": "^1.29.0",
29
+ "commander": "^14.0.3",
30
+ "axios": "^1.16.0",
31
31
  "node-machine-id": "^1.1.12",
32
32
  "zod": "^3.24.4"
33
33
  },
34
34
  "devDependencies": {
35
- "@types/node": "^22.15.2",
35
+ "@types/node": "^26.0.0",
36
36
  "@typescript-eslint/eslint-plugin": "^8.38.0",
37
37
  "@typescript-eslint/parser": "^8.38.0",
38
38
  "eslint": "^8.57.0",
package/package.json.bak CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chkp/policy-insights-mcp",
3
- "version": "0.3.5",
3
+ "version": "0.4.0",
4
4
  "bin": {
5
5
  "policy-insights-mcp": "dist/index.js"
6
6
  },
@@ -27,14 +27,14 @@
27
27
  "dependencies": {
28
28
  "@chkp/mcp-utils": "*",
29
29
  "@chkp/quantum-infra": "*",
30
- "@modelcontextprotocol/sdk": "^1.26.0",
31
- "commander": "^13.1.0",
32
- "axios": "^1.13.5",
30
+ "@modelcontextprotocol/sdk": "^1.29.0",
31
+ "commander": "^14.0.3",
32
+ "axios": "^1.16.0",
33
33
  "node-machine-id": "^1.1.12",
34
34
  "zod": "^3.24.4"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/node": "^22.15.2",
37
+ "@types/node": "^26.0.0",
38
38
  "@typescript-eslint/eslint-plugin": "^8.38.0",
39
39
  "@typescript-eslint/parser": "^8.38.0",
40
40
  "eslint": "^8.57.0",