@usex/mikrotik-mcp 3.50.1 → 3.51.1

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 (606) hide show
  1. package/dist/cli.js +434 -273
  2. package/dist/index.js +10 -141
  3. package/dist/shared/{cli-peg82een.js → cli-22wrpg71.js} +7923 -4193
  4. package/dist/shared/{cli-qw5z207n.js → cli-dq28zbns.js} +1 -1
  5. package/dist/shared/{library-8nc9j4aa.js → library-510csx1a.js} +1 -1
  6. package/dist/shared/{library-08y4g75d.js → library-mwcpnqqg.js} +7927 -4203
  7. package/dist/ui/observability.html +45 -44
  8. package/package.json +1 -1
  9. package/schemas/README.md +1 -1
  10. package/schemas/config.schema.json +29 -1
  11. package/schemas/tool-catalog.json +940 -47
  12. package/schemas/tools/aaa_mutate.json +10 -2
  13. package/schemas/tools/add_address_list_entry.json +5 -1
  14. package/schemas/tools/add_bfd_configuration.json +4 -1
  15. package/schemas/tools/add_bgp_connection.json +5 -1
  16. package/schemas/tools/add_bgp_template.json +4 -1
  17. package/schemas/tools/add_blackhole_route.json +4 -1
  18. package/schemas/tools/add_bridge_port.json +31 -6
  19. package/schemas/tools/add_bridge_vlan.json +4 -1
  20. package/schemas/tools/add_container_env.json +5 -1
  21. package/schemas/tools/add_container_mount.json +5 -1
  22. package/schemas/tools/add_default_route.json +5 -1
  23. package/schemas/tools/add_dhcp_client.json +7 -1
  24. package/schemas/tools/add_disk.json +3 -1
  25. package/schemas/tools/add_dns_regexp.json +6 -1
  26. package/schemas/tools/add_dns_static.json +4 -1
  27. package/schemas/tools/add_dot1x_client.json +5 -1
  28. package/schemas/tools/add_dot1x_server.json +13 -3
  29. package/schemas/tools/add_graphing_interface.json +3 -1
  30. package/schemas/tools/add_graphing_queue.json +3 -1
  31. package/schemas/tools/add_igmp_proxy_interface.json +5 -1
  32. package/schemas/tools/add_ip_address.json +5 -1
  33. package/schemas/tools/add_ipv6_address.json +5 -1
  34. package/schemas/tools/add_ipv6_address_list_entry.json +5 -1
  35. package/schemas/tools/add_ipv6_default_route.json +4 -1
  36. package/schemas/tools/add_ipv6_dhcp_binding.json +4 -1
  37. package/schemas/tools/add_ipv6_dhcp_client.json +15 -3
  38. package/schemas/tools/add_ipv6_dhcp_option.json +5 -1
  39. package/schemas/tools/add_ipv6_dhcp_relay.json +6 -1
  40. package/schemas/tools/add_ipv6_nd.json +9 -2
  41. package/schemas/tools/add_ipv6_nd_prefix.json +4 -1
  42. package/schemas/tools/add_ipv6_route.json +10 -2
  43. package/schemas/tools/add_logging_action.json +12 -2
  44. package/schemas/tools/add_logging_rule.json +4 -1
  45. package/schemas/tools/add_netwatch.json +10 -2
  46. package/schemas/tools/add_ospf_area.json +11 -2
  47. package/schemas/tools/add_ospf_area_range.json +5 -1
  48. package/schemas/tools/add_ospf_instance.json +5 -1
  49. package/schemas/tools/add_ospf_interface_template.json +19 -3
  50. package/schemas/tools/add_ovpn_server.json +17 -4
  51. package/schemas/tools/add_pimsm_instance.json +9 -2
  52. package/schemas/tools/add_pimsm_interface_template.json +5 -1
  53. package/schemas/tools/add_pimsm_rp.json +5 -1
  54. package/schemas/tools/add_radius_server.json +4 -1
  55. package/schemas/tools/add_rip_instance.json +4 -1
  56. package/schemas/tools/add_rip_interface_template.json +5 -1
  57. package/schemas/tools/add_rip_static_neighbor.json +4 -1
  58. package/schemas/tools/add_romon_port.json +4 -1
  59. package/schemas/tools/add_route.json +5 -1
  60. package/schemas/tools/add_routing_filter_num_list.json +4 -1
  61. package/schemas/tools/add_routing_filter_rule.json +5 -1
  62. package/schemas/tools/add_routing_id.json +4 -1
  63. package/schemas/tools/add_routing_rule.json +10 -2
  64. package/schemas/tools/add_routing_table.json +5 -1
  65. package/schemas/tools/add_rpki_session.json +6 -1
  66. package/schemas/tools/add_script.json +5 -1
  67. package/schemas/tools/add_switch_port_isolation.json +4 -1
  68. package/schemas/tools/add_switch_rule.json +10 -2
  69. package/schemas/tools/add_traffic_generator_port.json +5 -1
  70. package/schemas/tools/add_traffic_generator_stream.json +5 -1
  71. package/schemas/tools/add_traffic_monitor.json +17 -3
  72. package/schemas/tools/add_user.json +6 -1
  73. package/schemas/tools/add_user_group.json +4 -1
  74. package/schemas/tools/add_user_manager_limitation.json +3 -1
  75. package/schemas/tools/add_user_manager_profile.json +7 -2
  76. package/schemas/tools/add_user_manager_router.json +6 -1
  77. package/schemas/tools/add_user_manager_user.json +5 -1
  78. package/schemas/tools/add_wireguard_peer.json +6 -1
  79. package/schemas/tools/allow_device.json +3 -1
  80. package/schemas/tools/apply_plan.json +3 -1
  81. package/schemas/tools/apply_traffic_shaping.json +10 -2
  82. package/schemas/tools/assign_user_manager_profile.json +4 -1
  83. package/schemas/tools/audit_certificate_expiry.json +3 -1
  84. package/schemas/tools/audit_fleet.json +33 -0
  85. package/schemas/tools/audit_remediate.json +46 -0
  86. package/schemas/tools/backup_info.json +3 -1
  87. package/schemas/tools/bandwidth_test.json +15 -3
  88. package/schemas/tools/block_device.json +3 -1
  89. package/schemas/tools/build_guest_hotspot.json +7 -1
  90. package/schemas/tools/build_wireguard_mesh.json +4 -1
  91. package/schemas/tools/capture_config_snapshot.json +5 -1
  92. package/schemas/tools/change_password.json +4 -1
  93. package/schemas/tools/check_route_path.json +3 -1
  94. package/schemas/tools/config_check_drift.json +26 -0
  95. package/schemas/tools/config_promote_drift.json +16 -0
  96. package/schemas/tools/config_reconcile.json +14 -0
  97. package/schemas/tools/config_set_baseline.json +30 -0
  98. package/schemas/tools/correlate_events.json +29 -0
  99. package/schemas/tools/create_backup.json +4 -1
  100. package/schemas/tools/create_bridge.json +28 -5
  101. package/schemas/tools/create_certificate.json +6 -1
  102. package/schemas/tools/create_dhcp_network.json +4 -1
  103. package/schemas/tools/create_dhcp_pool.json +4 -1
  104. package/schemas/tools/create_dhcp_server.json +22 -4
  105. package/schemas/tools/create_eoip_tunnel.json +17 -3
  106. package/schemas/tools/create_export.json +17 -3
  107. package/schemas/tools/create_filter_rule.json +11 -2
  108. package/schemas/tools/create_gre_tunnel.json +9 -2
  109. package/schemas/tools/create_ip_pool.json +4 -1
  110. package/schemas/tools/create_ipip_tunnel.json +9 -2
  111. package/schemas/tools/create_ipsec_identity.json +21 -4
  112. package/schemas/tools/create_ipsec_peer.json +10 -2
  113. package/schemas/tools/create_ipsec_policy.json +15 -3
  114. package/schemas/tools/create_ipsec_profile.json +5 -1
  115. package/schemas/tools/create_ipsec_proposal.json +7 -1
  116. package/schemas/tools/create_ipv6_dhcp_server.json +7 -1
  117. package/schemas/tools/create_ipv6_filter_rule.json +11 -2
  118. package/schemas/tools/create_ipv6_mangle_rule.json +13 -2
  119. package/schemas/tools/create_ipv6_nat_rule.json +10 -2
  120. package/schemas/tools/create_ipv6_pool.json +5 -1
  121. package/schemas/tools/create_ipv6_raw_rule.json +19 -3
  122. package/schemas/tools/create_l2tp_client.json +12 -2
  123. package/schemas/tools/create_local_backup.json +6 -1
  124. package/schemas/tools/create_mangle_rule.json +13 -2
  125. package/schemas/tools/create_nat_rule.json +10 -2
  126. package/schemas/tools/create_ovpn_client.json +18 -4
  127. package/schemas/tools/create_ppp_profile.json +30 -6
  128. package/schemas/tools/create_ppp_secret.json +14 -2
  129. package/schemas/tools/create_pptp_client.json +7 -1
  130. package/schemas/tools/create_queue_tree.json +5 -1
  131. package/schemas/tools/create_queue_type.json +28 -5
  132. package/schemas/tools/create_scheduler.json +5 -1
  133. package/schemas/tools/create_simple_queue.json +5 -1
  134. package/schemas/tools/create_sstp_client.json +11 -2
  135. package/schemas/tools/create_vlan_interface.json +19 -3
  136. package/schemas/tools/create_vxlan_tunnel.json +17 -3
  137. package/schemas/tools/create_wireguard_interface.json +4 -1
  138. package/schemas/tools/create_wireless_interface.json +37 -6
  139. package/schemas/tools/create_wireless_security_profile.json +3 -1
  140. package/schemas/tools/delete_local_backup.json +3 -1
  141. package/schemas/tools/delete_s3_backup.json +3 -1
  142. package/schemas/tools/describe_tool.json +3 -1
  143. package/schemas/tools/design_network_segment.json +10 -1
  144. package/schemas/tools/diagnose.json +37 -0
  145. package/schemas/tools/diff_config_snapshots.json +6 -1
  146. package/schemas/tools/disable_address_list_entry.json +3 -1
  147. package/schemas/tools/disable_dns_static.json +3 -1
  148. package/schemas/tools/disable_filter_rule.json +3 -1
  149. package/schemas/tools/disable_interface.json +3 -1
  150. package/schemas/tools/disable_ip_service.json +3 -1
  151. package/schemas/tools/disable_ipv6_address_list_entry.json +3 -1
  152. package/schemas/tools/disable_ipv6_dhcp_relay.json +3 -1
  153. package/schemas/tools/disable_ipv6_filter_rule.json +3 -1
  154. package/schemas/tools/disable_ipv6_mangle_rule.json +3 -1
  155. package/schemas/tools/disable_ipv6_nat_rule.json +3 -1
  156. package/schemas/tools/disable_ipv6_raw_rule.json +3 -1
  157. package/schemas/tools/disable_ipv6_route.json +3 -1
  158. package/schemas/tools/disable_l2tp_client.json +3 -1
  159. package/schemas/tools/disable_mangle_rule.json +3 -1
  160. package/schemas/tools/disable_nat_rule.json +3 -1
  161. package/schemas/tools/disable_ovpn_client.json +3 -1
  162. package/schemas/tools/disable_ovpn_server.json +3 -1
  163. package/schemas/tools/disable_queue_tree.json +3 -1
  164. package/schemas/tools/disable_radius_server.json +3 -1
  165. package/schemas/tools/disable_route.json +3 -1
  166. package/schemas/tools/disable_scheduler.json +3 -1
  167. package/schemas/tools/disable_simple_queue.json +3 -1
  168. package/schemas/tools/disable_sstp_client.json +3 -1
  169. package/schemas/tools/disable_switch_rule.json +3 -1
  170. package/schemas/tools/disable_traffic_monitor.json +3 -1
  171. package/schemas/tools/disable_user.json +3 -1
  172. package/schemas/tools/disable_wireguard_interface.json +3 -1
  173. package/schemas/tools/disable_wireguard_peer.json +3 -1
  174. package/schemas/tools/disable_wireless_interface.json +3 -1
  175. package/schemas/tools/disconnect_ppp_active.json +3 -1
  176. package/schemas/tools/disconnect_user.json +3 -1
  177. package/schemas/tools/download_backup_from_s3.json +3 -1
  178. package/schemas/tools/download_file.json +3 -1
  179. package/schemas/tools/eject_disk.json +3 -1
  180. package/schemas/tools/enable_address_list_entry.json +3 -1
  181. package/schemas/tools/enable_dns_static.json +3 -1
  182. package/schemas/tools/enable_filter_rule.json +3 -1
  183. package/schemas/tools/enable_interface.json +3 -1
  184. package/schemas/tools/enable_ip_service.json +3 -1
  185. package/schemas/tools/enable_ipv6_address_list_entry.json +3 -1
  186. package/schemas/tools/enable_ipv6_dhcp_relay.json +3 -1
  187. package/schemas/tools/enable_ipv6_filter_rule.json +3 -1
  188. package/schemas/tools/enable_ipv6_mangle_rule.json +3 -1
  189. package/schemas/tools/enable_ipv6_nat_rule.json +3 -1
  190. package/schemas/tools/enable_ipv6_raw_rule.json +3 -1
  191. package/schemas/tools/enable_ipv6_route.json +3 -1
  192. package/schemas/tools/enable_l2tp_client.json +3 -1
  193. package/schemas/tools/enable_mangle_rule.json +3 -1
  194. package/schemas/tools/enable_nat_rule.json +3 -1
  195. package/schemas/tools/enable_ovpn_client.json +3 -1
  196. package/schemas/tools/enable_ovpn_server.json +3 -1
  197. package/schemas/tools/enable_queue_tree.json +3 -1
  198. package/schemas/tools/enable_radius_server.json +3 -1
  199. package/schemas/tools/enable_route.json +3 -1
  200. package/schemas/tools/enable_scheduler.json +3 -1
  201. package/schemas/tools/enable_simple_queue.json +3 -1
  202. package/schemas/tools/enable_sstp_client.json +3 -1
  203. package/schemas/tools/enable_switch_rule.json +3 -1
  204. package/schemas/tools/enable_traffic_monitor.json +3 -1
  205. package/schemas/tools/enable_user.json +3 -1
  206. package/schemas/tools/enable_wireguard_interface.json +3 -1
  207. package/schemas/tools/enable_wireguard_peer.json +3 -1
  208. package/schemas/tools/enable_wireless_interface.json +3 -1
  209. package/schemas/tools/expand_ip_pool.json +4 -1
  210. package/schemas/tools/export_logs.json +7 -2
  211. package/schemas/tools/export_section.json +5 -1
  212. package/schemas/tools/export_ssh_host_key.json +3 -1
  213. package/schemas/tools/find_tools.json +3 -1
  214. package/schemas/tools/firewall_audit.json +4 -1
  215. package/schemas/tools/firmware_check.json +32 -0
  216. package/schemas/tools/firmware_stage.json +17 -0
  217. package/schemas/tools/firmware_status.json +20 -0
  218. package/schemas/tools/firmware_upgrade.json +35 -0
  219. package/schemas/tools/flood_ping.json +4 -1
  220. package/schemas/tools/forecast_link_saturation.json +5 -1
  221. package/schemas/tools/format_disk.json +10 -2
  222. package/schemas/tools/forward_port.json +10 -2
  223. package/schemas/tools/generate_hotspot_vouchers.json +5 -1
  224. package/schemas/tools/get_aaa_section.json +3 -1
  225. package/schemas/tools/get_address_list_entry.json +3 -1
  226. package/schemas/tools/get_bgp_connection.json +3 -1
  227. package/schemas/tools/get_bridge.json +3 -1
  228. package/schemas/tools/get_certificate.json +3 -1
  229. package/schemas/tools/get_config_snapshot.json +4 -1
  230. package/schemas/tools/get_device_traffic.json +3 -1
  231. package/schemas/tools/get_dhcp_client.json +3 -1
  232. package/schemas/tools/get_dhcp_server.json +3 -1
  233. package/schemas/tools/get_disk.json +3 -1
  234. package/schemas/tools/get_dns_static.json +3 -1
  235. package/schemas/tools/get_dot1x_client.json +3 -1
  236. package/schemas/tools/get_dot1x_server.json +3 -1
  237. package/schemas/tools/get_eoip_tunnel.json +3 -1
  238. package/schemas/tools/get_filter_rule.json +3 -1
  239. package/schemas/tools/get_gre_tunnel.json +3 -1
  240. package/schemas/tools/get_interface.json +3 -1
  241. package/schemas/tools/get_ip_address.json +3 -1
  242. package/schemas/tools/get_ip_pool.json +3 -1
  243. package/schemas/tools/get_ip_service.json +3 -1
  244. package/schemas/tools/get_ipip_tunnel.json +3 -1
  245. package/schemas/tools/get_ipsec_peer.json +3 -1
  246. package/schemas/tools/get_ipsec_profile.json +3 -1
  247. package/schemas/tools/get_ipsec_proposal.json +3 -1
  248. package/schemas/tools/get_ipv6_address.json +3 -1
  249. package/schemas/tools/get_ipv6_address_list_entry.json +3 -1
  250. package/schemas/tools/get_ipv6_dhcp_client.json +3 -1
  251. package/schemas/tools/get_ipv6_dhcp_relay.json +3 -1
  252. package/schemas/tools/get_ipv6_dhcp_server.json +3 -1
  253. package/schemas/tools/get_ipv6_filter_rule.json +3 -1
  254. package/schemas/tools/get_ipv6_mangle_rule.json +3 -1
  255. package/schemas/tools/get_ipv6_nat_rule.json +3 -1
  256. package/schemas/tools/get_ipv6_nd.json +3 -1
  257. package/schemas/tools/get_ipv6_neighbor.json +3 -1
  258. package/schemas/tools/get_ipv6_pool.json +3 -1
  259. package/schemas/tools/get_ipv6_raw_rule.json +3 -1
  260. package/schemas/tools/get_ipv6_route.json +3 -1
  261. package/schemas/tools/get_l2tp_client.json +3 -1
  262. package/schemas/tools/get_local_backup.json +3 -1
  263. package/schemas/tools/get_logs.json +9 -2
  264. package/schemas/tools/get_logs_by_severity.json +10 -2
  265. package/schemas/tools/get_logs_by_topic.json +3 -1
  266. package/schemas/tools/get_mangle_rule.json +3 -1
  267. package/schemas/tools/get_nat_rule.json +3 -1
  268. package/schemas/tools/get_netwatch.json +3 -1
  269. package/schemas/tools/get_ovpn_client.json +3 -1
  270. package/schemas/tools/get_poe_monitor.json +3 -1
  271. package/schemas/tools/get_poe_settings.json +3 -1
  272. package/schemas/tools/get_port.json +3 -1
  273. package/schemas/tools/get_ppp_profile.json +3 -1
  274. package/schemas/tools/get_ppp_secret.json +3 -1
  275. package/schemas/tools/get_pptp_client.json +3 -1
  276. package/schemas/tools/get_queue_interface.json +3 -1
  277. package/schemas/tools/get_queue_tree.json +3 -1
  278. package/schemas/tools/get_queue_type.json +3 -1
  279. package/schemas/tools/get_radius_server.json +3 -1
  280. package/schemas/tools/get_route.json +3 -1
  281. package/schemas/tools/get_routing_id.json +3 -1
  282. package/schemas/tools/get_routing_rule.json +3 -1
  283. package/schemas/tools/get_routing_table.json +4 -1
  284. package/schemas/tools/get_routing_table_def.json +3 -1
  285. package/schemas/tools/get_scheduler.json +3 -1
  286. package/schemas/tools/get_simple_queue.json +3 -1
  287. package/schemas/tools/get_sstp_client.json +3 -1
  288. package/schemas/tools/get_switch.json +3 -1
  289. package/schemas/tools/get_switch_port.json +3 -1
  290. package/schemas/tools/get_switch_port_isolation.json +3 -1
  291. package/schemas/tools/get_switch_rule.json +3 -1
  292. package/schemas/tools/get_traffic_monitor.json +3 -1
  293. package/schemas/tools/get_user.json +3 -1
  294. package/schemas/tools/get_user_group.json +3 -1
  295. package/schemas/tools/get_user_manager_user.json +3 -1
  296. package/schemas/tools/get_vlan_interface.json +3 -1
  297. package/schemas/tools/get_vxlan_tunnel.json +3 -1
  298. package/schemas/tools/get_wireguard_interface.json +3 -1
  299. package/schemas/tools/get_wireguard_peer.json +3 -1
  300. package/schemas/tools/get_wireless_interface.json +3 -1
  301. package/schemas/tools/get_wireless_security_profile.json +3 -1
  302. package/schemas/tools/harden_firewall.json +6 -1
  303. package/schemas/tools/import_certificate.json +3 -1
  304. package/schemas/tools/import_configuration.json +5 -1
  305. package/schemas/tools/import_ssh_host_key.json +3 -1
  306. package/schemas/tools/invoke_tool.json +3 -1
  307. package/schemas/tools/ip_scan.json +3 -1
  308. package/schemas/tools/list_address_lists.json +3 -1
  309. package/schemas/tools/list_backups.json +3 -1
  310. package/schemas/tools/list_bfd_sessions.json +3 -1
  311. package/schemas/tools/list_bgp_sessions.json +3 -1
  312. package/schemas/tools/list_compliance_checks.json +24 -0
  313. package/schemas/tools/list_config_snapshots.json +3 -1
  314. package/schemas/tools/list_connected_devices.json +4 -1
  315. package/schemas/tools/list_containers.json +3 -1
  316. package/schemas/tools/list_dhcp_servers.json +4 -1
  317. package/schemas/tools/list_disks.json +3 -1
  318. package/schemas/tools/list_dns_static.json +4 -1
  319. package/schemas/tools/list_dot1x_clients.json +3 -1
  320. package/schemas/tools/list_dot1x_servers.json +3 -1
  321. package/schemas/tools/list_filter_rules.json +5 -1
  322. package/schemas/tools/list_graphing.json +8 -2
  323. package/schemas/tools/list_interfaces.json +4 -1
  324. package/schemas/tools/list_ip_addresses.json +4 -1
  325. package/schemas/tools/list_ip_pools.json +3 -1
  326. package/schemas/tools/list_ipv6_address_lists.json +3 -1
  327. package/schemas/tools/list_ipv6_addresses.json +5 -1
  328. package/schemas/tools/list_ipv6_dhcp_bindings.json +3 -1
  329. package/schemas/tools/list_ipv6_dhcp_clients.json +4 -1
  330. package/schemas/tools/list_ipv6_dhcp_relays.json +3 -1
  331. package/schemas/tools/list_ipv6_dhcp_servers.json +4 -1
  332. package/schemas/tools/list_ipv6_filter_rules.json +5 -1
  333. package/schemas/tools/list_ipv6_mangle_rules.json +5 -1
  334. package/schemas/tools/list_ipv6_nat_rules.json +5 -1
  335. package/schemas/tools/list_ipv6_nd.json +3 -1
  336. package/schemas/tools/list_ipv6_nd_prefixes.json +3 -1
  337. package/schemas/tools/list_ipv6_neighbors.json +3 -1
  338. package/schemas/tools/list_ipv6_raw_rules.json +5 -1
  339. package/schemas/tools/list_ipv6_routes.json +5 -1
  340. package/schemas/tools/list_mangle_rules.json +5 -1
  341. package/schemas/tools/list_nat_rules.json +4 -1
  342. package/schemas/tools/list_ppp_secrets.json +8 -1
  343. package/schemas/tools/list_queue_trees.json +4 -1
  344. package/schemas/tools/list_routes.json +6 -1
  345. package/schemas/tools/list_routing_nexthops.json +3 -1
  346. package/schemas/tools/list_routing_rules.json +3 -1
  347. package/schemas/tools/list_s3_backups.json +3 -1
  348. package/schemas/tools/list_simple_queues.json +4 -1
  349. package/schemas/tools/list_switch_rules.json +3 -1
  350. package/schemas/tools/list_traffic_monitors.json +3 -1
  351. package/schemas/tools/list_user_manager_sessions.json +3 -1
  352. package/schemas/tools/list_user_ssh_keys.json +3 -1
  353. package/schemas/tools/list_users.json +4 -1
  354. package/schemas/tools/list_vlan_interfaces.json +3 -1
  355. package/schemas/tools/list_wireguard_interfaces.json +4 -1
  356. package/schemas/tools/list_wireguard_peers.json +3 -1
  357. package/schemas/tools/list_wireless_interfaces.json +4 -1
  358. package/schemas/tools/make_device_static.json +3 -1
  359. package/schemas/tools/memory_add_observations.json +32 -0
  360. package/schemas/tools/memory_create_entities.json +36 -0
  361. package/schemas/tools/memory_create_relations.json +33 -0
  362. package/schemas/tools/memory_delete_entities.json +17 -0
  363. package/schemas/tools/memory_delete_observations.json +32 -0
  364. package/schemas/tools/memory_delete_relations.json +33 -0
  365. package/schemas/tools/memory_open_nodes.json +17 -0
  366. package/schemas/tools/memory_read_graph.json +7 -0
  367. package/schemas/tools/memory_search_nodes.json +19 -0
  368. package/schemas/tools/mirror_traffic_to_capture.json +12 -2
  369. package/schemas/tools/monitor_logs.json +3 -1
  370. package/schemas/tools/move_filter_rule.json +4 -1
  371. package/schemas/tools/move_ipv6_filter_rule.json +4 -1
  372. package/schemas/tools/move_ipv6_mangle_rule.json +4 -1
  373. package/schemas/tools/move_ipv6_nat_rule.json +4 -1
  374. package/schemas/tools/move_ipv6_raw_rule.json +4 -1
  375. package/schemas/tools/move_mangle_rule.json +4 -1
  376. package/schemas/tools/move_nat_rule.json +4 -1
  377. package/schemas/tools/onboard_wireguard_user.json +8 -1
  378. package/schemas/tools/packet_capture_status.json +3 -1
  379. package/schemas/tools/ping.json +4 -1
  380. package/schemas/tools/profile_cpu.json +3 -1
  381. package/schemas/tools/reboot_system.json +3 -1
  382. package/schemas/tools/release_ipv6_dhcp_client.json +3 -1
  383. package/schemas/tools/remove_address_list_entry.json +3 -1
  384. package/schemas/tools/remove_bfd_configuration.json +3 -1
  385. package/schemas/tools/remove_bgp_connection.json +3 -1
  386. package/schemas/tools/remove_bgp_template.json +3 -1
  387. package/schemas/tools/remove_bridge.json +3 -1
  388. package/schemas/tools/remove_bridge_port.json +3 -1
  389. package/schemas/tools/remove_certificate.json +3 -1
  390. package/schemas/tools/remove_config_snapshot.json +3 -1
  391. package/schemas/tools/remove_container_env.json +4 -1
  392. package/schemas/tools/remove_container_mount.json +3 -1
  393. package/schemas/tools/remove_device_lease.json +3 -1
  394. package/schemas/tools/remove_dhcp_client.json +3 -1
  395. package/schemas/tools/remove_dhcp_server.json +3 -1
  396. package/schemas/tools/remove_disk.json +3 -1
  397. package/schemas/tools/remove_dns_static.json +3 -1
  398. package/schemas/tools/remove_dot1x_client.json +3 -1
  399. package/schemas/tools/remove_dot1x_server.json +3 -1
  400. package/schemas/tools/remove_eoip_tunnel.json +3 -1
  401. package/schemas/tools/remove_file.json +3 -1
  402. package/schemas/tools/remove_filter_rule.json +3 -1
  403. package/schemas/tools/remove_graphing.json +9 -2
  404. package/schemas/tools/remove_gre_tunnel.json +3 -1
  405. package/schemas/tools/remove_igmp_proxy_interface.json +3 -1
  406. package/schemas/tools/remove_ip_address.json +3 -1
  407. package/schemas/tools/remove_ip_pool.json +3 -1
  408. package/schemas/tools/remove_ipip_tunnel.json +3 -1
  409. package/schemas/tools/remove_ipsec_identity.json +3 -1
  410. package/schemas/tools/remove_ipsec_peer.json +3 -1
  411. package/schemas/tools/remove_ipsec_policy.json +3 -1
  412. package/schemas/tools/remove_ipsec_profile.json +3 -1
  413. package/schemas/tools/remove_ipsec_proposal.json +3 -1
  414. package/schemas/tools/remove_ipv6_address.json +3 -1
  415. package/schemas/tools/remove_ipv6_address_list_entry.json +3 -1
  416. package/schemas/tools/remove_ipv6_dhcp_binding.json +3 -1
  417. package/schemas/tools/remove_ipv6_dhcp_client.json +3 -1
  418. package/schemas/tools/remove_ipv6_dhcp_option.json +3 -1
  419. package/schemas/tools/remove_ipv6_dhcp_relay.json +3 -1
  420. package/schemas/tools/remove_ipv6_dhcp_server.json +3 -1
  421. package/schemas/tools/remove_ipv6_filter_rule.json +3 -1
  422. package/schemas/tools/remove_ipv6_mangle_rule.json +3 -1
  423. package/schemas/tools/remove_ipv6_nat_rule.json +3 -1
  424. package/schemas/tools/remove_ipv6_nd.json +3 -1
  425. package/schemas/tools/remove_ipv6_nd_prefix.json +3 -1
  426. package/schemas/tools/remove_ipv6_neighbor.json +3 -1
  427. package/schemas/tools/remove_ipv6_pool.json +3 -1
  428. package/schemas/tools/remove_ipv6_raw_rule.json +3 -1
  429. package/schemas/tools/remove_ipv6_route.json +3 -1
  430. package/schemas/tools/remove_l2tp_client.json +3 -1
  431. package/schemas/tools/remove_logging_action.json +3 -1
  432. package/schemas/tools/remove_logging_rule.json +3 -1
  433. package/schemas/tools/remove_mangle_rule.json +3 -1
  434. package/schemas/tools/remove_nat_rule.json +3 -1
  435. package/schemas/tools/remove_netwatch.json +3 -1
  436. package/schemas/tools/remove_ospf_area.json +3 -1
  437. package/schemas/tools/remove_ospf_area_range.json +3 -1
  438. package/schemas/tools/remove_ospf_instance.json +3 -1
  439. package/schemas/tools/remove_ospf_interface_template.json +3 -1
  440. package/schemas/tools/remove_ovpn_client.json +3 -1
  441. package/schemas/tools/remove_ovpn_server.json +3 -1
  442. package/schemas/tools/remove_pimsm_instance.json +3 -1
  443. package/schemas/tools/remove_pimsm_interface_template.json +3 -1
  444. package/schemas/tools/remove_pimsm_rp.json +3 -1
  445. package/schemas/tools/remove_ppp_profile.json +3 -1
  446. package/schemas/tools/remove_ppp_secret.json +3 -1
  447. package/schemas/tools/remove_pptp_client.json +3 -1
  448. package/schemas/tools/remove_queue_tree.json +3 -1
  449. package/schemas/tools/remove_queue_type.json +3 -1
  450. package/schemas/tools/remove_radius_server.json +3 -1
  451. package/schemas/tools/remove_rip_instance.json +3 -1
  452. package/schemas/tools/remove_rip_interface_template.json +3 -1
  453. package/schemas/tools/remove_rip_static_neighbor.json +3 -1
  454. package/schemas/tools/remove_romon_port.json +3 -1
  455. package/schemas/tools/remove_route.json +3 -1
  456. package/schemas/tools/remove_routing_filter_num_list.json +3 -1
  457. package/schemas/tools/remove_routing_filter_rule.json +3 -1
  458. package/schemas/tools/remove_routing_id.json +3 -1
  459. package/schemas/tools/remove_routing_rule.json +3 -1
  460. package/schemas/tools/remove_routing_table.json +3 -1
  461. package/schemas/tools/remove_rpki_session.json +3 -1
  462. package/schemas/tools/remove_scheduler.json +3 -1
  463. package/schemas/tools/remove_script.json +3 -1
  464. package/schemas/tools/remove_simple_queue.json +3 -1
  465. package/schemas/tools/remove_sstp_client.json +3 -1
  466. package/schemas/tools/remove_switch_port_isolation.json +3 -1
  467. package/schemas/tools/remove_switch_rule.json +3 -1
  468. package/schemas/tools/remove_threat_feed.json +3 -1
  469. package/schemas/tools/remove_time_policy.json +3 -1
  470. package/schemas/tools/remove_traffic_generator_port.json +3 -1
  471. package/schemas/tools/remove_traffic_generator_stream.json +3 -1
  472. package/schemas/tools/remove_traffic_monitor.json +3 -1
  473. package/schemas/tools/remove_user.json +3 -1
  474. package/schemas/tools/remove_user_group.json +3 -1
  475. package/schemas/tools/remove_user_manager_limitation.json +3 -1
  476. package/schemas/tools/remove_user_manager_profile.json +3 -1
  477. package/schemas/tools/remove_user_manager_router.json +3 -1
  478. package/schemas/tools/remove_user_manager_user.json +3 -1
  479. package/schemas/tools/remove_user_ssh_key.json +3 -1
  480. package/schemas/tools/remove_vlan_interface.json +3 -1
  481. package/schemas/tools/remove_vxlan_tunnel.json +3 -1
  482. package/schemas/tools/remove_wireguard_interface.json +3 -1
  483. package/schemas/tools/remove_wireguard_peer.json +3 -1
  484. package/schemas/tools/remove_wireless_access_list_entry.json +3 -1
  485. package/schemas/tools/remove_wireless_interface.json +3 -1
  486. package/schemas/tools/remove_wireless_security_profile.json +3 -1
  487. package/schemas/tools/rename_local_backup.json +4 -1
  488. package/schemas/tools/renew_dhcp_client.json +4 -1
  489. package/schemas/tools/renew_ipv6_dhcp_client.json +3 -1
  490. package/schemas/tools/request_letsencrypt_certificate.json +3 -1
  491. package/schemas/tools/reset_configuration.json +3 -1
  492. package/schemas/tools/resolve_dns.json +3 -1
  493. package/schemas/tools/restore_backup.json +3 -1
  494. package/schemas/tools/restore_local_backup.json +4 -1
  495. package/schemas/tools/revoke_wireguard_user.json +3 -1
  496. package/schemas/tools/run_compliance_audit.json +46 -0
  497. package/schemas/tools/run_failover_drill.json +11 -2
  498. package/schemas/tools/run_routeros_command.json +3 -1
  499. package/schemas/tools/run_script.json +3 -1
  500. package/schemas/tools/s3_backup_info.json +3 -1
  501. package/schemas/tools/save_sniffer.json +3 -1
  502. package/schemas/tools/scan_wireless_networks.json +4 -1
  503. package/schemas/tools/search_logs.json +4 -1
  504. package/schemas/tools/send_sms.json +5 -1
  505. package/schemas/tools/set_aaa_settings.json +8 -2
  506. package/schemas/tools/set_bfd_configuration_enabled.json +4 -1
  507. package/schemas/tools/set_bgp_connection_enabled.json +4 -1
  508. package/schemas/tools/set_device_ip.json +4 -1
  509. package/schemas/tools/set_device_label.json +4 -1
  510. package/schemas/tools/set_device_limits.json +3 -1
  511. package/schemas/tools/set_dhcp_client.json +3 -1
  512. package/schemas/tools/set_disk.json +3 -1
  513. package/schemas/tools/set_dns_servers.json +6 -1
  514. package/schemas/tools/set_igmp_proxy_interface_enabled.json +4 -1
  515. package/schemas/tools/set_ip_cloud_advanced.json +3 -1
  516. package/schemas/tools/set_ip_service.json +3 -1
  517. package/schemas/tools/set_l2tp_server.json +9 -2
  518. package/schemas/tools/set_leds_settings.json +6 -1
  519. package/schemas/tools/set_neighbor_discovery_settings.json +5 -1
  520. package/schemas/tools/set_ntp_client.json +6 -1
  521. package/schemas/tools/set_ovpn_server.json +12 -3
  522. package/schemas/tools/set_port.json +13 -3
  523. package/schemas/tools/set_routing_filter_rule_enabled.json +4 -1
  524. package/schemas/tools/set_routing_id_enabled.json +4 -1
  525. package/schemas/tools/set_routing_rule_enabled.json +4 -1
  526. package/schemas/tools/set_routing_table_enabled.json +4 -1
  527. package/schemas/tools/set_rpki_session_enabled.json +4 -1
  528. package/schemas/tools/set_ssh_settings.json +10 -2
  529. package/schemas/tools/set_sstp_server.json +4 -1
  530. package/schemas/tools/set_system_identity.json +3 -1
  531. package/schemas/tools/set_time_policy.json +7 -1
  532. package/schemas/tools/set_user_ssh_keys.json +4 -1
  533. package/schemas/tools/set_wireless_security_profile.json +4 -1
  534. package/schemas/tools/setup_port_knock.json +7 -1
  535. package/schemas/tools/setup_wan_failover.json +11 -2
  536. package/schemas/tools/setup_wan_loadbalance.json +10 -2
  537. package/schemas/tools/share_disk.json +3 -1
  538. package/schemas/tools/shutdown_system.json +3 -1
  539. package/schemas/tools/sign_certificate.json +3 -1
  540. package/schemas/tools/speed_test.json +10 -2
  541. package/schemas/tools/start_packet_capture.json +4 -1
  542. package/schemas/tools/subscribe_threat_feed.json +8 -1
  543. package/schemas/tools/suggest_fix.json +33 -0
  544. package/schemas/tools/test_dns_query.json +4 -1
  545. package/schemas/tools/test_ssh_from_device.json +6 -1
  546. package/schemas/tools/test_ssh_to_host.json +6 -1
  547. package/schemas/tools/trace_path.json +25 -0
  548. package/schemas/tools/traceroute.json +4 -1
  549. package/schemas/tools/tune_wifi_channel.json +5 -1
  550. package/schemas/tools/update_bfd_configuration.json +3 -1
  551. package/schemas/tools/update_bgp_connection.json +3 -1
  552. package/schemas/tools/update_bridge.json +26 -5
  553. package/schemas/tools/update_dns_static.json +3 -1
  554. package/schemas/tools/update_dot1x_client.json +3 -1
  555. package/schemas/tools/update_dot1x_server.json +12 -3
  556. package/schemas/tools/update_filter_rule.json +3 -1
  557. package/schemas/tools/update_igmp_proxy_interface.json +3 -1
  558. package/schemas/tools/update_ip_pool.json +3 -1
  559. package/schemas/tools/update_ipsec_peer.json +8 -2
  560. package/schemas/tools/update_ipsec_profile.json +3 -1
  561. package/schemas/tools/update_ipsec_proposal.json +3 -1
  562. package/schemas/tools/update_ipv6_filter_rule.json +3 -1
  563. package/schemas/tools/update_ipv6_mangle_rule.json +3 -1
  564. package/schemas/tools/update_ipv6_nat_rule.json +3 -1
  565. package/schemas/tools/update_ipv6_nd.json +8 -2
  566. package/schemas/tools/update_ipv6_pool.json +3 -1
  567. package/schemas/tools/update_ipv6_raw_rule.json +3 -1
  568. package/schemas/tools/update_ipv6_settings.json +15 -3
  569. package/schemas/tools/update_mac_ping.json +3 -1
  570. package/schemas/tools/update_mac_server.json +3 -1
  571. package/schemas/tools/update_mac_winbox.json +3 -1
  572. package/schemas/tools/update_mangle_rule.json +3 -1
  573. package/schemas/tools/update_nat_rule.json +3 -1
  574. package/schemas/tools/update_ospf_instance.json +3 -1
  575. package/schemas/tools/update_ovpn_server.json +15 -4
  576. package/schemas/tools/update_ppp_profile.json +30 -6
  577. package/schemas/tools/update_ppp_secret.json +11 -2
  578. package/schemas/tools/update_queue_interface.json +4 -1
  579. package/schemas/tools/update_queue_tree.json +3 -1
  580. package/schemas/tools/update_queue_type.json +3 -1
  581. package/schemas/tools/update_radius_server.json +7 -2
  582. package/schemas/tools/update_rip_instance.json +3 -1
  583. package/schemas/tools/update_route.json +3 -1
  584. package/schemas/tools/update_routing_filter_rule.json +3 -1
  585. package/schemas/tools/update_routing_id.json +3 -1
  586. package/schemas/tools/update_routing_rule.json +9 -2
  587. package/schemas/tools/update_routing_settings.json +10 -2
  588. package/schemas/tools/update_routing_table.json +3 -1
  589. package/schemas/tools/update_rpki_session.json +3 -1
  590. package/schemas/tools/update_simple_queue.json +3 -1
  591. package/schemas/tools/update_sniffer_settings.json +9 -2
  592. package/schemas/tools/update_switch.json +3 -1
  593. package/schemas/tools/update_switch_port.json +14 -3
  594. package/schemas/tools/update_switch_port_isolation.json +3 -1
  595. package/schemas/tools/update_switch_rule.json +8 -2
  596. package/schemas/tools/update_traffic_monitor.json +12 -3
  597. package/schemas/tools/update_user.json +3 -1
  598. package/schemas/tools/update_user_group.json +3 -1
  599. package/schemas/tools/update_user_manager_user.json +3 -1
  600. package/schemas/tools/update_vlan_interface.json +14 -3
  601. package/schemas/tools/update_wireguard_interface.json +3 -1
  602. package/schemas/tools/update_wireguard_peer.json +3 -1
  603. package/schemas/tools/update_wireless_interface.json +36 -6
  604. package/schemas/tools/upload_backup_to_s3.json +3 -1
  605. package/schemas/tools/upload_file.json +4 -1
  606. package/schemas/tools/wake_on_lan.json +3 -1
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "3.49.0",
3
+ "version": "3.50.1",
4
4
  "generated": "by scripts/gen-schemas.ts — do not edit by hand",
5
- "toolCount": 768,
5
+ "toolCount": 793,
6
6
  "tools": [
7
7
  {
8
8
  "name": "find_tools",
@@ -14559,6 +14559,173 @@
14559
14559
  "additionalProperties": false
14560
14560
  }
14561
14561
  },
14562
+ {
14563
+ "name": "run_compliance_audit",
14564
+ "title": "Run Network Compliance Audit",
14565
+ "risk": "read",
14566
+ "annotations": {
14567
+ "readOnlyHint": true,
14568
+ "idempotentHint": true,
14569
+ "openWorldHint": false
14570
+ },
14571
+ "description": "Deep-scan a single device's security posture across SSH, management services, firewall, users, DNS, certificates, network services, SNMP, system hardening and VPN — 36 checks scored A+ through F with per-check pass/fail/warn and fix commands. Returns a scored compliance report. Optionally narrow by category or severity, and generate a combined RouterOS fix script. For fleet-wide audit across all devices use `audit_fleet`. For firewall-specific analysis use `firewall_audit`; for certificate lifecycle use `cert_expiry_audit`; for hardening use `security_shield`. This tool ties them all together into a unified compliance grade.",
14572
+ "inputSchema": {
14573
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
14574
+ "type": "object",
14575
+ "properties": {
14576
+ "categories": {
14577
+ "description": "Narrow the audit to specific categories. Available: ssh_security, management_services, firewall_posture, user_security, dns_security, certificate_health, network_services, snmp_security, system_hardening, vpn_security. Omit to audit all.",
14578
+ "type": "array",
14579
+ "items": {
14580
+ "type": "string",
14581
+ "enum": [
14582
+ "ssh_security",
14583
+ "management_services",
14584
+ "firewall_posture",
14585
+ "user_security",
14586
+ "dns_security",
14587
+ "certificate_health",
14588
+ "network_services",
14589
+ "snmp_security",
14590
+ "system_hardening",
14591
+ "vpn_security"
14592
+ ],
14593
+ "description": "Category slug to filter by."
14594
+ }
14595
+ },
14596
+ "severity_threshold": {
14597
+ "description": "Only report checks at or above this severity (default: all).",
14598
+ "type": "string",
14599
+ "enum": ["critical", "high", "medium", "low"]
14600
+ },
14601
+ "generate_fix_script": {
14602
+ "default": false,
14603
+ "description": "Append a combined RouterOS fix script for all failing checks.",
14604
+ "type": "boolean"
14605
+ }
14606
+ },
14607
+ "required": ["generate_fix_script"],
14608
+ "additionalProperties": false
14609
+ }
14610
+ },
14611
+ {
14612
+ "name": "audit_fleet",
14613
+ "title": "Fleet-wide Compliance Audit",
14614
+ "risk": "read",
14615
+ "annotations": {
14616
+ "readOnlyHint": true,
14617
+ "idempotentHint": true,
14618
+ "openWorldHint": false
14619
+ },
14620
+ "description": "Run the compliance audit across ALL configured devices (or a specified subset) and return a consolidated fleet report with per-device grades, an aggregate fleet score, and a summary of the most common failures across the fleet. For single-device audit use `run_compliance_audit`.",
14621
+ "inputSchema": {
14622
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
14623
+ "type": "object",
14624
+ "properties": {
14625
+ "devices": {
14626
+ "description": "Subset of device names to audit. Omit to audit all configured devices.",
14627
+ "type": "array",
14628
+ "items": {
14629
+ "type": "string"
14630
+ }
14631
+ },
14632
+ "severity_threshold": {
14633
+ "description": "Only report checks at or above this severity (default: all).",
14634
+ "type": "string",
14635
+ "enum": ["critical", "high", "medium", "low"]
14636
+ },
14637
+ "generate_fix_script": {
14638
+ "default": false,
14639
+ "description": "Append per-device fix scripts.",
14640
+ "type": "boolean"
14641
+ }
14642
+ },
14643
+ "required": ["generate_fix_script"],
14644
+ "additionalProperties": false
14645
+ }
14646
+ },
14647
+ {
14648
+ "name": "audit_remediate",
14649
+ "title": "Apply Compliance Fixes",
14650
+ "risk": "write",
14651
+ "annotations": {
14652
+ "destructiveHint": false,
14653
+ "openWorldHint": false
14654
+ },
14655
+ "description": "Run the compliance audit on a device and automatically apply fix commands for all failing/warning checks that have a known fix. Returns the audit report followed by the result of each applied fix command. Use `run_compliance_audit` with `generate_fix_script=true` first to preview fixes, then call this tool to apply them. Only applies fixes for checks that actually fail; checks that already pass are untouched.",
14656
+ "inputSchema": {
14657
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
14658
+ "type": "object",
14659
+ "properties": {
14660
+ "categories": {
14661
+ "description": "Narrow remediation to specific categories.",
14662
+ "type": "array",
14663
+ "items": {
14664
+ "type": "string",
14665
+ "enum": [
14666
+ "ssh_security",
14667
+ "management_services",
14668
+ "firewall_posture",
14669
+ "user_security",
14670
+ "dns_security",
14671
+ "certificate_health",
14672
+ "network_services",
14673
+ "snmp_security",
14674
+ "system_hardening",
14675
+ "vpn_security"
14676
+ ],
14677
+ "description": "Category slug to filter by."
14678
+ }
14679
+ },
14680
+ "severity_threshold": {
14681
+ "description": "Only remediate checks at or above this severity.",
14682
+ "type": "string",
14683
+ "enum": ["critical", "high", "medium", "low"]
14684
+ },
14685
+ "dry_run": {
14686
+ "default": true,
14687
+ "description": "Preview fix commands without applying (default: true). Set false to apply.",
14688
+ "type": "boolean"
14689
+ }
14690
+ },
14691
+ "required": ["dry_run"],
14692
+ "additionalProperties": false
14693
+ }
14694
+ },
14695
+ {
14696
+ "name": "list_compliance_checks",
14697
+ "title": "List Compliance Checks",
14698
+ "risk": "read",
14699
+ "annotations": {
14700
+ "readOnlyHint": true,
14701
+ "idempotentHint": true,
14702
+ "openWorldHint": false
14703
+ },
14704
+ "description": "Reference listing of all compliance checks — ID, category, severity and title. No device connection needed. Use to understand available checks before running `run_compliance_audit` with category or severity filters.",
14705
+ "inputSchema": {
14706
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
14707
+ "type": "object",
14708
+ "properties": {
14709
+ "category": {
14710
+ "description": "Filter to a single category.",
14711
+ "type": "string",
14712
+ "enum": [
14713
+ "ssh_security",
14714
+ "management_services",
14715
+ "firewall_posture",
14716
+ "user_security",
14717
+ "dns_security",
14718
+ "certificate_health",
14719
+ "network_services",
14720
+ "snmp_security",
14721
+ "system_hardening",
14722
+ "vpn_security"
14723
+ ]
14724
+ }
14725
+ },
14726
+ "additionalProperties": false
14727
+ }
14728
+ },
14562
14729
  {
14563
14730
  "name": "list_ip_services",
14564
14731
  "title": "List IP Management Services",
@@ -22212,6 +22379,132 @@
22212
22379
  "additionalProperties": false
22213
22380
  }
22214
22381
  },
22382
+ {
22383
+ "name": "firmware_check",
22384
+ "title": "Check Firmware Updates",
22385
+ "risk": "read",
22386
+ "annotations": {
22387
+ "readOnlyHint": true,
22388
+ "idempotentHint": true,
22389
+ "openWorldHint": false
22390
+ },
22391
+ "description": "Discover available RouterOS updates for a single device or the entire fleet. Queries the configured update channel, compares installed vs. latest version, flags outdated firmware, and assesses upgrade readiness (CPU, memory, version jump). Optionally set the update channel before checking. Use `firmware_status` for detailed package/routerboard info; use `firmware_stage` to download packages after confirming an update is available.",
22392
+ "inputSchema": {
22393
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
22394
+ "type": "object",
22395
+ "properties": {
22396
+ "channel": {
22397
+ "description": "Set the update channel before checking (default: keep current).",
22398
+ "type": "string",
22399
+ "enum": ["stable", "long-term", "testing"]
22400
+ },
22401
+ "fleet": {
22402
+ "default": false,
22403
+ "description": "Check all configured devices instead of just one.",
22404
+ "type": "boolean"
22405
+ },
22406
+ "devices": {
22407
+ "description": "Specific device names to check (fleet mode). Omit to check all.",
22408
+ "type": "array",
22409
+ "items": {
22410
+ "type": "string"
22411
+ }
22412
+ }
22413
+ },
22414
+ "required": ["fleet"],
22415
+ "additionalProperties": false
22416
+ }
22417
+ },
22418
+ {
22419
+ "name": "firmware_stage",
22420
+ "title": "Stage Firmware Packages",
22421
+ "risk": "write",
22422
+ "annotations": {
22423
+ "destructiveHint": false,
22424
+ "openWorldHint": false
22425
+ },
22426
+ "description": "Download and pre-stage RouterOS update packages on the device WITHOUT installing or rebooting (`/system package update download`). Use after `firmware_check` confirms an update is available. Once staged, use `firmware_upgrade` to install during a maintenance window. The download runs in the background on the device; re-run `firmware_status` to verify the download completed.",
22427
+ "inputSchema": {
22428
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
22429
+ "type": "object",
22430
+ "properties": {
22431
+ "channel": {
22432
+ "description": "Set the update channel before downloading (default: keep current).",
22433
+ "type": "string",
22434
+ "enum": ["stable", "long-term", "testing"]
22435
+ }
22436
+ },
22437
+ "additionalProperties": false
22438
+ }
22439
+ },
22440
+ {
22441
+ "name": "firmware_upgrade",
22442
+ "title": "Upgrade Firmware",
22443
+ "risk": "dangerous",
22444
+ "annotations": {
22445
+ "destructiveHint": true,
22446
+ "openWorldHint": false
22447
+ },
22448
+ "description": "Execute the RouterOS upgrade pipeline on a device. Takes a pre-upgrade health snapshot, installs staged packages (device reboots automatically), and optionally schedules the upgrade for a future maintenance window. RouterOS has a built-in fallback mechanism: if the device fails to boot after an upgrade, it automatically reverts to the previous firmware. Use `firmware_check` first to verify an update is available, and `firmware_stage` to pre-download packages. After the device reboots, use `firmware_status` to verify the upgrade and run the post-upgrade health comparison. Requires `confirm=true` — the device WILL REBOOT and be offline for 1-3 minutes.",
22449
+ "inputSchema": {
22450
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
22451
+ "type": "object",
22452
+ "properties": {
22453
+ "confirm": {
22454
+ "type": "boolean",
22455
+ "description": "Must be true to execute the upgrade. Device will reboot."
22456
+ },
22457
+ "schedule_time": {
22458
+ "description": "Schedule the upgrade for a future time instead of immediate execution. Format: HH:MM:SS (e.g. '03:00:00' for 3 AM). The device will reboot at this time.",
22459
+ "type": "string"
22460
+ },
22461
+ "schedule_date": {
22462
+ "description": "Date for scheduled upgrade. Format: 'jan/01/2026'. Omit to use today (or the next occurrence of schedule_time).",
22463
+ "type": "string"
22464
+ },
22465
+ "upgrade_routerboard": {
22466
+ "default": false,
22467
+ "description": "Also upgrade RouterBOARD firmware after RouterOS upgrade (`/system routerboard upgrade`). Requires a second reboot.",
22468
+ "type": "boolean"
22469
+ },
22470
+ "capture_health": {
22471
+ "default": true,
22472
+ "description": "Capture a pre-upgrade health snapshot for later comparison.",
22473
+ "type": "boolean"
22474
+ }
22475
+ },
22476
+ "required": ["confirm", "upgrade_routerboard", "capture_health"],
22477
+ "additionalProperties": false
22478
+ }
22479
+ },
22480
+ {
22481
+ "name": "firmware_status",
22482
+ "title": "Firmware Status & Health Check",
22483
+ "risk": "read",
22484
+ "annotations": {
22485
+ "readOnlyHint": true,
22486
+ "idempotentHint": true,
22487
+ "openWorldHint": false
22488
+ },
22489
+ "description": "Show detailed firmware status for a device: RouterOS version, architecture, installed packages, RouterBOARD firmware, update channel status, and upgrade readiness assessment. Set `post_check=true` after an upgrade to capture a post-upgrade health snapshot and compare it against the pre-upgrade baseline — verifying routes, interfaces, sessions, and system resources came back healthy. For fleet-wide status use `firmware_check` with `fleet=true`.",
22490
+ "inputSchema": {
22491
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
22492
+ "type": "object",
22493
+ "properties": {
22494
+ "post_check": {
22495
+ "default": false,
22496
+ "description": "Capture a health snapshot and compare against the pre-upgrade baseline. Use after an upgrade to verify the device came back healthy.",
22497
+ "type": "boolean"
22498
+ },
22499
+ "pre_snapshot_version": {
22500
+ "description": "The version that was running before the upgrade (for comparison context). If not provided, the post-check captures the snapshot without comparison.",
22501
+ "type": "string"
22502
+ }
22503
+ },
22504
+ "required": ["post_check"],
22505
+ "additionalProperties": false
22506
+ }
22507
+ },
22215
22508
  {
22216
22509
  "name": "ping",
22217
22510
  "title": "Ping Host via Router",
@@ -22492,92 +22785,256 @@
22492
22785
  }
22493
22786
  },
22494
22787
  {
22495
- "name": "test_ssh_to_device",
22496
- "title": "Test SSH to a Configured Device (from the MCP host)",
22788
+ "name": "diagnose",
22789
+ "title": "Intelligent Root-Cause Diagnosis",
22497
22790
  "risk": "read",
22498
22791
  "annotations": {
22499
22792
  "readOnlyHint": true,
22500
22793
  "idempotentHint": true,
22501
22794
  "openWorldHint": false
22502
22795
  },
22503
- "description": "Tests the SSH connection FROM THE MACHINE RUNNING THIS MCP SERVER to a CONFIGURED device, using that device's stored host/port/credentials. Use this to diagnose why a saved device is not responding it confirms whether the MCP host can reach the device's SSH port AND authenticate, and reports the connect latency and identity. Targets the selected/default device (the `device` selector). NOTE: this opens a real SSH connection from the MCP host, not through the usual command channel, and is SSH-only (a MAC-Telnet device has no SSH). To test an UNSAVED host with ad-hoc credentials use test_ssh_to_host; to test SSH OUTBOUND from a router use test_ssh_from_device. Returns OK/failed with the reason.",
22796
+ "description": "Autonomously investigate a network problem across all diagnostic dimensions: connectivity (ping), interface state & error counters, routing table & BGP/OSPF neighbors, firewall rules & hit counters, NAT & connection tracking, ARP/DHCP state, DNS resolution, CPU/memory pressure, system logs, and VPN tunnel state. Correlates the evidence to deliver ranked root-cause hypotheses with confidence levels, plain-language explanations, and exact RouterOS fix commands. Pass an IP address, hostname, or symptom description as the target. For hop-by-hop path analysis use `trace_path`; for log-specific investigation use `correlate_events`; for fix commands only use `suggest_fix`.",
22504
22797
  "inputSchema": {
22505
22798
  "$schema": "https://json-schema.org/draft/2020-12/schema",
22506
22799
  "type": "object",
22507
- "properties": {},
22800
+ "properties": {
22801
+ "target": {
22802
+ "type": "string",
22803
+ "description": "The target to investigate — an IP address (e.g. '8.8.8.8'), hostname (e.g. 'google.com'), or network/subnet (e.g. '10.0.0.0/24')."
22804
+ },
22805
+ "dimensions": {
22806
+ "description": "Limit investigation to specific dimensions. Omit to check all: connectivity, interfaces, routing, firewall, nat, arp_dhcp, dns, resources, logs, vpn",
22807
+ "type": "array",
22808
+ "items": {
22809
+ "type": "string",
22810
+ "enum": [
22811
+ "connectivity",
22812
+ "interfaces",
22813
+ "routing",
22814
+ "firewall",
22815
+ "nat",
22816
+ "arp_dhcp",
22817
+ "dns",
22818
+ "resources",
22819
+ "logs",
22820
+ "vpn"
22821
+ ],
22822
+ "description": "Diagnostic dimension to investigate."
22823
+ }
22824
+ },
22825
+ "symptom": {
22826
+ "description": "Free-text symptom description (e.g. 'client cannot reach internet', 'VPN tunnel keeps dropping', 'slow throughput').",
22827
+ "type": "string"
22828
+ }
22829
+ },
22830
+ "required": ["target"],
22508
22831
  "additionalProperties": false
22509
22832
  }
22510
22833
  },
22511
22834
  {
22512
- "name": "test_ssh_to_host",
22513
- "title": "Test SSH to Any Host (from the MCP host)",
22835
+ "name": "trace_path",
22836
+ "title": "Trace Network Path",
22514
22837
  "risk": "read",
22515
22838
  "annotations": {
22516
22839
  "readOnlyHint": true,
22517
22840
  "idempotentHint": true,
22518
22841
  "openWorldHint": false
22519
22842
  },
22520
- "description": "Tests an SSH connection FROM THE MACHINE RUNNING THIS MCP SERVER to an ARBITRARY host:port with the supplied credentials a pre-flight check BEFORE adding a device to the config, or to verify reachability/credentials for any SSH host. Confirms TCP reachability AND authentication and reports the connect latency. Provide a `password` and/or a private-key path (`key_path`). NOTE: this opens a real SSH connection from the MCP host. For a device that is ALREADY configured use test_ssh_to_device; to test SSH outbound FROM a router use test_ssh_from_device. Returns OK/failed with the reason.",
22843
+ "description": "Trace the full network path from this device to a destination with hop-by-hop analysis. Runs a traceroute, then for each hop that is a locally-connected device, checks interface state and routing. Also runs a parallel ping to measure end-to-end reachability and latency. Use for path-specific troubleshooting where packets are being dropped or rerouted. For full multi-dimensional root-cause analysis use `diagnose`.",
22521
22844
  "inputSchema": {
22522
22845
  "$schema": "https://json-schema.org/draft/2020-12/schema",
22523
22846
  "type": "object",
22524
22847
  "properties": {
22525
- "host": {
22848
+ "target": {
22526
22849
  "type": "string",
22527
- "description": "Target IP or hostname"
22850
+ "description": "Destination IP or hostname to trace to."
22528
22851
  },
22529
- "port": {
22530
- "default": 22,
22852
+ "count": {
22853
+ "default": 3,
22854
+ "description": "Probes per hop (default: 3).",
22531
22855
  "type": "integer",
22532
22856
  "minimum": 1,
22533
- "maximum": 65535
22534
- },
22535
- "username": {
22536
- "type": "string"
22537
- },
22538
- "password": {
22539
- "description": "Password auth (omit if using a key)",
22540
- "type": "string"
22541
- },
22542
- "key_path": {
22543
- "description": "Path (on the MCP host) to a private key file",
22544
- "type": "string"
22545
- },
22546
- "key_passphrase": {
22547
- "type": "string"
22857
+ "maximum": 10
22548
22858
  },
22549
- "command": {
22550
- "default": "/system identity print",
22551
- "description": "Command to run once connected (a harmless RouterOS read by default)",
22552
- "type": "string"
22859
+ "use_dns": {
22860
+ "default": true,
22861
+ "description": "Resolve hop addresses to hostnames.",
22862
+ "type": "boolean"
22553
22863
  }
22554
22864
  },
22555
- "required": ["host", "port", "username", "command"],
22865
+ "required": ["target", "count", "use_dns"],
22556
22866
  "additionalProperties": false
22557
22867
  }
22558
22868
  },
22559
22869
  {
22560
- "name": "test_ssh_from_device",
22561
- "title": "Test SSH Outbound From a RouterOS Device",
22562
- "risk": "write",
22870
+ "name": "correlate_events",
22871
+ "title": "Correlate System Events",
22872
+ "risk": "read",
22563
22873
  "annotations": {
22564
- "destructiveHint": false,
22874
+ "readOnlyHint": true,
22875
+ "idempotentHint": true,
22565
22876
  "openWorldHint": false
22566
22877
  },
22567
- "description": "Tests SSH OUTBOUND FROM a RouterOS device to a remote host using the device's OWN SSH client (`/system ssh-exec`) i.e. the connection is made BY the router, not by the MCP host. Use this to check whether a router can reach and log into another host over SSH (e.g. a jump path or another router). The router's user must be able to authenticate to the target NON-interactively (a stored key on the router) a password-only target will prompt and time out. Runs the test `command` on the remote and returns its output. To test the MCP HOST's connection to a device instead, use test_ssh_to_device (configured) or test_ssh_to_host (ad-hoc). Returns the remote command output or the device's error.",
22878
+ "description": "Search and correlate system log events across topics (firewall, DHCP, routing, system, interface) to find patterns around a given time window or keyword. Groups related events chronologically and highlights sequences that indicate cascading failures (e.g. interface down OSPF neighbor lost route withdrawn). For full root-cause analysis use `diagnose`; for path tracing use `trace_path`.",
22568
22879
  "inputSchema": {
22569
22880
  "$schema": "https://json-schema.org/draft/2020-12/schema",
22570
22881
  "type": "object",
22571
22882
  "properties": {
22572
- "host": {
22573
- "type": "string",
22574
- "description": "Remote host the ROUTER should SSH to"
22575
- },
22576
- "port": {
22577
- "default": 22,
22578
- "type": "integer",
22579
- "minimum": 1,
22580
- "maximum": 65535
22883
+ "keyword": {
22884
+ "description": "Filter logs by keyword (IP address, interface name, error message). Omit to show all error/warning/critical events.",
22885
+ "type": "string"
22886
+ },
22887
+ "topics": {
22888
+ "description": "Comma-separated log topics to search (e.g. 'firewall,dhcp,system'). Default: error, warning, critical, firewall, system, interface.",
22889
+ "type": "string"
22890
+ },
22891
+ "time_window": {
22892
+ "default": "30m",
22893
+ "description": "How far back to search: '10m', '1h', '6h', '1d' (default: 30m).",
22894
+ "type": "string"
22895
+ },
22896
+ "limit": {
22897
+ "default": 100,
22898
+ "description": "Maximum log entries to return (default: 100).",
22899
+ "type": "integer",
22900
+ "minimum": 1,
22901
+ "maximum": 500
22902
+ }
22903
+ },
22904
+ "required": ["time_window", "limit"],
22905
+ "additionalProperties": false
22906
+ }
22907
+ },
22908
+ {
22909
+ "name": "suggest_fix",
22910
+ "title": "Suggest Fix Commands",
22911
+ "risk": "read",
22912
+ "annotations": {
22913
+ "readOnlyHint": true,
22914
+ "idempotentHint": true,
22915
+ "openWorldHint": false
22916
+ },
22917
+ "description": "Run a quick diagnosis and return ONLY the actionable fix commands — no verbose report. Useful when you already know the symptom and just need the remediation steps. Each fix command comes with a one-line explanation of what it addresses. For the full diagnostic report use `diagnose`.",
22918
+ "inputSchema": {
22919
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
22920
+ "type": "object",
22921
+ "properties": {
22922
+ "target": {
22923
+ "type": "string",
22924
+ "description": "Target to investigate (IP, hostname, or subnet)."
22925
+ },
22926
+ "dimensions": {
22927
+ "description": "Limit investigation to specific dimensions.",
22928
+ "type": "array",
22929
+ "items": {
22930
+ "type": "string",
22931
+ "enum": [
22932
+ "connectivity",
22933
+ "interfaces",
22934
+ "routing",
22935
+ "firewall",
22936
+ "nat",
22937
+ "arp_dhcp",
22938
+ "dns",
22939
+ "resources",
22940
+ "logs",
22941
+ "vpn"
22942
+ ],
22943
+ "description": "Diagnostic dimension to investigate."
22944
+ }
22945
+ }
22946
+ },
22947
+ "required": ["target"],
22948
+ "additionalProperties": false
22949
+ }
22950
+ },
22951
+ {
22952
+ "name": "test_ssh_to_device",
22953
+ "title": "Test SSH to a Configured Device (from the MCP host)",
22954
+ "risk": "read",
22955
+ "annotations": {
22956
+ "readOnlyHint": true,
22957
+ "idempotentHint": true,
22958
+ "openWorldHint": false
22959
+ },
22960
+ "description": "Tests the SSH connection FROM THE MACHINE RUNNING THIS MCP SERVER to a CONFIGURED device, using that device's stored host/port/credentials. Use this to diagnose why a saved device is not responding — it confirms whether the MCP host can reach the device's SSH port AND authenticate, and reports the connect latency and identity. Targets the selected/default device (the `device` selector). NOTE: this opens a real SSH connection from the MCP host, not through the usual command channel, and is SSH-only (a MAC-Telnet device has no SSH). To test an UNSAVED host with ad-hoc credentials use test_ssh_to_host; to test SSH OUTBOUND from a router use test_ssh_from_device. Returns OK/failed with the reason.",
22961
+ "inputSchema": {
22962
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
22963
+ "type": "object",
22964
+ "properties": {},
22965
+ "additionalProperties": false
22966
+ }
22967
+ },
22968
+ {
22969
+ "name": "test_ssh_to_host",
22970
+ "title": "Test SSH to Any Host (from the MCP host)",
22971
+ "risk": "read",
22972
+ "annotations": {
22973
+ "readOnlyHint": true,
22974
+ "idempotentHint": true,
22975
+ "openWorldHint": false
22976
+ },
22977
+ "description": "Tests an SSH connection FROM THE MACHINE RUNNING THIS MCP SERVER to an ARBITRARY host:port with the supplied credentials — a pre-flight check BEFORE adding a device to the config, or to verify reachability/credentials for any SSH host. Confirms TCP reachability AND authentication and reports the connect latency. Provide a `password` and/or a private-key path (`key_path`). NOTE: this opens a real SSH connection from the MCP host. For a device that is ALREADY configured use test_ssh_to_device; to test SSH outbound FROM a router use test_ssh_from_device. Returns OK/failed with the reason.",
22978
+ "inputSchema": {
22979
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
22980
+ "type": "object",
22981
+ "properties": {
22982
+ "host": {
22983
+ "type": "string",
22984
+ "description": "Target IP or hostname"
22985
+ },
22986
+ "port": {
22987
+ "default": 22,
22988
+ "type": "integer",
22989
+ "minimum": 1,
22990
+ "maximum": 65535
22991
+ },
22992
+ "username": {
22993
+ "type": "string"
22994
+ },
22995
+ "password": {
22996
+ "description": "Password auth (omit if using a key)",
22997
+ "type": "string"
22998
+ },
22999
+ "key_path": {
23000
+ "description": "Path (on the MCP host) to a private key file",
23001
+ "type": "string"
23002
+ },
23003
+ "key_passphrase": {
23004
+ "type": "string"
23005
+ },
23006
+ "command": {
23007
+ "default": "/system identity print",
23008
+ "description": "Command to run once connected (a harmless RouterOS read by default)",
23009
+ "type": "string"
23010
+ }
23011
+ },
23012
+ "required": ["host", "port", "username", "command"],
23013
+ "additionalProperties": false
23014
+ }
23015
+ },
23016
+ {
23017
+ "name": "test_ssh_from_device",
23018
+ "title": "Test SSH Outbound From a RouterOS Device",
23019
+ "risk": "write",
23020
+ "annotations": {
23021
+ "destructiveHint": false,
23022
+ "openWorldHint": false
23023
+ },
23024
+ "description": "Tests SSH OUTBOUND FROM a RouterOS device to a remote host using the device's OWN SSH client (`/system ssh-exec`) — i.e. the connection is made BY the router, not by the MCP host. Use this to check whether a router can reach and log into another host over SSH (e.g. a jump path or another router). The router's user must be able to authenticate to the target NON-interactively (a stored key on the router) — a password-only target will prompt and time out. Runs the test `command` on the remote and returns its output. To test the MCP HOST's connection to a device instead, use test_ssh_to_device (configured) or test_ssh_to_host (ad-hoc). Returns the remote command output or the device's error.",
23025
+ "inputSchema": {
23026
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
23027
+ "type": "object",
23028
+ "properties": {
23029
+ "host": {
23030
+ "type": "string",
23031
+ "description": "Remote host the ROUTER should SSH to"
23032
+ },
23033
+ "port": {
23034
+ "default": 22,
23035
+ "type": "integer",
23036
+ "minimum": 1,
23037
+ "maximum": 65535
22581
23038
  },
22582
23039
  "user": {
22583
23040
  "type": "string",
@@ -26079,6 +26536,129 @@
26079
26536
  "additionalProperties": false
26080
26537
  }
26081
26538
  },
26539
+ {
26540
+ "name": "config_set_baseline",
26541
+ "title": "Set Golden Config Baseline",
26542
+ "risk": "write",
26543
+ "annotations": {
26544
+ "destructiveHint": false,
26545
+ "openWorldHint": false
26546
+ },
26547
+ "description": "Capture the current device `/export` and designate it as the golden-config baseline — the known-good reference point for drift detection. A device can have exactly one baseline; setting a new one replaces the previous. The export is also stored as a regular config snapshot in `~/.mikrotik-mcp/snapshots.db`. Use `config_check_drift` to compare the live config against this baseline; use `config_promote_drift` to accept the current (drifted) config as the new baseline. Optionally limit to one RouterOS section via `section` (e.g. 'ip firewall filter').",
26548
+ "inputSchema": {
26549
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
26550
+ "type": "object",
26551
+ "properties": {
26552
+ "label": {
26553
+ "description": "Human label for this baseline, e.g. 'production-v2'.",
26554
+ "type": "string"
26555
+ },
26556
+ "notes": {
26557
+ "description": "Free-text notes about why this baseline was set.",
26558
+ "type": "string"
26559
+ },
26560
+ "section": {
26561
+ "description": "RouterOS path without leading slash. Omit for full config.",
26562
+ "type": "string"
26563
+ },
26564
+ "terse": {
26565
+ "default": true,
26566
+ "description": "Use `/export terse` for cleaner diffs. Default true.",
26567
+ "type": "boolean"
26568
+ },
26569
+ "show_sensitive": {
26570
+ "default": false,
26571
+ "type": "boolean"
26572
+ }
26573
+ },
26574
+ "required": ["terse", "show_sensitive"],
26575
+ "additionalProperties": false
26576
+ }
26577
+ },
26578
+ {
26579
+ "name": "config_check_drift",
26580
+ "title": "Check Config Drift Against Baseline",
26581
+ "risk": "read",
26582
+ "annotations": {
26583
+ "readOnlyHint": true,
26584
+ "idempotentHint": true,
26585
+ "openWorldHint": false
26586
+ },
26587
+ "description": "Compare the live device configuration against its golden baseline and return a drift report with: severity score (0–100), per-section breakdown of what changed, change attribution from system logs (who changed what and when), and a unified diff. Requires a baseline to be set first via `config_set_baseline`. Set `include_logs=false` to skip log-based change attribution (faster). Use `config_reconcile` to push the baseline back onto the device, or `config_promote_drift` to accept the drift.",
26588
+ "inputSchema": {
26589
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
26590
+ "type": "object",
26591
+ "properties": {
26592
+ "include_logs": {
26593
+ "default": true,
26594
+ "description": "Fetch system logs for change attribution. Default true.",
26595
+ "type": "boolean"
26596
+ },
26597
+ "log_duration": {
26598
+ "default": "7d",
26599
+ "description": "How far back to search logs. RouterOS duration (e.g. '7d', '24h').",
26600
+ "type": "string"
26601
+ },
26602
+ "max_output_lines": {
26603
+ "default": 800,
26604
+ "description": "Truncate the unified diff beyond this many lines.",
26605
+ "type": "integer",
26606
+ "minimum": 50,
26607
+ "maximum": 5000
26608
+ }
26609
+ },
26610
+ "required": ["include_logs", "log_duration", "max_output_lines"],
26611
+ "additionalProperties": false
26612
+ }
26613
+ },
26614
+ {
26615
+ "name": "config_reconcile",
26616
+ "title": "Reconcile Device to Golden Baseline",
26617
+ "risk": "dangerous",
26618
+ "annotations": {
26619
+ "destructiveHint": true,
26620
+ "openWorldHint": false
26621
+ },
26622
+ "description": "Push the golden baseline configuration back onto the device, reverting all drift. Replays the baseline's `/export` commands through RouterOS Safe Mode — if any command fails or the device becomes unreachable, all changes are automatically rolled back. With `confirm=false` (default) this is a DRY RUN: commands are applied and then rolled back, showing what would change. Set `confirm=true` to actually commit. Requires SSH (not MAC-Telnet). After a successful commit, a verification snapshot is captured to confirm the state.",
26623
+ "inputSchema": {
26624
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
26625
+ "type": "object",
26626
+ "properties": {
26627
+ "confirm": {
26628
+ "default": false,
26629
+ "description": "false = dry-run (apply + rollback); true = commit for real.",
26630
+ "type": "boolean"
26631
+ }
26632
+ },
26633
+ "required": ["confirm"],
26634
+ "additionalProperties": false
26635
+ }
26636
+ },
26637
+ {
26638
+ "name": "config_promote_drift",
26639
+ "title": "Promote Current Config as New Baseline",
26640
+ "risk": "write",
26641
+ "annotations": {
26642
+ "destructiveHint": false,
26643
+ "openWorldHint": false
26644
+ },
26645
+ "description": "Accept the device's current (drifted) configuration as the new golden baseline. Captures a fresh `/export` snapshot and replaces the existing baseline pointer. Use this after reviewing drift with `config_check_drift` and deciding the changes are intentional. The old baseline snapshot is preserved in snapshot history.",
26646
+ "inputSchema": {
26647
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
26648
+ "type": "object",
26649
+ "properties": {
26650
+ "label": {
26651
+ "description": "Label for the new baseline.",
26652
+ "type": "string"
26653
+ },
26654
+ "notes": {
26655
+ "description": "Why the drift is being accepted.",
26656
+ "type": "string"
26657
+ }
26658
+ },
26659
+ "additionalProperties": false
26660
+ }
26661
+ },
26082
26662
  {
26083
26663
  "name": "s3_backup_status",
26084
26664
  "title": "Check S3 Backup Configuration Status",
@@ -27367,6 +27947,319 @@
27367
27947
  "additionalProperties": false
27368
27948
  }
27369
27949
  },
27950
+ {
27951
+ "name": "memory_create_entities",
27952
+ "title": "Create Knowledge Graph Entities",
27953
+ "risk": "write",
27954
+ "annotations": {
27955
+ "destructiveHint": false,
27956
+ "openWorldHint": false
27957
+ },
27958
+ "description": "Create one or more new entities in the persistent knowledge graph. Each entity has a unique name, a type (e.g. 'router', 'subnet', 'vlan', 'person', 'config_pattern'), and optional initial observations. Entities that already exist are silently skipped. Use this to record things the AI learns about the network, devices, users, or patterns.",
27959
+ "inputSchema": {
27960
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
27961
+ "type": "object",
27962
+ "properties": {
27963
+ "entities": {
27964
+ "minItems": 1,
27965
+ "type": "array",
27966
+ "items": {
27967
+ "type": "object",
27968
+ "properties": {
27969
+ "name": {
27970
+ "type": "string",
27971
+ "description": "Unique name of the entity"
27972
+ },
27973
+ "entityType": {
27974
+ "type": "string",
27975
+ "description": "Type/category of the entity (e.g. 'router', 'subnet', 'person')"
27976
+ },
27977
+ "observations": {
27978
+ "description": "Initial observations (facts) to attach",
27979
+ "type": "array",
27980
+ "items": {
27981
+ "type": "string"
27982
+ }
27983
+ }
27984
+ },
27985
+ "required": ["name", "entityType"],
27986
+ "additionalProperties": false
27987
+ },
27988
+ "description": "Entities to create"
27989
+ }
27990
+ },
27991
+ "required": ["entities"],
27992
+ "additionalProperties": false
27993
+ }
27994
+ },
27995
+ {
27996
+ "name": "memory_create_relations",
27997
+ "title": "Create Knowledge Graph Relations",
27998
+ "risk": "write",
27999
+ "annotations": {
28000
+ "destructiveHint": false,
28001
+ "openWorldHint": false
28002
+ },
28003
+ "description": "Create directed relations between existing entities in the knowledge graph. Both endpoint entities must already exist. Use active voice for relation types (e.g. 'manages', 'connects_to', 'provides_dhcp_for', 'part_of'). Duplicate relations are silently skipped.",
28004
+ "inputSchema": {
28005
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
28006
+ "type": "object",
28007
+ "properties": {
28008
+ "relations": {
28009
+ "minItems": 1,
28010
+ "type": "array",
28011
+ "items": {
28012
+ "type": "object",
28013
+ "properties": {
28014
+ "from": {
28015
+ "type": "string",
28016
+ "description": "Source entity name"
28017
+ },
28018
+ "to": {
28019
+ "type": "string",
28020
+ "description": "Target entity name"
28021
+ },
28022
+ "relationType": {
28023
+ "type": "string",
28024
+ "description": "Relation type in active voice (e.g. 'manages', 'connects_to', 'depends_on')"
28025
+ }
28026
+ },
28027
+ "required": ["from", "to", "relationType"],
28028
+ "additionalProperties": false
28029
+ },
28030
+ "description": "Relations to create"
28031
+ }
28032
+ },
28033
+ "required": ["relations"],
28034
+ "additionalProperties": false
28035
+ }
28036
+ },
28037
+ {
28038
+ "name": "memory_add_observations",
28039
+ "title": "Add Observations to Entities",
28040
+ "risk": "write",
28041
+ "annotations": {
28042
+ "destructiveHint": false,
28043
+ "openWorldHint": false
28044
+ },
28045
+ "description": "Add new observations (discrete facts) to existing entities in the knowledge graph. Each observation is a string (e.g. 'runs RouterOS 7.16', 'has 4 ether ports', 'managed by John'). Duplicate observations on the same entity are silently skipped. The entity must already exist.",
28046
+ "inputSchema": {
28047
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
28048
+ "type": "object",
28049
+ "properties": {
28050
+ "observations": {
28051
+ "minItems": 1,
28052
+ "type": "array",
28053
+ "items": {
28054
+ "type": "object",
28055
+ "properties": {
28056
+ "entityName": {
28057
+ "type": "string",
28058
+ "description": "Name of the existing entity"
28059
+ },
28060
+ "contents": {
28061
+ "minItems": 1,
28062
+ "type": "array",
28063
+ "items": {
28064
+ "type": "string"
28065
+ },
28066
+ "description": "Observations to add"
28067
+ }
28068
+ },
28069
+ "required": ["entityName", "contents"],
28070
+ "additionalProperties": false
28071
+ }
28072
+ }
28073
+ },
28074
+ "required": ["observations"],
28075
+ "additionalProperties": false
28076
+ }
28077
+ },
28078
+ {
28079
+ "name": "memory_delete_entities",
28080
+ "title": "Delete Knowledge Graph Entities",
28081
+ "risk": "destructive",
28082
+ "annotations": {
28083
+ "destructiveHint": true,
28084
+ "idempotentHint": true,
28085
+ "openWorldHint": false
28086
+ },
28087
+ "description": "Remove entities from the knowledge graph. This also deletes all their observations and any relations where they appear as an endpoint (cascade delete).",
28088
+ "inputSchema": {
28089
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
28090
+ "type": "object",
28091
+ "properties": {
28092
+ "entityNames": {
28093
+ "minItems": 1,
28094
+ "type": "array",
28095
+ "items": {
28096
+ "type": "string"
28097
+ },
28098
+ "description": "Names of entities to delete"
28099
+ }
28100
+ },
28101
+ "required": ["entityNames"],
28102
+ "additionalProperties": false
28103
+ }
28104
+ },
28105
+ {
28106
+ "name": "memory_delete_observations",
28107
+ "title": "Delete Observations from Entities",
28108
+ "risk": "destructive",
28109
+ "annotations": {
28110
+ "destructiveHint": true,
28111
+ "idempotentHint": true,
28112
+ "openWorldHint": false
28113
+ },
28114
+ "description": "Remove specific observations from entities in the knowledge graph. The entity itself is kept; only the named observation strings are removed.",
28115
+ "inputSchema": {
28116
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
28117
+ "type": "object",
28118
+ "properties": {
28119
+ "deletions": {
28120
+ "minItems": 1,
28121
+ "type": "array",
28122
+ "items": {
28123
+ "type": "object",
28124
+ "properties": {
28125
+ "entityName": {
28126
+ "type": "string",
28127
+ "description": "Entity to remove observations from"
28128
+ },
28129
+ "observations": {
28130
+ "minItems": 1,
28131
+ "type": "array",
28132
+ "items": {
28133
+ "type": "string"
28134
+ },
28135
+ "description": "Exact observation strings to delete"
28136
+ }
28137
+ },
28138
+ "required": ["entityName", "observations"],
28139
+ "additionalProperties": false
28140
+ }
28141
+ }
28142
+ },
28143
+ "required": ["deletions"],
28144
+ "additionalProperties": false
28145
+ }
28146
+ },
28147
+ {
28148
+ "name": "memory_delete_relations",
28149
+ "title": "Delete Knowledge Graph Relations",
28150
+ "risk": "destructive",
28151
+ "annotations": {
28152
+ "destructiveHint": true,
28153
+ "idempotentHint": true,
28154
+ "openWorldHint": false
28155
+ },
28156
+ "description": "Remove specific relations from the knowledge graph. Each relation is identified by its (from, to, relationType) triple.",
28157
+ "inputSchema": {
28158
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
28159
+ "type": "object",
28160
+ "properties": {
28161
+ "relations": {
28162
+ "minItems": 1,
28163
+ "type": "array",
28164
+ "items": {
28165
+ "type": "object",
28166
+ "properties": {
28167
+ "from": {
28168
+ "type": "string",
28169
+ "description": "Source entity name"
28170
+ },
28171
+ "to": {
28172
+ "type": "string",
28173
+ "description": "Target entity name"
28174
+ },
28175
+ "relationType": {
28176
+ "type": "string",
28177
+ "description": "Relation type in active voice (e.g. 'manages', 'connects_to', 'depends_on')"
28178
+ }
28179
+ },
28180
+ "required": ["from", "to", "relationType"],
28181
+ "additionalProperties": false
28182
+ },
28183
+ "description": "Relations to delete"
28184
+ }
28185
+ },
28186
+ "required": ["relations"],
28187
+ "additionalProperties": false
28188
+ }
28189
+ },
28190
+ {
28191
+ "name": "memory_read_graph",
28192
+ "title": "Read Entire Knowledge Graph",
28193
+ "risk": "read",
28194
+ "annotations": {
28195
+ "readOnlyHint": true,
28196
+ "idempotentHint": true,
28197
+ "openWorldHint": false
28198
+ },
28199
+ "description": "Read the entire knowledge graph — all entities with their observations, plus all relations. Use this to get a complete picture of accumulated knowledge. For large graphs, prefer memory_search_nodes or memory_open_nodes.",
28200
+ "inputSchema": {
28201
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
28202
+ "type": "object",
28203
+ "properties": {},
28204
+ "additionalProperties": false
28205
+ }
28206
+ },
28207
+ {
28208
+ "name": "memory_search_nodes",
28209
+ "title": "Search Knowledge Graph",
28210
+ "risk": "read",
28211
+ "annotations": {
28212
+ "readOnlyHint": true,
28213
+ "idempotentHint": true,
28214
+ "openWorldHint": false
28215
+ },
28216
+ "description": "Search for entities in the knowledge graph by name, type, or observation content. Returns matching entities with their observations, plus any relations where at least one endpoint is in the result set.",
28217
+ "inputSchema": {
28218
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
28219
+ "type": "object",
28220
+ "properties": {
28221
+ "query": {
28222
+ "type": "string",
28223
+ "description": "Search term — matched against entity names, types, and observation content"
28224
+ },
28225
+ "limit": {
28226
+ "description": "Max entities to return (default 50)",
28227
+ "type": "integer",
28228
+ "exclusiveMinimum": 0,
28229
+ "maximum": 9007199254740991
28230
+ }
28231
+ },
28232
+ "required": ["query"],
28233
+ "additionalProperties": false
28234
+ }
28235
+ },
28236
+ {
28237
+ "name": "memory_open_nodes",
28238
+ "title": "Open Knowledge Graph Nodes",
28239
+ "risk": "read",
28240
+ "annotations": {
28241
+ "readOnlyHint": true,
28242
+ "idempotentHint": true,
28243
+ "openWorldHint": false
28244
+ },
28245
+ "description": "Retrieve specific entities by exact name from the knowledge graph, with all their observations and any relations where at least one endpoint is in the requested set.",
28246
+ "inputSchema": {
28247
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
28248
+ "type": "object",
28249
+ "properties": {
28250
+ "names": {
28251
+ "minItems": 1,
28252
+ "type": "array",
28253
+ "items": {
28254
+ "type": "string"
28255
+ },
28256
+ "description": "Exact entity names to retrieve"
28257
+ }
28258
+ },
28259
+ "required": ["names"],
28260
+ "additionalProperties": false
28261
+ }
28262
+ },
27370
28263
  {
27371
28264
  "name": "show_system_dashboard",
27372
28265
  "title": "Show System Dashboard",