@usex/mikrotik-mcp 2.4.0 → 3.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.
- package/README.md +88 -62
- package/dist/cli.js +5511 -3453
- package/dist/index.d.ts +0 -4
- package/dist/index.js +5085 -3437
- package/dist/ui/dashboard.html +1 -1
- package/dist/ui/firewall-audit.html +20 -0
- package/dist/ui/firewall.html +1 -1
- package/dist/ui/interfaces.html +1 -1
- package/dist/ui/observability.html +14 -7
- package/dist/ui/records.html +1 -1
- package/package.json +8 -4
- package/prompts/backup-and-document.md +1 -0
- package/prompts/choose-vpn-solution.md +3 -2
- package/prompts/diagnose-connectivity.md +1 -0
- package/prompts/harden-router.md +1 -0
- package/prompts/setup-guest-wifi.md +3 -2
- package/prompts/setup-ipsec-site-to-site.md +2 -1
- package/prompts/setup-l2tp-ipsec-roadwarrior.md +1 -0
- package/prompts/setup-tunnel-between-sites.md +1 -0
- package/prompts/setup-wireguard-vpn.md +1 -0
- package/schemas/README.md +5 -5
- package/schemas/config.schema.json +2 -2
- package/schemas/tool-catalog.json +1613 -1152
- package/schemas/tools/add_address_list_entry.json +1 -5
- package/schemas/tools/add_bfd_configuration.json +1 -4
- package/schemas/tools/add_bgp_connection.json +1 -5
- package/schemas/tools/add_bgp_template.json +1 -4
- package/schemas/tools/add_blackhole_route.json +1 -4
- package/schemas/tools/add_bridge_port.json +1 -4
- package/schemas/tools/add_bridge_vlan.json +1 -4
- package/schemas/tools/add_default_route.json +1 -5
- package/schemas/tools/add_dns_regexp.json +1 -6
- package/schemas/tools/add_dns_static.json +1 -4
- package/schemas/tools/add_dot1x_client.json +1 -5
- package/schemas/tools/add_dot1x_server.json +3 -13
- package/schemas/tools/add_graphing_interface.json +1 -3
- package/schemas/tools/add_graphing_queue.json +1 -3
- package/schemas/tools/add_igmp_proxy_interface.json +1 -5
- package/schemas/tools/add_ip_address.json +1 -5
- package/schemas/tools/add_ipv6_address.json +1 -5
- package/schemas/tools/add_ipv6_address_list_entry.json +1 -5
- package/schemas/tools/add_ipv6_default_route.json +1 -4
- package/schemas/tools/add_ipv6_dhcp_binding.json +1 -4
- package/schemas/tools/add_ipv6_dhcp_client.json +3 -15
- package/schemas/tools/add_ipv6_dhcp_option.json +1 -5
- package/schemas/tools/add_ipv6_dhcp_relay.json +1 -6
- package/schemas/tools/add_ipv6_nd.json +2 -9
- package/schemas/tools/add_ipv6_nd_prefix.json +1 -4
- package/schemas/tools/add_ipv6_route.json +2 -10
- package/schemas/tools/add_logging_action.json +2 -12
- package/schemas/tools/add_logging_rule.json +1 -4
- package/schemas/tools/add_netwatch.json +1 -4
- package/schemas/tools/add_ospf_area.json +2 -11
- package/schemas/tools/add_ospf_area_range.json +1 -5
- package/schemas/tools/add_ospf_instance.json +1 -5
- package/schemas/tools/add_ospf_interface_template.json +3 -19
- package/schemas/tools/add_pimsm_instance.json +2 -9
- package/schemas/tools/add_pimsm_interface_template.json +1 -5
- package/schemas/tools/add_pimsm_rp.json +1 -5
- package/schemas/tools/add_rip_instance.json +1 -4
- package/schemas/tools/add_rip_interface_template.json +1 -5
- package/schemas/tools/add_rip_static_neighbor.json +1 -4
- package/schemas/tools/add_romon_port.json +1 -4
- package/schemas/tools/add_route.json +1 -5
- package/schemas/tools/add_routing_filter_num_list.json +1 -4
- package/schemas/tools/add_routing_filter_rule.json +1 -5
- package/schemas/tools/add_routing_id.json +1 -4
- package/schemas/tools/add_routing_rule.json +2 -10
- package/schemas/tools/add_routing_table.json +1 -5
- package/schemas/tools/add_rpki_session.json +1 -6
- package/schemas/tools/add_script.json +1 -5
- package/schemas/tools/add_switch_port_isolation.json +1 -4
- package/schemas/tools/add_switch_rule.json +1 -5
- package/schemas/tools/add_traffic_generator_port.json +1 -5
- package/schemas/tools/add_traffic_generator_stream.json +1 -5
- package/schemas/tools/add_traffic_monitor.json +3 -17
- package/schemas/tools/add_user.json +1 -6
- package/schemas/tools/add_user_group.json +1 -4
- package/schemas/tools/add_user_manager_limitation.json +1 -3
- package/schemas/tools/add_user_manager_profile.json +2 -7
- package/schemas/tools/add_user_manager_router.json +1 -6
- package/schemas/tools/add_user_manager_user.json +1 -5
- package/schemas/tools/add_wireguard_peer.json +1 -6
- package/schemas/tools/apply_plan.json +23 -0
- package/schemas/tools/assign_user_manager_profile.json +1 -4
- package/schemas/tools/backup_info.json +1 -3
- package/schemas/tools/bandwidth_test.json +3 -15
- package/schemas/tools/capture_config_snapshot.json +30 -0
- package/schemas/tools/change_password.json +1 -4
- package/schemas/tools/check_route_path.json +1 -3
- package/schemas/tools/create_backup.json +1 -4
- package/schemas/tools/create_bridge.json +2 -11
- package/schemas/tools/create_certificate.json +1 -6
- package/schemas/tools/create_dhcp_network.json +1 -4
- package/schemas/tools/create_dhcp_pool.json +1 -4
- package/schemas/tools/create_dhcp_server.json +2 -12
- package/schemas/tools/create_eoip_tunnel.json +1 -6
- package/schemas/tools/create_export.json +3 -17
- package/schemas/tools/create_filter_rule.json +2 -11
- package/schemas/tools/create_gre_tunnel.json +2 -9
- package/schemas/tools/create_ip_pool.json +1 -4
- package/schemas/tools/create_ipip_tunnel.json +1 -5
- package/schemas/tools/create_ipsec_identity.json +3 -16
- package/schemas/tools/create_ipsec_peer.json +2 -10
- package/schemas/tools/create_ipsec_policy.json +3 -14
- package/schemas/tools/create_ipsec_profile.json +1 -5
- package/schemas/tools/create_ipsec_proposal.json +1 -6
- package/schemas/tools/create_ipv6_dhcp_server.json +1 -7
- package/schemas/tools/create_ipv6_filter_rule.json +2 -11
- package/schemas/tools/create_ipv6_mangle_rule.json +2 -13
- package/schemas/tools/create_ipv6_nat_rule.json +2 -10
- package/schemas/tools/create_ipv6_pool.json +1 -5
- package/schemas/tools/create_ipv6_raw_rule.json +3 -19
- package/schemas/tools/create_l2tp_client.json +2 -12
- package/schemas/tools/create_nat_rule.json +2 -10
- package/schemas/tools/create_ovpn_client.json +3 -14
- package/schemas/tools/create_ppp_profile.json +4 -19
- package/schemas/tools/create_ppp_secret.json +2 -14
- package/schemas/tools/create_pptp_client.json +1 -7
- package/schemas/tools/create_queue_tree.json +1 -5
- package/schemas/tools/create_queue_type.json +4 -23
- package/schemas/tools/create_scheduler.json +1 -5
- package/schemas/tools/create_simple_queue.json +1 -5
- package/schemas/tools/create_sstp_client.json +1 -7
- package/schemas/tools/create_vlan_interface.json +2 -14
- package/schemas/tools/create_vxlan_tunnel.json +1 -6
- package/schemas/tools/create_wireguard_interface.json +1 -4
- package/schemas/tools/create_wireless_interface.json +2 -12
- package/schemas/tools/create_wireless_security_profile.json +1 -3
- package/schemas/tools/delete_s3_backup.json +1 -3
- package/schemas/tools/diff_config_snapshots.json +31 -0
- package/schemas/tools/disable_address_list_entry.json +1 -3
- package/schemas/tools/disable_dns_static.json +1 -3
- package/schemas/tools/disable_filter_rule.json +1 -3
- package/schemas/tools/disable_interface.json +1 -3
- package/schemas/tools/disable_ip_service.json +1 -3
- package/schemas/tools/disable_ipv6_address_list_entry.json +1 -3
- package/schemas/tools/disable_ipv6_dhcp_relay.json +1 -3
- package/schemas/tools/disable_ipv6_filter_rule.json +1 -3
- package/schemas/tools/disable_ipv6_mangle_rule.json +1 -3
- package/schemas/tools/disable_ipv6_nat_rule.json +1 -3
- package/schemas/tools/disable_ipv6_raw_rule.json +1 -3
- package/schemas/tools/disable_ipv6_route.json +1 -3
- package/schemas/tools/disable_l2tp_client.json +1 -3
- package/schemas/tools/disable_nat_rule.json +1 -3
- package/schemas/tools/disable_ovpn_client.json +1 -3
- package/schemas/tools/disable_queue_tree.json +1 -3
- package/schemas/tools/disable_radius_server.json +1 -3
- package/schemas/tools/disable_route.json +1 -3
- package/schemas/tools/disable_scheduler.json +1 -3
- package/schemas/tools/disable_simple_queue.json +1 -3
- package/schemas/tools/disable_switch_rule.json +1 -3
- package/schemas/tools/disable_traffic_monitor.json +1 -3
- package/schemas/tools/disable_user.json +1 -3
- package/schemas/tools/disable_wireguard_interface.json +1 -3
- package/schemas/tools/disable_wireguard_peer.json +1 -3
- package/schemas/tools/disable_wireless_interface.json +1 -3
- package/schemas/tools/disconnect_ppp_active.json +1 -3
- package/schemas/tools/disconnect_user.json +1 -3
- package/schemas/tools/download_backup_from_s3.json +1 -3
- package/schemas/tools/download_file.json +2 -8
- package/schemas/tools/enable_address_list_entry.json +1 -3
- package/schemas/tools/enable_dns_static.json +1 -3
- package/schemas/tools/enable_filter_rule.json +1 -3
- package/schemas/tools/enable_interface.json +1 -3
- package/schemas/tools/enable_ip_service.json +1 -3
- package/schemas/tools/enable_ipv6_address_list_entry.json +1 -3
- package/schemas/tools/enable_ipv6_dhcp_relay.json +1 -3
- package/schemas/tools/enable_ipv6_filter_rule.json +1 -3
- package/schemas/tools/enable_ipv6_mangle_rule.json +1 -3
- package/schemas/tools/enable_ipv6_nat_rule.json +1 -3
- package/schemas/tools/enable_ipv6_raw_rule.json +1 -3
- package/schemas/tools/enable_ipv6_route.json +1 -3
- package/schemas/tools/enable_l2tp_client.json +1 -3
- package/schemas/tools/enable_nat_rule.json +1 -3
- package/schemas/tools/enable_ovpn_client.json +1 -3
- package/schemas/tools/enable_queue_tree.json +1 -3
- package/schemas/tools/enable_radius_server.json +1 -3
- package/schemas/tools/enable_route.json +1 -3
- package/schemas/tools/enable_scheduler.json +1 -3
- package/schemas/tools/enable_simple_queue.json +1 -3
- package/schemas/tools/enable_switch_rule.json +1 -3
- package/schemas/tools/enable_traffic_monitor.json +1 -3
- package/schemas/tools/enable_user.json +1 -3
- package/schemas/tools/enable_wireguard_interface.json +1 -3
- package/schemas/tools/enable_wireguard_peer.json +1 -3
- package/schemas/tools/enable_wireless_interface.json +1 -3
- package/schemas/tools/expand_ip_pool.json +1 -4
- package/schemas/tools/export_logs.json +2 -7
- package/schemas/tools/export_section.json +1 -5
- package/schemas/tools/firewall_audit.json +19 -0
- package/schemas/tools/flood_ping.json +1 -4
- package/schemas/tools/format_disk.json +2 -10
- package/schemas/tools/get_address_list_entry.json +1 -3
- package/schemas/tools/get_bgp_connection.json +1 -3
- package/schemas/tools/get_bridge.json +1 -3
- package/schemas/tools/get_certificate.json +1 -3
- package/schemas/tools/get_config_snapshot.json +16 -0
- package/schemas/tools/get_dhcp_server.json +1 -3
- package/schemas/tools/get_disk.json +1 -3
- package/schemas/tools/get_dns_static.json +1 -3
- package/schemas/tools/get_dot1x_client.json +1 -3
- package/schemas/tools/get_dot1x_server.json +1 -3
- package/schemas/tools/get_eoip_tunnel.json +1 -3
- package/schemas/tools/get_filter_rule.json +1 -3
- package/schemas/tools/get_gre_tunnel.json +1 -3
- package/schemas/tools/get_interface.json +1 -3
- package/schemas/tools/get_ip_address.json +1 -3
- package/schemas/tools/get_ip_pool.json +1 -3
- package/schemas/tools/get_ip_service.json +1 -3
- package/schemas/tools/get_ipip_tunnel.json +1 -3
- package/schemas/tools/get_ipsec_peer.json +1 -3
- package/schemas/tools/get_ipsec_profile.json +1 -3
- package/schemas/tools/get_ipsec_proposal.json +1 -3
- package/schemas/tools/get_ipv6_address.json +1 -3
- package/schemas/tools/get_ipv6_address_list_entry.json +1 -3
- package/schemas/tools/get_ipv6_dhcp_client.json +1 -3
- package/schemas/tools/get_ipv6_dhcp_relay.json +1 -3
- package/schemas/tools/get_ipv6_dhcp_server.json +1 -3
- package/schemas/tools/get_ipv6_filter_rule.json +1 -3
- package/schemas/tools/get_ipv6_mangle_rule.json +1 -3
- package/schemas/tools/get_ipv6_nat_rule.json +1 -3
- package/schemas/tools/get_ipv6_nd.json +1 -3
- package/schemas/tools/get_ipv6_neighbor.json +1 -3
- package/schemas/tools/get_ipv6_pool.json +1 -3
- package/schemas/tools/get_ipv6_raw_rule.json +1 -3
- package/schemas/tools/get_ipv6_route.json +1 -3
- package/schemas/tools/get_l2tp_client.json +1 -3
- package/schemas/tools/get_logs.json +2 -9
- package/schemas/tools/get_logs_by_severity.json +2 -10
- package/schemas/tools/get_logs_by_topic.json +1 -3
- package/schemas/tools/get_nat_rule.json +1 -3
- package/schemas/tools/get_neighbor_discovery_settings.json +7 -0
- package/schemas/tools/get_netwatch.json +1 -3
- package/schemas/tools/get_ovpn_client.json +1 -3
- package/schemas/tools/get_poe_monitor.json +1 -3
- package/schemas/tools/get_poe_settings.json +1 -3
- package/schemas/tools/get_port.json +1 -3
- package/schemas/tools/get_ppp_profile.json +1 -3
- package/schemas/tools/get_ppp_secret.json +1 -3
- package/schemas/tools/get_pptp_client.json +1 -3
- package/schemas/tools/get_queue_interface.json +1 -3
- package/schemas/tools/get_queue_tree.json +1 -3
- package/schemas/tools/get_queue_type.json +1 -3
- package/schemas/tools/get_radius_server.json +1 -3
- package/schemas/tools/get_route.json +1 -3
- package/schemas/tools/get_routing_id.json +1 -3
- package/schemas/tools/get_routing_rule.json +1 -3
- package/schemas/tools/get_routing_table.json +1 -4
- package/schemas/tools/get_routing_table_def.json +1 -3
- package/schemas/tools/get_scheduler.json +1 -3
- package/schemas/tools/get_simple_queue.json +1 -3
- package/schemas/tools/get_sstp_client.json +1 -3
- package/schemas/tools/get_switch.json +1 -3
- package/schemas/tools/get_switch_port.json +1 -3
- package/schemas/tools/get_switch_port_isolation.json +1 -3
- package/schemas/tools/get_switch_rule.json +1 -3
- package/schemas/tools/get_traffic_monitor.json +1 -3
- package/schemas/tools/get_user.json +1 -3
- package/schemas/tools/get_user_group.json +1 -3
- package/schemas/tools/get_user_manager_user.json +1 -3
- package/schemas/tools/get_vlan_interface.json +1 -3
- package/schemas/tools/get_vxlan_tunnel.json +1 -3
- package/schemas/tools/get_wireguard_interface.json +1 -3
- package/schemas/tools/get_wireguard_peer.json +1 -3
- package/schemas/tools/get_wireless_interface.json +1 -3
- package/schemas/tools/get_wireless_security_profile.json +1 -3
- package/schemas/tools/import_certificate.json +1 -3
- package/schemas/tools/import_configuration.json +1 -5
- package/schemas/tools/ip_scan.json +1 -3
- package/schemas/tools/list_address_lists.json +1 -3
- package/schemas/tools/list_backups.json +1 -3
- package/schemas/tools/list_bfd_sessions.json +1 -3
- package/schemas/tools/list_bgp_sessions.json +1 -3
- package/schemas/tools/list_config_snapshots.json +15 -0
- package/schemas/tools/list_dhcp_servers.json +1 -4
- package/schemas/tools/list_dns_static.json +1 -4
- package/schemas/tools/list_dot1x_clients.json +1 -3
- package/schemas/tools/list_dot1x_servers.json +1 -3
- package/schemas/tools/list_filter_rules.json +1 -5
- package/schemas/tools/list_gmp_group_memberships.json +1 -1
- package/schemas/tools/list_graphing.json +2 -8
- package/schemas/tools/list_interfaces.json +1 -4
- package/schemas/tools/list_ip_addresses.json +1 -4
- package/schemas/tools/list_ip_pools.json +1 -3
- package/schemas/tools/list_ipv6_address_lists.json +1 -3
- package/schemas/tools/list_ipv6_addresses.json +1 -5
- package/schemas/tools/list_ipv6_dhcp_bindings.json +1 -3
- package/schemas/tools/list_ipv6_dhcp_clients.json +1 -4
- package/schemas/tools/list_ipv6_dhcp_relays.json +1 -3
- package/schemas/tools/list_ipv6_dhcp_servers.json +1 -4
- package/schemas/tools/list_ipv6_filter_rules.json +1 -5
- package/schemas/tools/list_ipv6_mangle_rules.json +1 -5
- package/schemas/tools/list_ipv6_nat_rules.json +1 -5
- package/schemas/tools/list_ipv6_nd.json +1 -3
- package/schemas/tools/list_ipv6_nd_prefixes.json +1 -3
- package/schemas/tools/list_ipv6_neighbors.json +1 -3
- package/schemas/tools/list_ipv6_raw_rules.json +1 -5
- package/schemas/tools/list_ipv6_routes.json +1 -5
- package/schemas/tools/list_nat_rules.json +1 -4
- package/schemas/tools/list_neighbors.json +24 -0
- package/schemas/tools/list_ppp_secrets.json +1 -8
- package/schemas/tools/list_queue_trees.json +1 -4
- package/schemas/tools/list_routes.json +1 -6
- package/schemas/tools/list_routing_nexthops.json +1 -3
- package/schemas/tools/list_routing_rules.json +1 -3
- package/schemas/tools/list_s3_backups.json +1 -3
- package/schemas/tools/list_simple_queues.json +1 -4
- package/schemas/tools/list_switch_rules.json +1 -3
- package/schemas/tools/list_traffic_monitors.json +1 -3
- package/schemas/tools/list_user_manager_sessions.json +1 -3
- package/schemas/tools/list_user_ssh_keys.json +1 -3
- package/schemas/tools/list_users.json +1 -4
- package/schemas/tools/list_vlan_interfaces.json +1 -3
- package/schemas/tools/list_wireguard_interfaces.json +1 -4
- package/schemas/tools/list_wireguard_peers.json +1 -3
- package/schemas/tools/list_wireless_interfaces.json +1 -4
- package/schemas/tools/mirror_traffic_to_capture.json +36 -0
- package/schemas/tools/monitor_logs.json +1 -3
- package/schemas/tools/move_filter_rule.json +1 -4
- package/schemas/tools/move_ipv6_filter_rule.json +1 -4
- package/schemas/tools/move_ipv6_mangle_rule.json +1 -4
- package/schemas/tools/move_ipv6_nat_rule.json +1 -4
- package/schemas/tools/move_ipv6_raw_rule.json +1 -4
- package/schemas/tools/move_nat_rule.json +1 -4
- package/schemas/tools/packet_capture_status.json +16 -0
- package/schemas/tools/ping.json +1 -4
- package/schemas/tools/plan_changes.json +19 -0
- package/schemas/tools/profile_cpu.json +1 -3
- package/schemas/tools/reboot_system.json +1 -3
- package/schemas/tools/release_ipv6_dhcp_client.json +1 -3
- package/schemas/tools/remove_address_list_entry.json +1 -3
- package/schemas/tools/remove_bfd_configuration.json +1 -3
- package/schemas/tools/remove_bgp_connection.json +1 -3
- package/schemas/tools/remove_bgp_template.json +1 -3
- package/schemas/tools/remove_bridge.json +1 -3
- package/schemas/tools/remove_bridge_port.json +1 -3
- package/schemas/tools/remove_certificate.json +1 -3
- package/schemas/tools/remove_config_snapshot.json +16 -0
- package/schemas/tools/remove_dhcp_server.json +1 -3
- package/schemas/tools/remove_dns_static.json +1 -3
- package/schemas/tools/remove_dot1x_client.json +1 -3
- package/schemas/tools/remove_dot1x_server.json +1 -3
- package/schemas/tools/remove_eoip_tunnel.json +1 -3
- package/schemas/tools/remove_file.json +1 -3
- package/schemas/tools/remove_filter_rule.json +1 -3
- package/schemas/tools/remove_graphing.json +2 -9
- package/schemas/tools/remove_gre_tunnel.json +1 -3
- package/schemas/tools/remove_igmp_proxy_interface.json +1 -3
- package/schemas/tools/remove_ip_address.json +1 -3
- package/schemas/tools/remove_ip_pool.json +1 -3
- package/schemas/tools/remove_ipip_tunnel.json +1 -3
- package/schemas/tools/remove_ipsec_identity.json +1 -3
- package/schemas/tools/remove_ipsec_peer.json +1 -3
- package/schemas/tools/remove_ipsec_policy.json +1 -3
- package/schemas/tools/remove_ipsec_profile.json +1 -3
- package/schemas/tools/remove_ipsec_proposal.json +1 -3
- package/schemas/tools/remove_ipv6_address.json +1 -3
- package/schemas/tools/remove_ipv6_address_list_entry.json +1 -3
- package/schemas/tools/remove_ipv6_dhcp_binding.json +1 -3
- package/schemas/tools/remove_ipv6_dhcp_client.json +1 -3
- package/schemas/tools/remove_ipv6_dhcp_option.json +1 -3
- package/schemas/tools/remove_ipv6_dhcp_relay.json +1 -3
- package/schemas/tools/remove_ipv6_dhcp_server.json +1 -3
- package/schemas/tools/remove_ipv6_filter_rule.json +1 -3
- package/schemas/tools/remove_ipv6_mangle_rule.json +1 -3
- package/schemas/tools/remove_ipv6_nat_rule.json +1 -3
- package/schemas/tools/remove_ipv6_nd.json +1 -3
- package/schemas/tools/remove_ipv6_nd_prefix.json +1 -3
- package/schemas/tools/remove_ipv6_neighbor.json +1 -3
- package/schemas/tools/remove_ipv6_pool.json +1 -3
- package/schemas/tools/remove_ipv6_raw_rule.json +1 -3
- package/schemas/tools/remove_ipv6_route.json +1 -3
- package/schemas/tools/remove_l2tp_client.json +1 -3
- package/schemas/tools/remove_logging_action.json +1 -3
- package/schemas/tools/remove_logging_rule.json +1 -3
- package/schemas/tools/remove_nat_rule.json +1 -3
- package/schemas/tools/remove_netwatch.json +1 -3
- package/schemas/tools/remove_ospf_area.json +1 -3
- package/schemas/tools/remove_ospf_area_range.json +1 -3
- package/schemas/tools/remove_ospf_instance.json +1 -3
- package/schemas/tools/remove_ospf_interface_template.json +1 -3
- package/schemas/tools/remove_ovpn_client.json +1 -3
- package/schemas/tools/remove_pimsm_instance.json +1 -3
- package/schemas/tools/remove_pimsm_interface_template.json +1 -3
- package/schemas/tools/remove_pimsm_rp.json +1 -3
- package/schemas/tools/remove_ppp_profile.json +1 -3
- package/schemas/tools/remove_ppp_secret.json +1 -3
- package/schemas/tools/remove_pptp_client.json +1 -3
- package/schemas/tools/remove_queue_tree.json +1 -3
- package/schemas/tools/remove_queue_type.json +1 -3
- package/schemas/tools/remove_radius_server.json +1 -3
- package/schemas/tools/remove_rip_instance.json +1 -3
- package/schemas/tools/remove_rip_interface_template.json +1 -3
- package/schemas/tools/remove_rip_static_neighbor.json +1 -3
- package/schemas/tools/remove_romon_port.json +1 -3
- package/schemas/tools/remove_route.json +1 -3
- package/schemas/tools/remove_routing_filter_num_list.json +1 -3
- package/schemas/tools/remove_routing_filter_rule.json +1 -3
- package/schemas/tools/remove_routing_id.json +1 -3
- package/schemas/tools/remove_routing_rule.json +1 -3
- package/schemas/tools/remove_routing_table.json +1 -3
- package/schemas/tools/remove_rpki_session.json +1 -3
- package/schemas/tools/remove_scheduler.json +1 -3
- package/schemas/tools/remove_script.json +1 -3
- package/schemas/tools/remove_simple_queue.json +1 -3
- package/schemas/tools/remove_sstp_client.json +1 -3
- package/schemas/tools/remove_switch_port_isolation.json +1 -3
- package/schemas/tools/remove_switch_rule.json +1 -3
- package/schemas/tools/remove_traffic_generator_port.json +1 -3
- package/schemas/tools/remove_traffic_generator_stream.json +1 -3
- package/schemas/tools/remove_traffic_monitor.json +1 -3
- package/schemas/tools/remove_user.json +1 -3
- package/schemas/tools/remove_user_group.json +1 -3
- package/schemas/tools/remove_user_manager_limitation.json +1 -3
- package/schemas/tools/remove_user_manager_profile.json +1 -3
- package/schemas/tools/remove_user_manager_router.json +1 -3
- package/schemas/tools/remove_user_manager_user.json +1 -3
- package/schemas/tools/remove_user_ssh_key.json +1 -3
- package/schemas/tools/remove_vlan_interface.json +1 -3
- package/schemas/tools/remove_vxlan_tunnel.json +1 -3
- package/schemas/tools/remove_wireguard_interface.json +1 -3
- package/schemas/tools/remove_wireguard_peer.json +1 -3
- package/schemas/tools/remove_wireless_access_list_entry.json +1 -3
- package/schemas/tools/remove_wireless_interface.json +1 -3
- package/schemas/tools/remove_wireless_security_profile.json +1 -3
- package/schemas/tools/renew_ipv6_dhcp_client.json +1 -3
- package/schemas/tools/reset_configuration.json +1 -3
- package/schemas/tools/resolve_dns.json +1 -3
- package/schemas/tools/restore_backup.json +1 -3
- package/schemas/tools/run_script.json +1 -3
- package/schemas/tools/s3_backup_info.json +1 -3
- package/schemas/tools/save_sniffer.json +1 -3
- package/schemas/tools/scan_wireless_networks.json +1 -4
- package/schemas/tools/search_logs.json +1 -4
- package/schemas/tools/send_sms.json +1 -5
- package/schemas/tools/set_bfd_configuration_enabled.json +1 -4
- package/schemas/tools/set_bgp_connection_enabled.json +1 -4
- package/schemas/tools/set_dns_servers.json +1 -6
- package/schemas/tools/set_igmp_proxy_interface_enabled.json +1 -4
- package/schemas/tools/set_ip_service.json +1 -3
- package/schemas/tools/set_l2tp_server.json +1 -5
- package/schemas/tools/set_leds_settings.json +1 -6
- package/schemas/tools/set_neighbor_discovery_settings.json +25 -0
- package/schemas/tools/set_ovpn_server.json +2 -8
- package/schemas/tools/set_port.json +3 -13
- package/schemas/tools/set_routing_filter_rule_enabled.json +1 -4
- package/schemas/tools/set_routing_id_enabled.json +1 -4
- package/schemas/tools/set_routing_rule_enabled.json +1 -4
- package/schemas/tools/set_routing_table_enabled.json +1 -4
- package/schemas/tools/set_rpki_session_enabled.json +1 -4
- package/schemas/tools/set_sstp_server.json +1 -4
- package/schemas/tools/set_system_identity.json +1 -3
- package/schemas/tools/set_user_ssh_keys.json +1 -4
- package/schemas/tools/set_wireless_security_profile.json +1 -4
- package/schemas/tools/shutdown_system.json +1 -3
- package/schemas/tools/sign_certificate.json +1 -3
- package/schemas/tools/speed_test.json +2 -10
- package/schemas/tools/start_packet_capture.json +31 -0
- package/schemas/tools/stop_packet_capture.json +7 -0
- package/schemas/tools/test_dns_query.json +1 -4
- package/schemas/tools/traceroute.json +1 -4
- package/schemas/tools/update_bfd_configuration.json +1 -3
- package/schemas/tools/update_bgp_connection.json +1 -3
- package/schemas/tools/update_bridge.json +2 -9
- package/schemas/tools/update_dns_static.json +1 -3
- package/schemas/tools/update_dot1x_client.json +1 -3
- package/schemas/tools/update_dot1x_server.json +3 -12
- package/schemas/tools/update_filter_rule.json +1 -3
- package/schemas/tools/update_igmp_proxy_interface.json +1 -3
- package/schemas/tools/update_ip_pool.json +1 -3
- package/schemas/tools/update_ipsec_peer.json +2 -8
- package/schemas/tools/update_ipsec_profile.json +1 -3
- package/schemas/tools/update_ipsec_proposal.json +1 -3
- package/schemas/tools/update_ipv6_filter_rule.json +1 -3
- package/schemas/tools/update_ipv6_mangle_rule.json +1 -3
- package/schemas/tools/update_ipv6_nat_rule.json +1 -3
- package/schemas/tools/update_ipv6_nd.json +2 -8
- package/schemas/tools/update_ipv6_pool.json +1 -3
- package/schemas/tools/update_ipv6_raw_rule.json +1 -3
- package/schemas/tools/update_ipv6_settings.json +2 -10
- package/schemas/tools/update_mac_ping.json +1 -3
- package/schemas/tools/update_mac_server.json +1 -3
- package/schemas/tools/update_mac_winbox.json +1 -3
- package/schemas/tools/update_nat_rule.json +1 -3
- package/schemas/tools/update_ospf_instance.json +1 -3
- package/schemas/tools/update_ppp_profile.json +4 -19
- package/schemas/tools/update_ppp_secret.json +2 -11
- package/schemas/tools/update_queue_interface.json +1 -4
- package/schemas/tools/update_queue_tree.json +1 -3
- package/schemas/tools/update_queue_type.json +1 -3
- package/schemas/tools/update_radius_server.json +1 -3
- package/schemas/tools/update_rip_instance.json +1 -3
- package/schemas/tools/update_route.json +1 -3
- package/schemas/tools/update_routing_filter_rule.json +1 -3
- package/schemas/tools/update_routing_id.json +1 -3
- package/schemas/tools/update_routing_rule.json +2 -9
- package/schemas/tools/update_routing_settings.json +2 -10
- package/schemas/tools/update_routing_table.json +1 -3
- package/schemas/tools/update_rpki_session.json +1 -3
- package/schemas/tools/update_simple_queue.json +1 -3
- package/schemas/tools/update_switch.json +1 -3
- package/schemas/tools/update_switch_port.json +3 -14
- package/schemas/tools/update_switch_port_isolation.json +1 -3
- package/schemas/tools/update_switch_rule.json +1 -3
- package/schemas/tools/update_traffic_monitor.json +3 -12
- package/schemas/tools/update_user.json +1 -3
- package/schemas/tools/update_user_group.json +1 -3
- package/schemas/tools/update_user_manager_user.json +1 -3
- package/schemas/tools/update_vlan_interface.json +2 -9
- package/schemas/tools/update_wireguard_interface.json +1 -3
- package/schemas/tools/update_wireguard_peer.json +1 -3
- package/schemas/tools/update_wireless_interface.json +1 -3
- package/schemas/tools/upload_backup_to_s3.json +2 -4
- package/schemas/tools/upload_file.json +1 -4
- package/schemas/tools/wake_on_lan.json +1 -3
package/dist/ui/records.html
CHANGED
|
@@ -10,7 +10,7 @@ import{i as e}from"./app-DU6NBjf_.js";import{a as t,i as n,n as r,o as i,r as a,
|
|
|
10
10
|
<link rel="modulepreload" crossorigin href="../assets/app-DU6NBjf_.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="../assets/kit-DAVkZl3Q.js">
|
|
12
12
|
<style>
|
|
13
|
-
@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}.card__value small{color:var(--mt-text-dim);font-size:12px;font-weight:400}.gauge{align-items:center;gap:14px;display:flex}.gauge svg{flex:none}.gauge__track{stroke:var(--mt-surface-2)}.gauge__bar{stroke:var(--mt-accent);stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset .6s cubic-bezier(.2,.8,.2,1);transform:rotate(-90deg)}.gauge__pct{font-family:var(--mt-mono);fill:var(--mt-text);font-size:16px;font-weight:650}.gauge__meta{min-width:0}.gauge__meta .card__label{margin-bottom:4px}.gauge__meta small{color:var(--mt-text-faint);font-family:var(--mt-mono);font-size:11px}.is-good{stroke:var(--mt-good)}.is-warn{stroke:var(--mt-warn)}.is-bad{stroke:var(--mt-bad)}details.kv{background:var(--mt-surface);border:1px solid var(--mt-border);border-radius:var(--mt-radius);overflow:hidden}details.kv>summary{cursor:pointer;color:var(--mt-text-dim);-webkit-user-select:none;user-select:none;padding:12px 14px;font-weight:600;list-style:none}details.kv>summary::-webkit-details-marker{display:none}details.kv>summary:after{content:"▸";float:right;color:var(--mt-text-faint);transition:transform .2s}details.kv[open]>summary:after{transform:rotate(90deg)}.kv__body{border-top:1px solid var(--mt-border);grid-template-columns:minmax(120px,.4fr) 1fr;display:grid}.kv__body>div{border-bottom:1px solid color-mix(in srgb, var(--mt-border) 55%, transparent);overflow-wrap:anywhere;min-width:0;padding:7px 14px;font-size:12px}.kv__k{color:var(--mt-text-dim);font-family:var(--mt-mono)}.kv__v{font-family:var(--mt-mono);color:var(--mt-text)}.foot{color:var(--mt-text-faint);font-size:11px;font-family:var(--mt-mono);align-items:center;gap:10px;display:flex}.btn{appearance:none;border:1px solid var(--mt-border);background:var(--mt-surface);color:var(--mt-text);font:inherit;border-radius:var(--mt-radius-sm);cursor:pointer;padding:5px 11px;font-size:12px;transition:border-color .15s,background .15s}.skeleton{color:var(--mt-text-faint);text-align:center;padding:40px 0}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}table.tbl tbody tr.is-disabled td,table.tbl td.col-num{color:var(--mt-text-faint)}.act{font-family:var(--mt-mono);border:1px solid var(--mt-border);color:var(--mt-text-dim);border-radius:999px;padding:1px 8px;font-size:11px;display:inline-block}.act.is-accept{color:var(--mt-good);border-color:color-mix(in srgb, var(--mt-good) 45%, var(--mt-border))}.act.is-drop{color:var(--mt-bad);border-color:color-mix(in srgb, var(--mt-bad) 45%, var(--mt-border))}.act.is-jump{color:var(--mt-accent);border-color:color-mix(in srgb, var(--mt-accent) 45%, var(--mt-border))}.matchers{color:var(--mt-text-dim);max-width:340px;white-space:normal!important}.matchers b{color:var(--mt-text);font-weight:500}td.num{text-align:right;color:var(--mt-text-dim)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}table.tbl tbody tr.is-disabled td,table.tbl td.col-num{color:var(--mt-text-faint)}.if-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.if-card{gap:8px;display:grid}.if-card__top{align-items:center;gap:8px;display:flex}.if-card__name{font-family:var(--mt-mono);overflow-wrap:anywhere;font-size:14px;font-weight:650}.if-card.is-disabled{opacity:.6}.dot{background:var(--mt-text-faint);border-radius:50%;flex:none;width:9px;height:9px}.dot.is-up{background:var(--mt-good);box-shadow:0 0 0 4px color-mix(in srgb, var(--mt-good) 22%, transparent)}.dot.is-down{background:var(--mt-bad);box-shadow:0 0 0 4px color-mix(in srgb, var(--mt-bad) 18%, transparent)}.if-card__meta{font-family:var(--mt-mono);color:var(--mt-text-dim);grid-template-columns:auto 1fr;gap:2px 10px;font-size:11px;display:grid}.if-card__meta b{color:var(--mt-text);overflow-wrap:anywhere;font-weight:500}.if-card__meta .contents{display:contents}.badge{border:1px solid var(--mt-border);background:var(--mt-surface-2);color:var(--mt-text-dim);font-family:var(--mt-mono);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:10px}:root{--mt-bg:var(--color-background-primary,#0b0d10);--mt-surface:var(--color-background-secondary,#14171c);--mt-surface-2:var(--color-background-tertiary,#1b1f26);--mt-border:var(--color-border-primary,#262b33);--mt-text:var(--color-text-primary,#e8eaed);--mt-text-dim:var(--color-text-secondary,#9aa3af);--mt-text-faint:var(--color-text-tertiary,#6b7280);--mt-accent:var(--color-accent-primary,#6ea8fe);--mt-good:#34d399;--mt-warn:#fbbf24;--mt-bad:#f87171;--mt-radius:var(--border-radius-md,14px);--mt-radius-sm:var(--border-radius-sm,9px);--mt-mono:var(--font-mono,ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace);--mt-sans:var(--font-sans,system-ui, -apple-system, "Segoe UI", sans-serif);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{background:var(--mt-bg);color:var(--mt-text);font-family:var(--mt-sans);-webkit-font-smoothing:antialiased;margin:0;padding:16px;font-size:13px;line-height:1.5}.app{gap:14px;max-width:960px;margin:0 auto;display:grid}.hd{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hd__dot{background:var(--mt-good);width:9px;height:9px;box-shadow:0 0 0 4px color-mix(in srgb, var(--mt-good) 22%, transparent);border-radius:50%}.hd__title{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:650}.hd__sub{color:var(--mt-text-dim);font-family:var(--mt-mono);margin:0;font-size:12px}.hd__spacer{flex:1}.pill{border:1px solid var(--mt-border);background:var(--mt-surface);color:var(--mt-text-dim);font-family:var(--mt-mono);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:11px;display:inline-flex}.pill b{color:var(--mt-text);font-weight:600}.grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.card{background:linear-gradient(180deg, var(--mt-surface), var(--mt-surface-2));border:1px solid var(--mt-border);border-radius:var(--mt-radius);padding:14px}.card__label{color:var(--mt-text-dim);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;font-size:11px}.card__value{font-family:var(--mt-mono);letter-spacing:-.01em;font-size:20px;font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar .grow{flex:1;min-width:140px}.search{appearance:none;border:1px solid var(--mt-border);background:var(--mt-surface);width:100%;color:var(--mt-text);font:inherit;border-radius:var(--mt-radius-sm);padding:7px 11px;font-size:13px}.search:focus{border-color:var(--mt-accent);outline:none}.search::placeholder{color:var(--mt-text-faint)}.btn{appearance:none;border:1px solid var(--mt-border);background:var(--mt-surface);color:var(--mt-text);font:inherit;border-radius:var(--mt-radius-sm);cursor:pointer;white-space:nowrap;padding:6px 11px;font-size:12px;transition:border-color .15s,background .15s}.btn:hover{border-color:var(--mt-accent);background:var(--mt-surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn.is-active{border-color:var(--mt-accent);color:var(--mt-accent)}.chip{border:1px solid var(--mt-border);background:var(--mt-surface);color:var(--mt-text-dim);font-family:var(--mt-mono);border-radius:999px;align-items:center;gap:4px;padding:1px 7px;font-size:11px;display:inline-flex}.chip.is-good{color:var(--mt-good);border-color:color-mix(in srgb, var(--mt-good) 45%, var(--mt-border))}.chip.is-warn{color:var(--mt-warn);border-color:color-mix(in srgb, var(--mt-warn) 45%, var(--mt-border))}.chip.is-bad{color:var(--mt-bad);border-color:color-mix(in srgb, var(--mt-bad) 45%, var(--mt-border))}.tablewrap{border:1px solid var(--mt-border);border-radius:var(--mt-radius);max-height:70vh;overflow:auto}table.tbl{border-collapse:collapse;width:100%;font-size:12px}table.tbl th,table.tbl td{text-align:left;border-bottom:1px solid color-mix(in srgb, var(--mt-border) 55%, transparent);white-space:nowrap;font-family:var(--mt-mono);padding:7px 12px}table.tbl thead th{z-index:1;background:var(--mt-surface-2);color:var(--mt-text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;position:sticky;top:0}table.tbl thead th:hover{color:var(--mt-text)}table.tbl thead th .arrow{color:var(--mt-accent);margin-left:4px}table.tbl tbody tr{cursor:pointer}table.tbl tbody tr:hover{background:color-mix(in srgb, var(--mt-accent) 8%, transparent)}table.tbl tbody tr.is-disabled td,table.tbl td.col-num{color:var(--mt-text-faint)}.kv__body{border:1px solid var(--mt-border);border-radius:var(--mt-radius);grid-template-columns:minmax(120px,.4fr) 1fr;display:grid;overflow:hidden}.kv__body>div{border-bottom:1px solid color-mix(in srgb, var(--mt-border) 55%, transparent);overflow-wrap:anywhere;min-width:0;font-size:12px;font-family:var(--mt-mono);padding:7px 14px}.kv__k{color:var(--mt-text-dim);background:color-mix(in srgb, var(--mt-surface) 60%, transparent)}.kv__v{color:var(--mt-text)}.drawer{border:1px solid var(--mt-accent);border-radius:var(--mt-radius);background:var(--mt-surface);gap:10px;padding:12px;display:grid}.drawer__hd{align-items:center;gap:8px;display:flex}.drawer__hd b{font-family:var(--mt-mono)}pre.raw{border:1px solid var(--mt-border);border-radius:var(--mt-radius);background:var(--mt-surface);color:var(--mt-text);font-family:var(--mt-mono);white-space:pre;max-height:70vh;margin:0;padding:14px;font-size:12px;overflow:auto}.foot{color:var(--mt-text-faint);font-size:11px;font-family:var(--mt-mono);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.foot .grow{flex:1}.skeleton,.empty{color:var(--mt-text-faint);text-align:center;padding:40px 0}.count-pill b{color:var(--mt-accent)}table.tbl td.col-num,table.tbl th.col-num{width:1%}
|
|
13
|
+
@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}.card__value small{color:var(--mt-text-dim);font-size:12px;font-weight:400}.gauge{align-items:center;gap:14px;display:flex}.gauge svg{flex:none}.gauge__track{stroke:var(--mt-surface-2)}.gauge__bar{stroke:var(--mt-accent);stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset .6s cubic-bezier(.2,.8,.2,1);transform:rotate(-90deg)}.gauge__pct{font-family:var(--mt-mono);fill:var(--mt-text);font-size:16px;font-weight:650}.gauge__meta{min-width:0}.gauge__meta .card__label{margin-bottom:4px}.gauge__meta small{color:var(--mt-text-faint);font-family:var(--mt-mono);font-size:11px}.is-good{stroke:var(--mt-good)}.is-warn{stroke:var(--mt-warn)}.is-bad{stroke:var(--mt-bad)}details.kv{background:var(--mt-surface);border:1px solid var(--mt-border);border-radius:var(--mt-radius);overflow:hidden}details.kv>summary{cursor:pointer;color:var(--mt-text-dim);-webkit-user-select:none;user-select:none;padding:12px 14px;font-weight:600;list-style:none}details.kv>summary::-webkit-details-marker{display:none}details.kv>summary:after{content:"▸";float:right;color:var(--mt-text-faint);transition:transform .2s}details.kv[open]>summary:after{transform:rotate(90deg)}.kv__body{border-top:1px solid var(--mt-border);grid-template-columns:minmax(120px,.4fr) 1fr;display:grid}.kv__body>div{border-bottom:1px solid color-mix(in srgb, var(--mt-border) 55%, transparent);overflow-wrap:anywhere;min-width:0;padding:7px 14px;font-size:12px}.kv__k{color:var(--mt-text-dim);font-family:var(--mt-mono)}.kv__v{font-family:var(--mt-mono);color:var(--mt-text)}.foot{color:var(--mt-text-faint);font-size:11px;font-family:var(--mt-mono);align-items:center;gap:10px;display:flex}.btn{appearance:none;border:1px solid var(--mt-border);background:var(--mt-surface);color:var(--mt-text);font:inherit;border-radius:var(--mt-radius-sm);cursor:pointer;padding:5px 11px;font-size:12px;transition:border-color .15s,background .15s}.skeleton{color:var(--mt-text-faint);text-align:center;padding:40px 0}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}table.tbl tbody tr.is-disabled td,table.tbl td.col-num{color:var(--mt-text-faint)}.act{font-family:var(--mt-mono);border:1px solid var(--mt-border);color:var(--mt-text-dim);border-radius:999px;padding:1px 8px;font-size:11px;display:inline-block}.act.is-accept{color:var(--mt-good);border-color:color-mix(in srgb, var(--mt-good) 45%, var(--mt-border))}.act.is-drop{color:var(--mt-bad);border-color:color-mix(in srgb, var(--mt-bad) 45%, var(--mt-border))}.act.is-jump{color:var(--mt-accent);border-color:color-mix(in srgb, var(--mt-accent) 45%, var(--mt-border))}.matchers{color:var(--mt-text-dim);max-width:340px;white-space:normal!important}.matchers b{color:var(--mt-text);font-weight:500}td.num{text-align:right;color:var(--mt-text-dim)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}table.tbl tbody tr.is-disabled td,table.tbl td.col-num{color:var(--mt-text-faint)}.hd{align-items:center;gap:14px}.hd__meta{flex-direction:column;gap:6px;display:flex}.counts{flex-wrap:wrap;gap:6px;display:flex}.gauge{flex:none;width:64px;height:64px}.gauge__bg{fill:none;stroke:var(--mt-border);stroke-width:9px}.gauge__fg{fill:none;stroke-width:9px;stroke-linecap:round;stroke:var(--mt-good);transition:stroke-dasharray .4s}.gauge.is-warn .gauge__fg{stroke:var(--mt-warn)}.gauge.is-bad .gauge__fg{stroke:var(--mt-bad)}.gauge__num{fill:var(--mt-text);font:700 22px var(--mt-mono)}.is-good{color:var(--mt-good)}.is-warn{color:var(--mt-warn)}.is-bad{color:var(--mt-bad)}.chip.is-low{color:var(--mt-text-dim);border-color:var(--mt-border)}.f-list{flex-direction:column;gap:10px;margin-top:14px;display:flex}.f-card{border:1px solid var(--mt-border);border-radius:var(--mt-radius-sm);background:var(--mt-surface);border-left-width:3px;padding:11px 13px}.f-card.is-bad{border-left-color:var(--mt-bad)}.f-card.is-warn{border-left-color:var(--mt-warn)}.f-card.is-low{border-left-color:var(--mt-text-faint)}.f-head{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.f-title{font-size:13px;font-weight:600}.f-where{font-family:var(--mt-mono);color:var(--mt-text-faint);font-size:11px}.f-body{margin-top:6px}.f-detail{color:var(--mt-text);margin:0 0 5px;font-size:13px;line-height:1.45}.f-fix{color:var(--mt-text-dim);margin:0;font-size:12px;line-height:1.45}.f-actions{margin-top:9px}.btn-danger{color:var(--mt-bad);border-color:color-mix(in srgb, var(--mt-bad) 45%, var(--mt-border))}.btn-danger:hover{border-color:var(--mt-bad);background:color-mix(in srgb, var(--mt-bad) 12%, transparent)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}table.tbl tbody tr.is-disabled td,table.tbl td.col-num{color:var(--mt-text-faint)}.if-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.if-card{gap:8px;display:grid}.if-card__top{align-items:center;gap:8px;display:flex}.if-card__name{font-family:var(--mt-mono);overflow-wrap:anywhere;font-size:14px;font-weight:650}.if-card.is-disabled{opacity:.6}.dot{background:var(--mt-text-faint);border-radius:50%;flex:none;width:9px;height:9px}.dot.is-up{background:var(--mt-good);box-shadow:0 0 0 4px color-mix(in srgb, var(--mt-good) 22%, transparent)}.dot.is-down{background:var(--mt-bad);box-shadow:0 0 0 4px color-mix(in srgb, var(--mt-bad) 18%, transparent)}.if-card__meta{font-family:var(--mt-mono);color:var(--mt-text-dim);grid-template-columns:auto 1fr;gap:2px 10px;font-size:11px;display:grid}.if-card__meta b{color:var(--mt-text);overflow-wrap:anywhere;font-weight:500}.if-card__meta .contents{display:contents}.badge{border:1px solid var(--mt-border);background:var(--mt-surface-2);color:var(--mt-text-dim);font-family:var(--mt-mono);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:10px}:root{--mt-bg:var(--color-background-primary,#0b0d10);--mt-surface:var(--color-background-secondary,#14171c);--mt-surface-2:var(--color-background-tertiary,#1b1f26);--mt-border:var(--color-border-primary,#262b33);--mt-text:var(--color-text-primary,#e8eaed);--mt-text-dim:var(--color-text-secondary,#9aa3af);--mt-text-faint:var(--color-text-tertiary,#6b7280);--mt-accent:var(--color-accent-primary,#6ea8fe);--mt-good:#34d399;--mt-warn:#fbbf24;--mt-bad:#f87171;--mt-radius:var(--border-radius-md,14px);--mt-radius-sm:var(--border-radius-sm,9px);--mt-mono:var(--font-mono,ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace);--mt-sans:var(--font-sans,system-ui, -apple-system, "Segoe UI", sans-serif);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{background:var(--mt-bg);color:var(--mt-text);font-family:var(--mt-sans);-webkit-font-smoothing:antialiased;margin:0;padding:16px;font-size:13px;line-height:1.5}.app{gap:14px;max-width:960px;margin:0 auto;display:grid}.hd{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hd__dot{background:var(--mt-good);width:9px;height:9px;box-shadow:0 0 0 4px color-mix(in srgb, var(--mt-good) 22%, transparent);border-radius:50%}.hd__title{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:650}.hd__sub{color:var(--mt-text-dim);font-family:var(--mt-mono);margin:0;font-size:12px}.hd__spacer{flex:1}.pill{border:1px solid var(--mt-border);background:var(--mt-surface);color:var(--mt-text-dim);font-family:var(--mt-mono);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:11px;display:inline-flex}.pill b{color:var(--mt-text);font-weight:600}.grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.card{background:linear-gradient(180deg, var(--mt-surface), var(--mt-surface-2));border:1px solid var(--mt-border);border-radius:var(--mt-radius);padding:14px}.card__label{color:var(--mt-text-dim);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;font-size:11px}.card__value{font-family:var(--mt-mono);letter-spacing:-.01em;font-size:20px;font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar .grow{flex:1;min-width:140px}.search{appearance:none;border:1px solid var(--mt-border);background:var(--mt-surface);width:100%;color:var(--mt-text);font:inherit;border-radius:var(--mt-radius-sm);padding:7px 11px;font-size:13px}.search:focus{border-color:var(--mt-accent);outline:none}.search::placeholder{color:var(--mt-text-faint)}.btn{appearance:none;border:1px solid var(--mt-border);background:var(--mt-surface);color:var(--mt-text);font:inherit;border-radius:var(--mt-radius-sm);cursor:pointer;white-space:nowrap;padding:6px 11px;font-size:12px;transition:border-color .15s,background .15s}.btn:hover{border-color:var(--mt-accent);background:var(--mt-surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn.is-active{border-color:var(--mt-accent);color:var(--mt-accent)}.chip{border:1px solid var(--mt-border);background:var(--mt-surface);color:var(--mt-text-dim);font-family:var(--mt-mono);border-radius:999px;align-items:center;gap:4px;padding:1px 7px;font-size:11px;display:inline-flex}.chip.is-good{color:var(--mt-good);border-color:color-mix(in srgb, var(--mt-good) 45%, var(--mt-border))}.chip.is-warn{color:var(--mt-warn);border-color:color-mix(in srgb, var(--mt-warn) 45%, var(--mt-border))}.chip.is-bad{color:var(--mt-bad);border-color:color-mix(in srgb, var(--mt-bad) 45%, var(--mt-border))}.tablewrap{border:1px solid var(--mt-border);border-radius:var(--mt-radius);max-height:70vh;overflow:auto}table.tbl{border-collapse:collapse;width:100%;font-size:12px}table.tbl th,table.tbl td{text-align:left;border-bottom:1px solid color-mix(in srgb, var(--mt-border) 55%, transparent);white-space:nowrap;font-family:var(--mt-mono);padding:7px 12px}table.tbl thead th{z-index:1;background:var(--mt-surface-2);color:var(--mt-text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;position:sticky;top:0}table.tbl thead th:hover{color:var(--mt-text)}table.tbl thead th .arrow{color:var(--mt-accent);margin-left:4px}table.tbl tbody tr{cursor:pointer}table.tbl tbody tr:hover{background:color-mix(in srgb, var(--mt-accent) 8%, transparent)}table.tbl tbody tr.is-disabled td,table.tbl td.col-num{color:var(--mt-text-faint)}.kv__body{border:1px solid var(--mt-border);border-radius:var(--mt-radius);grid-template-columns:minmax(120px,.4fr) 1fr;display:grid;overflow:hidden}.kv__body>div{border-bottom:1px solid color-mix(in srgb, var(--mt-border) 55%, transparent);overflow-wrap:anywhere;min-width:0;font-size:12px;font-family:var(--mt-mono);padding:7px 14px}.kv__k{color:var(--mt-text-dim);background:color-mix(in srgb, var(--mt-surface) 60%, transparent)}.kv__v{color:var(--mt-text)}.drawer{border:1px solid var(--mt-accent);border-radius:var(--mt-radius);background:var(--mt-surface);gap:10px;padding:12px;display:grid}.drawer__hd{align-items:center;gap:8px;display:flex}.drawer__hd b{font-family:var(--mt-mono)}pre.raw{border:1px solid var(--mt-border);border-radius:var(--mt-radius);background:var(--mt-surface);color:var(--mt-text);font-family:var(--mt-mono);white-space:pre;max-height:70vh;margin:0;padding:14px;font-size:12px;overflow:auto}.foot{color:var(--mt-text-faint);font-size:11px;font-family:var(--mt-mono);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.foot .grow{flex:1}.skeleton,.empty{color:var(--mt-text-faint);text-align:center;padding:40px 0}.count-pill b{color:var(--mt-accent)}table.tbl td.col-num,table.tbl th.col-num{width:1%}
|
|
14
14
|
/*$vite$:1*/
|
|
15
15
|
</style>
|
|
16
16
|
</head>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usex/mikrotik-mcp",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "MCP server for MikroTik RouterOS — 660+ tools over SSH for firewall, NAT, routing, DHCP, DNS, WireGuard, wireless, QoS and more.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
7
7
|
"bun",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"mikrotik",
|
|
11
11
|
"mikrotik mcp"
|
|
12
12
|
],
|
|
13
|
-
"homepage": "https://
|
|
13
|
+
"homepage": "https://mikrotik-mcp.usestrict.dev",
|
|
14
14
|
"bugs": {
|
|
15
15
|
"url": "https://github.com/ali-master/mikrotik-mcp/issues"
|
|
16
16
|
},
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
"gen:docs": "bun run scripts/gen-tool-docs.ts",
|
|
56
56
|
"gen": "bun run gen:schemas && bun run gen:docs",
|
|
57
57
|
"start": "bun run src/cli.ts serve",
|
|
58
|
+
"discover": "bun run scripts/discover-macs.ts",
|
|
58
59
|
"inspect": "bunx @modelcontextprotocol/inspector bun run src/cli.ts serve",
|
|
59
60
|
"inspect:built": "bun run build && bunx @modelcontextprotocol/inspector bun dist/cli.js serve",
|
|
60
61
|
"inspect:config": "bunx @modelcontextprotocol/inspector --config mcp-inspector.config.json --server mikrotik",
|
|
@@ -75,6 +76,7 @@
|
|
|
75
76
|
"@modelcontextprotocol/ext-apps": "^1.7.4",
|
|
76
77
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
77
78
|
"@tikoci/centrs": "^0.1.0",
|
|
79
|
+
"ipaddr.js": "^2.4.0",
|
|
78
80
|
"ssh2": "^1.17.0",
|
|
79
81
|
"zod": "^4.4.3"
|
|
80
82
|
},
|
|
@@ -87,6 +89,7 @@
|
|
|
87
89
|
"@types/ssh2": "^1.15.5",
|
|
88
90
|
"@types/update-notifier": "^6.0.8",
|
|
89
91
|
"bunup": "^0.16.32",
|
|
92
|
+
"gsap": "^3.15.0",
|
|
90
93
|
"prettier": "^3.8.4",
|
|
91
94
|
"react": "^19.2.7",
|
|
92
95
|
"react-dom": "^19.2.7",
|
|
@@ -117,5 +120,6 @@
|
|
|
117
120
|
"breaking change": "Breaking changes"
|
|
118
121
|
}
|
|
119
122
|
},
|
|
120
|
-
"logo": "https://raw.githubusercontent.com/ali-master/mikrotik-mcp/
|
|
123
|
+
"logo": "https://raw.githubusercontent.com/ali-master/mikrotik-mcp/master/assets/logo.svg",
|
|
124
|
+
"logoIcon": "https://raw.githubusercontent.com/ali-master/mikrotik-mcp/master/assets/logo-icon.svg"
|
|
121
125
|
}
|
|
@@ -4,6 +4,7 @@ title: Back up and document the configuration
|
|
|
4
4
|
description: Create a safe restore point and produce a human-readable inventory of the router's configuration.
|
|
5
5
|
arguments: []
|
|
6
6
|
---
|
|
7
|
+
|
|
7
8
|
Create a restore point for this MikroTik device and then write up a clear,
|
|
8
9
|
human-readable summary of how it's configured. This is read-mostly: the only
|
|
9
10
|
change is creating a backup/export.
|
|
@@ -10,6 +10,7 @@ arguments:
|
|
|
10
10
|
description: What connects — e.g. "iOS/Android/Windows built-in clients", "other MikroTik routers", "a Cisco/Fortinet device", "our laptops only". Optional.
|
|
11
11
|
required: false
|
|
12
12
|
---
|
|
13
|
+
|
|
13
14
|
Act as a MikroTik VPN architect. Recommend the single best tunneling technology
|
|
14
15
|
for the requirement below, justify it against the alternatives, then sketch the
|
|
15
16
|
build using this server's tools. Be decisive.
|
|
@@ -23,7 +24,7 @@ Decision guidance — weigh these MikroTik options:
|
|
|
23
24
|
laptops/phones with the WireGuard app. No built-in OS client on older systems.
|
|
24
25
|
Tools: `create_wireguard_interface`, `add_wireguard_peer`, `generate_wireguard_client_config`.
|
|
25
26
|
- **IPsec (IKEv2)** — the interoperability choice for site-to-site with
|
|
26
|
-
|
|
27
|
+
_other vendors_ (Cisco/Fortinet/pfSense) and for native iOS/Windows IKEv2
|
|
27
28
|
road-warrior. Most config surface. Tools: `create_ipsec_*` (profile/peer/
|
|
28
29
|
identity/proposal/policy), `get_ipsec_active_peers`.
|
|
29
30
|
- **L2TP/IPsec** — best when clients must use the **built-in** VPN client on
|
|
@@ -34,7 +35,7 @@ Decision guidance — weigh these MikroTik options:
|
|
|
34
35
|
- **OpenVPN** — cross-platform with the OpenVPN client; RouterOS 7 adds UDP.
|
|
35
36
|
Tools: `set_ovpn_server`, `create_ovpn_client`.
|
|
36
37
|
- **PPTP** — legacy/weak; only if a legacy device demands it. Recommend against.
|
|
37
|
-
- **GRE / IPIP / EoIP / VXLAN** —
|
|
38
|
+
- **GRE / IPIP / EoIP / VXLAN** — _unencrypted_ transport tunnels for routing or
|
|
38
39
|
L2 bridging between sites (often run **over** an IPsec policy for encryption).
|
|
39
40
|
EoIP/VXLAN bridge layer-2; GRE/IPIP carry layer-3. Tools: `create_gre_tunnel`,
|
|
40
41
|
`create_eoip_tunnel`, `create_vxlan_tunnel`.
|
|
@@ -10,6 +10,7 @@ arguments:
|
|
|
10
10
|
description: The interface/segment the affected clients are on (e.g. bridge, vlan50). Optional.
|
|
11
11
|
required: false
|
|
12
12
|
---
|
|
13
|
+
|
|
13
14
|
Troubleshoot a connectivity issue on a MikroTik RouterOS device, reasoning from
|
|
14
15
|
the bottom of the stack up. Use read-only tools only — do not change config until
|
|
15
16
|
you've localized the fault and the user approves a fix.
|
package/prompts/harden-router.md
CHANGED
|
@@ -7,6 +7,7 @@ arguments:
|
|
|
7
7
|
description: The WAN-facing interface name (e.g. ether1, pppoe-out1). If unknown, discover it first.
|
|
8
8
|
required: false
|
|
9
9
|
---
|
|
10
|
+
|
|
10
11
|
You are securing a MikroTik RouterOS device exposed through this MCP server. Work
|
|
11
12
|
**safely and incrementally**: inspect first, propose a plan, and prefer Safe Mode
|
|
12
13
|
for risky firewall changes so a mistake auto-reverts instead of locking us out.
|
|
@@ -13,6 +13,7 @@ arguments:
|
|
|
13
13
|
description: The interface that reaches the internet (for the masquerade rule).
|
|
14
14
|
required: true
|
|
15
15
|
---
|
|
16
|
+
|
|
16
17
|
Build an **isolated guest network** on this MikroTik device. Guests must reach the
|
|
17
18
|
internet but must NOT reach the LAN or the router's management. Plan the whole
|
|
18
19
|
change first, show it to the user, then apply it under Safe Mode.
|
|
@@ -35,8 +36,8 @@ Proposed build (adapt to what you discover with `list_interfaces`,
|
|
|
35
36
|
`create_filter_rule`:
|
|
36
37
|
- allow {{subnet}} → WAN (established/related + new),
|
|
37
38
|
- **drop {{subnet}} → LAN subnets (RFC1918)**,
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
and in the `input` chain drop {{subnet}} → router except DHCP/DNS. Consider an
|
|
40
|
+
`add_address_list_entry` list named `guest` to keep the rules tidy.
|
|
40
41
|
6. **Verify** — re-list the rules and confirm ordering; `enable_safe_mode` before
|
|
41
42
|
applying, test, then `commit_safe_mode`.
|
|
42
43
|
|
|
@@ -13,6 +13,7 @@ arguments:
|
|
|
13
13
|
description: The public IP / hostname of the remote peer.
|
|
14
14
|
required: true
|
|
15
15
|
---
|
|
16
|
+
|
|
16
17
|
Build a secure IPsec **IKEv2** site-to-site tunnel. IKEv2 is the interoperability
|
|
17
18
|
choice — it works against other MikroTik routers and third-party firewalls
|
|
18
19
|
(Cisco, Fortinet, pfSense). Plan first, present the parameters for both ends to
|
|
@@ -39,7 +40,7 @@ identical on both ends):
|
|
|
39
40
|
`dst_address={{remote_subnet}}`, `tunnel=true`, `action=encrypt`, the peer, and
|
|
40
41
|
the proposal.
|
|
41
42
|
6. **Firewall / NAT** — ensure UDP 500 + 4500 and IP protocol 50 (ESP) are
|
|
42
|
-
accepted from {{peer_address}} on the input chain, and add a NAT
|
|
43
|
+
accepted from {{peer_address}} on the input chain, and add a NAT _bypass_
|
|
43
44
|
(accept/no-nat) rule so {{local_subnet}}→{{remote_subnet}} traffic is NOT
|
|
44
45
|
masqueraded. Apply firewall edits under `enable_safe_mode`.
|
|
45
46
|
7. **Verify** — `get_ipsec_active_peers` and `get_ipsec_installed_sa` to confirm
|
|
@@ -10,6 +10,7 @@ arguments:
|
|
|
10
10
|
description: The router's address on the VPN/LAN side that clients use as gateway/DNS, e.g. 192.168.89.1.
|
|
11
11
|
required: true
|
|
12
12
|
---
|
|
13
|
+
|
|
13
14
|
Configure **L2TP/IPsec** remote access — the right choice when users must connect
|
|
14
15
|
with the **built-in** VPN client on Windows, macOS, iOS, and Android (no app to
|
|
15
16
|
install). Plan first, then apply (firewall under Safe Mode).
|
|
@@ -13,6 +13,7 @@ arguments:
|
|
|
13
13
|
description: Tunnel type to use — wireguard, ipsec, gre, eoip, or "recommend" to let you choose.
|
|
14
14
|
required: false
|
|
15
15
|
---
|
|
16
|
+
|
|
16
17
|
You are configuring a **site-to-site tunnel between two MikroTik routers** that
|
|
17
18
|
this server can both reach. You will drive BOTH devices in one flow by passing
|
|
18
19
|
the `device` argument on each tool call.
|
package/schemas/README.md
CHANGED
|
@@ -4,11 +4,11 @@ Machine-readable JSON Schemas for `@usex/mikrotik-mcp`, **generated** from the
|
|
|
4
4
|
TypeScript source by `scripts/gen-schemas.ts` (`bun run gen:schemas`). Do not
|
|
5
5
|
edit by hand — regenerate instead.
|
|
6
6
|
|
|
7
|
-
| File
|
|
8
|
-
|
|
9
|
-
| `config.schema.json` | The runtime configuration object (env vars / CLI flags).
|
|
10
|
-
| `tool-catalog.json`
|
|
11
|
-
| `tools/<name>.json`
|
|
7
|
+
| File | Contents |
|
|
8
|
+
| -------------------- | ------------------------------------------------------------------------------------------ |
|
|
9
|
+
| `config.schema.json` | The runtime configuration object (env vars / CLI flags). |
|
|
10
|
+
| `tool-catalog.json` | Every one of the 664 tools: `name`, `risk`, `title`, `description`, and input JSON Schema. |
|
|
11
|
+
| `tools/<name>.json` | The input JSON Schema for a single tool. |
|
|
12
12
|
|
|
13
13
|
`risk` is derived from the MCP tool annotations:
|
|
14
14
|
`read` · `write` · `write-idempotent` · `destructive` · `dangerous`.
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
"dashboard": {
|
|
160
160
|
"default": {
|
|
161
161
|
"enabled": false,
|
|
162
|
-
"host": "
|
|
162
|
+
"host": "0.0.0.0",
|
|
163
163
|
"port": 9090,
|
|
164
164
|
"dbPath": "./.mikrotik-mcp/events.db",
|
|
165
165
|
"maxEvents": 100000,
|
|
@@ -174,7 +174,7 @@
|
|
|
174
174
|
"type": "boolean"
|
|
175
175
|
},
|
|
176
176
|
"host": {
|
|
177
|
-
"default": "
|
|
177
|
+
"default": "0.0.0.0",
|
|
178
178
|
"type": "string"
|
|
179
179
|
},
|
|
180
180
|
"port": {
|