@usex/mikrotik-mcp 4.23.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +350 -284
  2. package/dist/cli.js +1870 -566
  3. package/dist/index.d.ts +57 -0
  4. package/dist/index.js +1 -1
  5. package/dist/shared/{library-2144zr9f.js → cli-2dj736ma.js} +33920 -22075
  6. package/dist/shared/{cli-p673815b.js → cli-vvy7yfyg.js} +1 -1
  7. package/dist/shared/{cli-tssmr7sb.js → library-13dhfdnq.js} +29455 -18578
  8. package/dist/shared/{library-8f4pbp0x.js → library-syt5fmtj.js} +1 -1
  9. package/dist/ui/aaa.html +1 -1
  10. package/dist/ui/connected-devices.html +1 -1
  11. package/dist/ui/dashboard.html +1 -1
  12. package/dist/ui/firewall-audit.html +1 -1
  13. package/dist/ui/firewall.html +1 -1
  14. package/dist/ui/interfaces.html +1 -1
  15. package/dist/ui/observability.html +70 -62
  16. package/dist/ui/records.html +1 -1
  17. package/package.json +12 -11
  18. package/policies/baseline.yaml +180 -0
  19. package/prompts/backup-and-document.md +28 -18
  20. package/prompts/build-tunnel-transactionally.md +74 -0
  21. package/prompts/fleet-rollout.md +68 -0
  22. package/prompts/setup-traffic-flow.md +68 -0
  23. package/schemas/README.md +1 -1
  24. package/schemas/config.schema.json +367 -4
  25. package/schemas/tool-catalog.json +3044 -1152
  26. package/schemas/tools/abort_rollout.json +17 -0
  27. package/schemas/tools/abort_transaction.json +17 -0
  28. package/schemas/tools/add_alert_rule.json +45 -0
  29. package/schemas/tools/add_ipv6_route.json +1 -1
  30. package/schemas/tools/add_route.json +3 -2
  31. package/schemas/tools/add_schedule.json +50 -0
  32. package/schemas/tools/add_script.json +1 -1
  33. package/schemas/tools/add_traffic_flow_target.json +36 -0
  34. package/schemas/tools/add_transaction_step.json +21 -0
  35. package/schemas/tools/analyze_flows.json +25 -0
  36. package/schemas/tools/begin_transaction.json +109 -0
  37. package/schemas/tools/block_attacker.json +22 -0
  38. package/schemas/tools/check_policy_snapshot.json +20 -0
  39. package/schemas/tools/commit_transaction.json +13 -0
  40. package/schemas/tools/configure_attack_response.json +12 -0
  41. package/schemas/tools/diff_explanations.json +24 -0
  42. package/schemas/tools/explain_device.json +22 -0
  43. package/schemas/tools/explain_policy_finding.json +17 -0
  44. package/schemas/tools/explain_rule_reachability.json +18 -0
  45. package/schemas/tools/explain_section.json +32 -0
  46. package/schemas/tools/export_policy_report.json +22 -0
  47. package/schemas/tools/flow_top_talkers.json +31 -0
  48. package/schemas/tools/get_alert_history.json +26 -0
  49. package/schemas/tools/get_attack_incident.json +13 -0
  50. package/schemas/tools/get_audit_timeline.json +24 -0
  51. package/schemas/tools/get_device_capabilities.json +7 -0
  52. package/schemas/tools/get_traffic_flow_settings.json +7 -0
  53. package/schemas/tools/list_alert_rules.json +7 -0
  54. package/schemas/tools/list_attack_incidents.json +27 -0
  55. package/schemas/tools/list_attack_responses.json +20 -0
  56. package/schemas/tools/list_policies.json +17 -0
  57. package/schemas/tools/list_schedules.json +12 -0
  58. package/schemas/tools/list_traffic_flow_targets.json +7 -0
  59. package/schemas/tools/mute_alert_rule.json +18 -0
  60. package/schemas/tools/plan_rollout.json +95 -0
  61. package/schemas/tools/refresh_device_capabilities.json +7 -0
  62. package/schemas/tools/remove_alert_rule.json +13 -0
  63. package/schemas/tools/remove_schedule.json +13 -0
  64. package/schemas/tools/remove_traffic_flow_target.json +13 -0
  65. package/schemas/tools/rollout_status.json +12 -0
  66. package/schemas/tools/run_policy_check.json +12 -0
  67. package/schemas/tools/run_schedule_now.json +13 -0
  68. package/schemas/tools/scan_for_attacks.json +21 -0
  69. package/schemas/tools/set_traffic_flow_settings.json +28 -0
  70. package/schemas/tools/simulate_change.json +72 -0
  71. package/schemas/tools/simulate_packet.json +53 -0
  72. package/schemas/tools/simulate_suite.json +71 -0
  73. package/schemas/tools/start_flow_collector.json +14 -0
  74. package/schemas/tools/start_rollout.json +98 -0
  75. package/schemas/tools/stop_flow_collector.json +7 -0
  76. package/schemas/tools/test_alert_channel.json +14 -0
  77. package/schemas/tools/unblock_attacker.json +20 -0
  78. package/schemas/tools/update_alert_rule.json +41 -0
  79. package/schemas/tools/update_route.json +3 -2
  80. package/schemas/tools/validate_policy_file.json +16 -0
  81. package/schemas/tools/verify_transaction.json +13 -0
@@ -10,7 +10,8 @@
10
10
  "username": "admin",
11
11
  "password": "",
12
12
  "port": 22,
13
- "timeoutMs": 10000
13
+ "timeoutMs": 10000,
14
+ "tags": []
14
15
  }
15
16
  },
16
17
  "type": "object",
@@ -107,14 +108,32 @@
107
108
  "exclusiveMinimum": 0,
108
109
  "maximum": 9007199254740991
109
110
  },
111
+ "api": {
112
+ "type": "boolean"
113
+ },
114
+ "apiPort": {
115
+ "type": "integer",
116
+ "exclusiveMinimum": 0,
117
+ "maximum": 9007199254740991
118
+ },
119
+ "apiInsecureTls": {
120
+ "type": "boolean"
121
+ },
110
122
  "description": {
111
123
  "type": "string"
112
124
  },
125
+ "tags": {
126
+ "default": [],
127
+ "type": "array",
128
+ "items": {
129
+ "type": "string"
130
+ }
131
+ },
113
132
  "disabled": {
114
133
  "type": "boolean"
115
134
  }
116
135
  },
117
- "required": ["host", "username", "password", "port", "timeoutMs"],
136
+ "required": ["host", "username", "password", "port", "timeoutMs", "tags"],
118
137
  "additionalProperties": false
119
138
  }
120
139
  },
@@ -131,7 +150,8 @@
131
150
  "allowedOrigins": "",
132
151
  "corsOrigins": "",
133
152
  "toolPageSize": 0,
134
- "appViews": false
153
+ "appViews": false,
154
+ "capabilityGating": "annotate"
135
155
  },
136
156
  "type": "object",
137
157
  "properties": {
@@ -171,6 +191,11 @@
171
191
  "appViews": {
172
192
  "default": false,
173
193
  "type": "boolean"
194
+ },
195
+ "capabilityGating": {
196
+ "default": "annotate",
197
+ "type": "string",
198
+ "enum": ["off", "annotate", "filter"]
174
199
  }
175
200
  },
176
201
  "required": [
@@ -181,7 +206,8 @@
181
206
  "allowedOrigins",
182
207
  "corsOrigins",
183
208
  "toolPageSize",
184
- "appViews"
209
+ "appViews",
210
+ "capabilityGating"
185
211
  ],
186
212
  "additionalProperties": false
187
213
  },
@@ -295,6 +321,339 @@
295
321
  ],
296
322
  "additionalProperties": false
297
323
  },
324
+ "alerts": {
325
+ "type": "object",
326
+ "properties": {
327
+ "enabled": {
328
+ "default": true,
329
+ "type": "boolean"
330
+ },
331
+ "rules": {
332
+ "default": [],
333
+ "type": "array",
334
+ "items": {}
335
+ },
336
+ "channels": {
337
+ "default": {},
338
+ "type": "object",
339
+ "properties": {
340
+ "slack": {
341
+ "type": "object",
342
+ "properties": {
343
+ "url": {
344
+ "type": "string",
345
+ "format": "uri"
346
+ }
347
+ },
348
+ "required": ["url"],
349
+ "additionalProperties": false
350
+ },
351
+ "discord": {
352
+ "type": "object",
353
+ "properties": {
354
+ "url": {
355
+ "type": "string",
356
+ "format": "uri"
357
+ }
358
+ },
359
+ "required": ["url"],
360
+ "additionalProperties": false
361
+ },
362
+ "ntfy": {
363
+ "type": "object",
364
+ "properties": {
365
+ "url": {
366
+ "type": "string",
367
+ "format": "uri"
368
+ },
369
+ "token": {
370
+ "type": "string"
371
+ }
372
+ },
373
+ "required": ["url"],
374
+ "additionalProperties": false
375
+ },
376
+ "webhook": {
377
+ "type": "object",
378
+ "properties": {
379
+ "url": {
380
+ "type": "string",
381
+ "format": "uri"
382
+ },
383
+ "method": {
384
+ "type": "string"
385
+ },
386
+ "headers": {
387
+ "type": "object",
388
+ "propertyNames": {
389
+ "type": "string"
390
+ },
391
+ "additionalProperties": {
392
+ "type": "string"
393
+ }
394
+ }
395
+ },
396
+ "required": ["url"],
397
+ "additionalProperties": false
398
+ },
399
+ "mcp": {
400
+ "type": "object",
401
+ "properties": {},
402
+ "additionalProperties": false
403
+ }
404
+ },
405
+ "additionalProperties": false
406
+ },
407
+ "maxHistory": {
408
+ "default": 5000,
409
+ "type": "integer",
410
+ "exclusiveMinimum": 0,
411
+ "maximum": 9007199254740991
412
+ }
413
+ },
414
+ "required": ["enabled", "rules", "channels", "maxHistory"],
415
+ "additionalProperties": false
416
+ },
417
+ "flows": {
418
+ "default": {
419
+ "enabled": false,
420
+ "port": 2055,
421
+ "db": "/Users/alimaster/.mikrotik-mcp/flows.db",
422
+ "retentionHours": 24,
423
+ "rollupDays": 30,
424
+ "maxRows": 2000000
425
+ },
426
+ "type": "object",
427
+ "properties": {
428
+ "enabled": {
429
+ "default": false,
430
+ "type": "boolean"
431
+ },
432
+ "port": {
433
+ "default": 2055,
434
+ "type": "integer",
435
+ "exclusiveMinimum": 0,
436
+ "maximum": 9007199254740991
437
+ },
438
+ "db": {
439
+ "default": "/Users/alimaster/.mikrotik-mcp/flows.db",
440
+ "type": "string"
441
+ },
442
+ "retentionHours": {
443
+ "default": 24,
444
+ "type": "integer",
445
+ "exclusiveMinimum": 0,
446
+ "maximum": 9007199254740991
447
+ },
448
+ "rollupDays": {
449
+ "default": 30,
450
+ "type": "integer",
451
+ "exclusiveMinimum": 0,
452
+ "maximum": 9007199254740991
453
+ },
454
+ "maxRows": {
455
+ "default": 2000000,
456
+ "type": "integer",
457
+ "exclusiveMinimum": 0,
458
+ "maximum": 9007199254740991
459
+ }
460
+ },
461
+ "required": ["enabled", "port", "db", "retentionHours", "rollupDays", "maxRows"],
462
+ "additionalProperties": false
463
+ },
464
+ "policy": {
465
+ "default": {
466
+ "paths": ["./mikrotik-policies/*.yaml"],
467
+ "includeStarterPack": true
468
+ },
469
+ "type": "object",
470
+ "properties": {
471
+ "paths": {
472
+ "default": ["./mikrotik-policies/*.yaml"],
473
+ "type": "array",
474
+ "items": {
475
+ "type": "string"
476
+ }
477
+ },
478
+ "includeStarterPack": {
479
+ "default": true,
480
+ "type": "boolean"
481
+ }
482
+ },
483
+ "required": ["paths", "includeStarterPack"],
484
+ "additionalProperties": false
485
+ },
486
+ "schedules": {
487
+ "default": {
488
+ "enabled": false,
489
+ "jobs": [],
490
+ "concurrency": 4,
491
+ "timeoutMs": 600000,
492
+ "jitterMs": 3000,
493
+ "tickSeconds": 30,
494
+ "retainDays": 90
495
+ },
496
+ "type": "object",
497
+ "properties": {
498
+ "enabled": {
499
+ "default": false,
500
+ "type": "boolean"
501
+ },
502
+ "jobs": {
503
+ "default": [],
504
+ "type": "array",
505
+ "items": {}
506
+ },
507
+ "concurrency": {
508
+ "default": 4,
509
+ "type": "integer",
510
+ "exclusiveMinimum": 0,
511
+ "maximum": 64
512
+ },
513
+ "timeoutMs": {
514
+ "default": 600000,
515
+ "type": "integer",
516
+ "exclusiveMinimum": 0,
517
+ "maximum": 9007199254740991
518
+ },
519
+ "jitterMs": {
520
+ "default": 3000,
521
+ "type": "integer",
522
+ "minimum": 0,
523
+ "maximum": 9007199254740991
524
+ },
525
+ "tickSeconds": {
526
+ "default": 30,
527
+ "type": "integer",
528
+ "exclusiveMinimum": 0,
529
+ "maximum": 9007199254740991
530
+ },
531
+ "retainDays": {
532
+ "default": 90,
533
+ "type": "integer",
534
+ "exclusiveMinimum": 0,
535
+ "maximum": 9007199254740991
536
+ }
537
+ },
538
+ "required": [
539
+ "enabled",
540
+ "jobs",
541
+ "concurrency",
542
+ "timeoutMs",
543
+ "jitterMs",
544
+ "tickSeconds",
545
+ "retainDays"
546
+ ],
547
+ "additionalProperties": false
548
+ },
549
+ "attacks": {
550
+ "default": {
551
+ "enabled": false,
552
+ "mode": "detect",
553
+ "pollSeconds": 120,
554
+ "windowMinutes": 10,
555
+ "concurrency": 4,
556
+ "minConfidence": "high",
557
+ "blockTimeout": "1h",
558
+ "maxBlocksPerHour": 6,
559
+ "neverBlock": [],
560
+ "autoRespondTo": ["brute-force", "credential-spray"],
561
+ "learningDays": 7,
562
+ "readScanList": true,
563
+ "retainDays": 90
564
+ },
565
+ "type": "object",
566
+ "properties": {
567
+ "enabled": {
568
+ "default": false,
569
+ "type": "boolean"
570
+ },
571
+ "mode": {
572
+ "default": "detect",
573
+ "type": "string",
574
+ "enum": ["detect", "respond"]
575
+ },
576
+ "pollSeconds": {
577
+ "default": 120,
578
+ "type": "integer",
579
+ "exclusiveMinimum": 0,
580
+ "maximum": 9007199254740991
581
+ },
582
+ "windowMinutes": {
583
+ "default": 10,
584
+ "type": "integer",
585
+ "exclusiveMinimum": 0,
586
+ "maximum": 9007199254740991
587
+ },
588
+ "concurrency": {
589
+ "default": 4,
590
+ "type": "integer",
591
+ "exclusiveMinimum": 0,
592
+ "maximum": 32
593
+ },
594
+ "minConfidence": {
595
+ "default": "high",
596
+ "type": "string",
597
+ "enum": ["medium", "high", "confirmed"]
598
+ },
599
+ "blockTimeout": {
600
+ "default": "1h",
601
+ "type": "string"
602
+ },
603
+ "maxBlocksPerHour": {
604
+ "default": 6,
605
+ "type": "integer",
606
+ "exclusiveMinimum": 0,
607
+ "maximum": 9007199254740991
608
+ },
609
+ "neverBlock": {
610
+ "default": [],
611
+ "type": "array",
612
+ "items": {
613
+ "type": "string"
614
+ }
615
+ },
616
+ "autoRespondTo": {
617
+ "default": ["brute-force", "credential-spray"],
618
+ "type": "array",
619
+ "items": {
620
+ "type": "string"
621
+ }
622
+ },
623
+ "learningDays": {
624
+ "default": 7,
625
+ "type": "integer",
626
+ "exclusiveMinimum": 0,
627
+ "maximum": 9007199254740991
628
+ },
629
+ "readScanList": {
630
+ "default": true,
631
+ "type": "boolean"
632
+ },
633
+ "retainDays": {
634
+ "default": 90,
635
+ "type": "integer",
636
+ "exclusiveMinimum": 0,
637
+ "maximum": 9007199254740991
638
+ }
639
+ },
640
+ "required": [
641
+ "enabled",
642
+ "mode",
643
+ "pollSeconds",
644
+ "windowMinutes",
645
+ "concurrency",
646
+ "minConfidence",
647
+ "blockTimeout",
648
+ "maxBlocksPerHour",
649
+ "neverBlock",
650
+ "autoRespondTo",
651
+ "learningDays",
652
+ "readScanList",
653
+ "retainDays"
654
+ ],
655
+ "additionalProperties": false
656
+ },
298
657
  "ssh": {
299
658
  "default": {
300
659
  "keepAlive": true,
@@ -400,6 +759,10 @@
400
759
  "defaultDevice",
401
760
  "mcp",
402
761
  "dashboard",
762
+ "flows",
763
+ "policy",
764
+ "schedules",
765
+ "attacks",
403
766
  "ssh",
404
767
  "readOnly",
405
768
  "tools",