@usex/mikrotik-mcp 1.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/LICENSE +21 -0
- package/README.md +296 -0
- package/dist/cli.js +12165 -0
- package/dist/index.d.ts +153 -0
- package/dist/index.js +11955 -0
- package/package.json +107 -0
- package/prompts/backup-and-document.md +31 -0
- package/prompts/choose-vpn-solution.md +45 -0
- package/prompts/diagnose-connectivity.md +38 -0
- package/prompts/harden-router.md +38 -0
- package/prompts/setup-guest-wifi.md +44 -0
- package/prompts/setup-ipsec-site-to-site.md +50 -0
- package/prompts/setup-l2tp-ipsec-roadwarrior.md +41 -0
- package/prompts/setup-tunnel-between-sites.md +56 -0
- package/prompts/setup-wireguard-vpn.md +41 -0
- package/schemas/README.md +14 -0
- package/schemas/config.schema.json +128 -0
- package/schemas/tool-catalog.json +14938 -0
- package/schemas/tools/add_address_list_entry.json +32 -0
- package/schemas/tools/add_bfd_configuration.json +41 -0
- package/schemas/tools/add_bgp_connection.json +90 -0
- package/schemas/tools/add_bgp_template.json +45 -0
- package/schemas/tools/add_blackhole_route.json +26 -0
- package/schemas/tools/add_bridge_port.json +33 -0
- package/schemas/tools/add_bridge_vlan.json +28 -0
- package/schemas/tools/add_default_route.json +29 -0
- package/schemas/tools/add_dns_regexp.json +31 -0
- package/schemas/tools/add_dns_static.json +63 -0
- package/schemas/tools/add_igmp_proxy_interface.json +39 -0
- package/schemas/tools/add_ip_address.json +33 -0
- package/schemas/tools/add_logging_action.json +71 -0
- package/schemas/tools/add_logging_rule.json +28 -0
- package/schemas/tools/add_netwatch.json +39 -0
- package/schemas/tools/add_ospf_area.json +45 -0
- package/schemas/tools/add_ospf_area_range.json +34 -0
- package/schemas/tools/add_ospf_instance.json +54 -0
- package/schemas/tools/add_ospf_interface_template.json +85 -0
- package/schemas/tools/add_pimsm_instance.json +40 -0
- package/schemas/tools/add_pimsm_interface_template.json +38 -0
- package/schemas/tools/add_pimsm_rp.json +32 -0
- package/schemas/tools/add_radius_server.json +63 -0
- package/schemas/tools/add_rip_instance.json +44 -0
- package/schemas/tools/add_rip_interface_template.json +35 -0
- package/schemas/tools/add_rip_static_neighbor.json +27 -0
- package/schemas/tools/add_route.json +56 -0
- package/schemas/tools/add_routing_filter_num_list.json +23 -0
- package/schemas/tools/add_routing_filter_rule.json +32 -0
- package/schemas/tools/add_routing_id.json +31 -0
- package/schemas/tools/add_routing_rule.json +63 -0
- package/schemas/tools/add_routing_table.json +29 -0
- package/schemas/tools/add_rpki_session.json +51 -0
- package/schemas/tools/add_script.json +29 -0
- package/schemas/tools/add_user.json +34 -0
- package/schemas/tools/add_user_group.json +27 -0
- package/schemas/tools/add_user_manager_limitation.json +34 -0
- package/schemas/tools/add_user_manager_profile.json +39 -0
- package/schemas/tools/add_user_manager_router.json +36 -0
- package/schemas/tools/add_user_manager_user.json +41 -0
- package/schemas/tools/add_wireguard_peer.json +47 -0
- package/schemas/tools/assign_user_manager_profile.json +20 -0
- package/schemas/tools/backup_info.json +14 -0
- package/schemas/tools/bandwidth_test.json +50 -0
- package/schemas/tools/change_password.json +20 -0
- package/schemas/tools/check_for_updates.json +7 -0
- package/schemas/tools/check_route_path.json +20 -0
- package/schemas/tools/check_wireless_support.json +7 -0
- package/schemas/tools/clear_logs.json +7 -0
- package/schemas/tools/commit_safe_mode.json +7 -0
- package/schemas/tools/create_backup.json +26 -0
- package/schemas/tools/create_basic_firewall_setup.json +7 -0
- package/schemas/tools/create_bridge.json +44 -0
- package/schemas/tools/create_certificate.json +48 -0
- package/schemas/tools/create_dhcp_network.json +51 -0
- package/schemas/tools/create_dhcp_pool.json +25 -0
- package/schemas/tools/create_dhcp_server.json +48 -0
- package/schemas/tools/create_eoip_tunnel.json +48 -0
- package/schemas/tools/create_export.json +51 -0
- package/schemas/tools/create_filter_rule.json +96 -0
- package/schemas/tools/create_gre_tunnel.json +53 -0
- package/schemas/tools/create_ip_pool.json +25 -0
- package/schemas/tools/create_ipip_tunnel.json +41 -0
- package/schemas/tools/create_ipsec_identity.json +58 -0
- package/schemas/tools/create_ipsec_peer.json +52 -0
- package/schemas/tools/create_ipsec_policy.json +66 -0
- package/schemas/tools/create_ipsec_profile.json +49 -0
- package/schemas/tools/create_ipsec_proposal.json +37 -0
- package/schemas/tools/create_l2tp_client.json +57 -0
- package/schemas/tools/create_nat_rule.json +71 -0
- package/schemas/tools/create_ovpn_client.json +73 -0
- package/schemas/tools/create_ppp_profile.json +62 -0
- package/schemas/tools/create_ppp_secret.json +54 -0
- package/schemas/tools/create_pptp_client.json +44 -0
- package/schemas/tools/create_queue_tree.json +62 -0
- package/schemas/tools/create_queue_type.json +158 -0
- package/schemas/tools/create_scheduler.json +40 -0
- package/schemas/tools/create_simple_queue.json +66 -0
- package/schemas/tools/create_sstp_client.json +52 -0
- package/schemas/tools/create_vlan_interface.json +60 -0
- package/schemas/tools/create_vxlan_tunnel.json +51 -0
- package/schemas/tools/create_wireguard_interface.json +35 -0
- package/schemas/tools/create_wireless_access_list.json +7 -0
- package/schemas/tools/create_wireless_interface.json +74 -0
- package/schemas/tools/create_wireless_security_profile.json +14 -0
- package/schemas/tools/disable_address_list_entry.json +15 -0
- package/schemas/tools/disable_dns_static.json +14 -0
- package/schemas/tools/disable_filter_rule.json +14 -0
- package/schemas/tools/disable_interface.json +14 -0
- package/schemas/tools/disable_ip_service.json +15 -0
- package/schemas/tools/disable_l2tp_client.json +14 -0
- package/schemas/tools/disable_nat_rule.json +14 -0
- package/schemas/tools/disable_ovpn_client.json +14 -0
- package/schemas/tools/disable_queue_tree.json +14 -0
- package/schemas/tools/disable_radius_server.json +15 -0
- package/schemas/tools/disable_route.json +15 -0
- package/schemas/tools/disable_scheduler.json +14 -0
- package/schemas/tools/disable_simple_queue.json +14 -0
- package/schemas/tools/disable_user.json +14 -0
- package/schemas/tools/disable_wireguard_interface.json +14 -0
- package/schemas/tools/disable_wireguard_peer.json +15 -0
- package/schemas/tools/disable_wireless_interface.json +14 -0
- package/schemas/tools/disconnect_ppp_active.json +15 -0
- package/schemas/tools/disconnect_user.json +14 -0
- package/schemas/tools/download_file.json +23 -0
- package/schemas/tools/enable_address_list_entry.json +15 -0
- package/schemas/tools/enable_dns_static.json +14 -0
- package/schemas/tools/enable_filter_rule.json +14 -0
- package/schemas/tools/enable_interface.json +14 -0
- package/schemas/tools/enable_ip_service.json +15 -0
- package/schemas/tools/enable_l2tp_client.json +14 -0
- package/schemas/tools/enable_nat_rule.json +14 -0
- package/schemas/tools/enable_ovpn_client.json +14 -0
- package/schemas/tools/enable_queue_tree.json +14 -0
- package/schemas/tools/enable_radius_server.json +15 -0
- package/schemas/tools/enable_route.json +15 -0
- package/schemas/tools/enable_safe_mode.json +7 -0
- package/schemas/tools/enable_scheduler.json +14 -0
- package/schemas/tools/enable_simple_queue.json +14 -0
- package/schemas/tools/enable_user.json +14 -0
- package/schemas/tools/enable_wireguard_interface.json +14 -0
- package/schemas/tools/enable_wireguard_peer.json +15 -0
- package/schemas/tools/enable_wireless_interface.json +14 -0
- package/schemas/tools/expand_ip_pool.json +19 -0
- package/schemas/tools/export_dns_config.json +11 -0
- package/schemas/tools/export_logs.json +28 -0
- package/schemas/tools/export_section.json +27 -0
- package/schemas/tools/export_user_config.json +11 -0
- package/schemas/tools/flush_dns_cache.json +7 -0
- package/schemas/tools/flush_ipsec_installed_sa.json +7 -0
- package/schemas/tools/flush_route_cache.json +7 -0
- package/schemas/tools/format_disk.json +34 -0
- package/schemas/tools/generate_wireguard_client_config.json +48 -0
- package/schemas/tools/get_active_users.json +7 -0
- package/schemas/tools/get_address_list_entry.json +15 -0
- package/schemas/tools/get_bgp_connection.json +15 -0
- package/schemas/tools/get_bridge.json +14 -0
- package/schemas/tools/get_certificate.json +14 -0
- package/schemas/tools/get_dhcp_server.json +14 -0
- package/schemas/tools/get_disk.json +15 -0
- package/schemas/tools/get_dns_cache.json +7 -0
- package/schemas/tools/get_dns_cache_statistics.json +7 -0
- package/schemas/tools/get_dns_settings.json +7 -0
- package/schemas/tools/get_dns_static.json +14 -0
- package/schemas/tools/get_eoip_tunnel.json +14 -0
- package/schemas/tools/get_filter_rule.json +15 -0
- package/schemas/tools/get_gre_tunnel.json +14 -0
- package/schemas/tools/get_igmp_proxy_settings.json +7 -0
- package/schemas/tools/get_installed_packages.json +7 -0
- package/schemas/tools/get_interface.json +15 -0
- package/schemas/tools/get_ip_address.json +15 -0
- package/schemas/tools/get_ip_pool.json +14 -0
- package/schemas/tools/get_ip_service.json +15 -0
- package/schemas/tools/get_ipip_tunnel.json +14 -0
- package/schemas/tools/get_ipsec_active_peers.json +7 -0
- package/schemas/tools/get_ipsec_installed_sa.json +7 -0
- package/schemas/tools/get_ipsec_peer.json +14 -0
- package/schemas/tools/get_ipsec_profile.json +14 -0
- package/schemas/tools/get_ipsec_proposal.json +14 -0
- package/schemas/tools/get_ipsec_statistics.json +7 -0
- package/schemas/tools/get_l2tp_client.json +14 -0
- package/schemas/tools/get_l2tp_server.json +7 -0
- package/schemas/tools/get_leds_settings.json +7 -0
- package/schemas/tools/get_license.json +7 -0
- package/schemas/tools/get_log_statistics.json +7 -0
- package/schemas/tools/get_logs.json +45 -0
- package/schemas/tools/get_logs_by_severity.json +29 -0
- package/schemas/tools/get_logs_by_topic.json +22 -0
- package/schemas/tools/get_nat_rule.json +15 -0
- package/schemas/tools/get_netwatch.json +14 -0
- package/schemas/tools/get_note.json +7 -0
- package/schemas/tools/get_ntp_client.json +7 -0
- package/schemas/tools/get_ntp_server.json +7 -0
- package/schemas/tools/get_ovpn_client.json +14 -0
- package/schemas/tools/get_ovpn_server.json +7 -0
- package/schemas/tools/get_poe_monitor.json +15 -0
- package/schemas/tools/get_poe_settings.json +15 -0
- package/schemas/tools/get_port.json +15 -0
- package/schemas/tools/get_ppp_active.json +12 -0
- package/schemas/tools/get_ppp_profile.json +14 -0
- package/schemas/tools/get_ppp_secret.json +14 -0
- package/schemas/tools/get_pptp_client.json +14 -0
- package/schemas/tools/get_pptp_server.json +7 -0
- package/schemas/tools/get_queue_tree.json +14 -0
- package/schemas/tools/get_queue_type.json +14 -0
- package/schemas/tools/get_radius_incoming.json +7 -0
- package/schemas/tools/get_radius_server.json +15 -0
- package/schemas/tools/get_regulatory.json +7 -0
- package/schemas/tools/get_route.json +15 -0
- package/schemas/tools/get_route_cache.json +7 -0
- package/schemas/tools/get_route_statistics.json +7 -0
- package/schemas/tools/get_routerboard.json +7 -0
- package/schemas/tools/get_routing_id.json +15 -0
- package/schemas/tools/get_routing_nexthop_stats.json +7 -0
- package/schemas/tools/get_routing_rule.json +15 -0
- package/schemas/tools/get_routing_settings.json +7 -0
- package/schemas/tools/get_routing_table.json +23 -0
- package/schemas/tools/get_routing_table_def.json +15 -0
- package/schemas/tools/get_scheduler.json +14 -0
- package/schemas/tools/get_security_logs.json +16 -0
- package/schemas/tools/get_simple_queue.json +14 -0
- package/schemas/tools/get_sstp_client.json +14 -0
- package/schemas/tools/get_sstp_server.json +7 -0
- package/schemas/tools/get_system_clock.json +7 -0
- package/schemas/tools/get_system_events.json +19 -0
- package/schemas/tools/get_system_health.json +7 -0
- package/schemas/tools/get_system_history.json +7 -0
- package/schemas/tools/get_system_identity.json +7 -0
- package/schemas/tools/get_system_resources.json +7 -0
- package/schemas/tools/get_user.json +14 -0
- package/schemas/tools/get_user_group.json +14 -0
- package/schemas/tools/get_user_manager_settings.json +7 -0
- package/schemas/tools/get_user_manager_user.json +14 -0
- package/schemas/tools/get_vlan_interface.json +14 -0
- package/schemas/tools/get_vxlan_tunnel.json +14 -0
- package/schemas/tools/get_watchdog.json +7 -0
- package/schemas/tools/get_wireguard_interface.json +14 -0
- package/schemas/tools/get_wireguard_peer.json +15 -0
- package/schemas/tools/get_wireless_interface.json +14 -0
- package/schemas/tools/get_wireless_registration_table.json +11 -0
- package/schemas/tools/get_wireless_security_profile.json +14 -0
- package/schemas/tools/import_certificate.json +23 -0
- package/schemas/tools/import_configuration.json +24 -0
- package/schemas/tools/list_address_lists.json +24 -0
- package/schemas/tools/list_backups.json +18 -0
- package/schemas/tools/list_bfd_configurations.json +7 -0
- package/schemas/tools/list_bfd_sessions.json +16 -0
- package/schemas/tools/list_bgp_advertisements.json +12 -0
- package/schemas/tools/list_bgp_connections.json +12 -0
- package/schemas/tools/list_bgp_sessions.json +16 -0
- package/schemas/tools/list_bgp_templates.json +7 -0
- package/schemas/tools/list_bridge_hosts.json +12 -0
- package/schemas/tools/list_bridge_ports.json +16 -0
- package/schemas/tools/list_bridge_vlans.json +12 -0
- package/schemas/tools/list_bridges.json +12 -0
- package/schemas/tools/list_certificates.json +12 -0
- package/schemas/tools/list_dhcp_servers.json +26 -0
- package/schemas/tools/list_disks.json +7 -0
- package/schemas/tools/list_dns_static.json +29 -0
- package/schemas/tools/list_eoip_tunnels.json +12 -0
- package/schemas/tools/list_filter_rules.json +43 -0
- package/schemas/tools/list_gmp_group_memberships.json +16 -0
- package/schemas/tools/list_gmp_interfaces.json +7 -0
- package/schemas/tools/list_gre_tunnels.json +12 -0
- package/schemas/tools/list_igmp_proxy_interfaces.json +7 -0
- package/schemas/tools/list_igmp_proxy_mfc.json +7 -0
- package/schemas/tools/list_interfaces.json +42 -0
- package/schemas/tools/list_ip_addresses.json +29 -0
- package/schemas/tools/list_ip_pool_used.json +20 -0
- package/schemas/tools/list_ip_pools.json +21 -0
- package/schemas/tools/list_ip_services.json +7 -0
- package/schemas/tools/list_ipip_tunnels.json +12 -0
- package/schemas/tools/list_ipsec_identities.json +12 -0
- package/schemas/tools/list_ipsec_peers.json +12 -0
- package/schemas/tools/list_ipsec_policies.json +7 -0
- package/schemas/tools/list_ipsec_profiles.json +12 -0
- package/schemas/tools/list_ipsec_proposals.json +12 -0
- package/schemas/tools/list_l2tp_clients.json +12 -0
- package/schemas/tools/list_leds.json +7 -0
- package/schemas/tools/list_logging_actions.json +12 -0
- package/schemas/tools/list_logging_rules.json +16 -0
- package/schemas/tools/list_mikrotik_devices.json +7 -0
- package/schemas/tools/list_nat_rules.json +38 -0
- package/schemas/tools/list_netwatch.json +12 -0
- package/schemas/tools/list_ospf_area_ranges.json +7 -0
- package/schemas/tools/list_ospf_areas.json +7 -0
- package/schemas/tools/list_ospf_instances.json +7 -0
- package/schemas/tools/list_ospf_interface_templates.json +7 -0
- package/schemas/tools/list_ospf_lsa.json +12 -0
- package/schemas/tools/list_ospf_neighbors.json +7 -0
- package/schemas/tools/list_ovpn_clients.json +12 -0
- package/schemas/tools/list_pimsm_instances.json +7 -0
- package/schemas/tools/list_pimsm_interface_templates.json +7 -0
- package/schemas/tools/list_pimsm_neighbors.json +7 -0
- package/schemas/tools/list_pimsm_rps.json +7 -0
- package/schemas/tools/list_poe.json +12 -0
- package/schemas/tools/list_ports.json +12 -0
- package/schemas/tools/list_ppp_profiles.json +12 -0
- package/schemas/tools/list_ppp_secrets.json +24 -0
- package/schemas/tools/list_pptp_clients.json +12 -0
- package/schemas/tools/list_queue_trees.json +26 -0
- package/schemas/tools/list_queue_types.json +14 -0
- package/schemas/tools/list_radius_servers.json +16 -0
- package/schemas/tools/list_rip_instances.json +7 -0
- package/schemas/tools/list_rip_interface_templates.json +7 -0
- package/schemas/tools/list_rip_neighbors.json +7 -0
- package/schemas/tools/list_rip_static_neighbors.json +7 -0
- package/schemas/tools/list_routes.json +44 -0
- package/schemas/tools/list_routing_filter_num_lists.json +12 -0
- package/schemas/tools/list_routing_filter_rules.json +12 -0
- package/schemas/tools/list_routing_filter_select_rules.json +7 -0
- package/schemas/tools/list_routing_ids.json +12 -0
- package/schemas/tools/list_routing_nexthops.json +19 -0
- package/schemas/tools/list_routing_rules.json +19 -0
- package/schemas/tools/list_routing_tables.json +12 -0
- package/schemas/tools/list_rpki_sessions.json +12 -0
- package/schemas/tools/list_schedulers.json +12 -0
- package/schemas/tools/list_scripts.json +12 -0
- package/schemas/tools/list_simple_queues.json +26 -0
- package/schemas/tools/list_special_login.json +7 -0
- package/schemas/tools/list_sstp_clients.json +12 -0
- package/schemas/tools/list_system_console.json +7 -0
- package/schemas/tools/list_user_groups.json +14 -0
- package/schemas/tools/list_user_manager_limitations.json +12 -0
- package/schemas/tools/list_user_manager_profiles.json +12 -0
- package/schemas/tools/list_user_manager_routers.json +12 -0
- package/schemas/tools/list_user_manager_sessions.json +20 -0
- package/schemas/tools/list_user_manager_user_profiles.json +12 -0
- package/schemas/tools/list_user_manager_users.json +12 -0
- package/schemas/tools/list_user_ssh_keys.json +14 -0
- package/schemas/tools/list_users.json +26 -0
- package/schemas/tools/list_vlan_interfaces.json +28 -0
- package/schemas/tools/list_vxlan_tunnels.json +12 -0
- package/schemas/tools/list_wireguard_interfaces.json +23 -0
- package/schemas/tools/list_wireguard_peers.json +18 -0
- package/schemas/tools/list_wireless_access_list.json +7 -0
- package/schemas/tools/list_wireless_interfaces.json +23 -0
- package/schemas/tools/list_wireless_security_profiles.json +7 -0
- package/schemas/tools/monitor_logs.json +23 -0
- package/schemas/tools/move_filter_rule.json +21 -0
- package/schemas/tools/move_nat_rule.json +21 -0
- package/schemas/tools/ping.json +37 -0
- package/schemas/tools/reboot_system.json +15 -0
- package/schemas/tools/remove_address_list_entry.json +15 -0
- package/schemas/tools/remove_bfd_configuration.json +15 -0
- package/schemas/tools/remove_bgp_connection.json +15 -0
- package/schemas/tools/remove_bgp_template.json +15 -0
- package/schemas/tools/remove_bridge.json +14 -0
- package/schemas/tools/remove_bridge_port.json +15 -0
- package/schemas/tools/remove_certificate.json +14 -0
- package/schemas/tools/remove_dhcp_server.json +14 -0
- package/schemas/tools/remove_dns_static.json +14 -0
- package/schemas/tools/remove_eoip_tunnel.json +14 -0
- package/schemas/tools/remove_file.json +14 -0
- package/schemas/tools/remove_filter_rule.json +14 -0
- package/schemas/tools/remove_gre_tunnel.json +14 -0
- package/schemas/tools/remove_igmp_proxy_interface.json +15 -0
- package/schemas/tools/remove_ip_address.json +14 -0
- package/schemas/tools/remove_ip_pool.json +14 -0
- package/schemas/tools/remove_ipip_tunnel.json +14 -0
- package/schemas/tools/remove_ipsec_identity.json +15 -0
- package/schemas/tools/remove_ipsec_peer.json +14 -0
- package/schemas/tools/remove_ipsec_policy.json +15 -0
- package/schemas/tools/remove_ipsec_profile.json +14 -0
- package/schemas/tools/remove_ipsec_proposal.json +14 -0
- package/schemas/tools/remove_l2tp_client.json +14 -0
- package/schemas/tools/remove_logging_action.json +15 -0
- package/schemas/tools/remove_logging_rule.json +15 -0
- package/schemas/tools/remove_nat_rule.json +14 -0
- package/schemas/tools/remove_netwatch.json +14 -0
- package/schemas/tools/remove_ospf_area.json +15 -0
- package/schemas/tools/remove_ospf_area_range.json +15 -0
- package/schemas/tools/remove_ospf_instance.json +15 -0
- package/schemas/tools/remove_ospf_interface_template.json +15 -0
- package/schemas/tools/remove_ovpn_client.json +14 -0
- package/schemas/tools/remove_pimsm_instance.json +15 -0
- package/schemas/tools/remove_pimsm_interface_template.json +15 -0
- package/schemas/tools/remove_pimsm_rp.json +15 -0
- package/schemas/tools/remove_ppp_profile.json +14 -0
- package/schemas/tools/remove_ppp_secret.json +14 -0
- package/schemas/tools/remove_pptp_client.json +14 -0
- package/schemas/tools/remove_queue_tree.json +14 -0
- package/schemas/tools/remove_queue_type.json +14 -0
- package/schemas/tools/remove_radius_server.json +15 -0
- package/schemas/tools/remove_rip_instance.json +15 -0
- package/schemas/tools/remove_rip_interface_template.json +15 -0
- package/schemas/tools/remove_rip_static_neighbor.json +15 -0
- package/schemas/tools/remove_route.json +15 -0
- package/schemas/tools/remove_routing_filter_num_list.json +15 -0
- package/schemas/tools/remove_routing_filter_rule.json +15 -0
- package/schemas/tools/remove_routing_id.json +15 -0
- package/schemas/tools/remove_routing_rule.json +15 -0
- package/schemas/tools/remove_routing_table.json +15 -0
- package/schemas/tools/remove_rpki_session.json +15 -0
- package/schemas/tools/remove_scheduler.json +14 -0
- package/schemas/tools/remove_script.json +14 -0
- package/schemas/tools/remove_simple_queue.json +14 -0
- package/schemas/tools/remove_sstp_client.json +14 -0
- package/schemas/tools/remove_user.json +14 -0
- package/schemas/tools/remove_user_group.json +14 -0
- package/schemas/tools/remove_user_manager_limitation.json +14 -0
- package/schemas/tools/remove_user_manager_profile.json +14 -0
- package/schemas/tools/remove_user_manager_router.json +14 -0
- package/schemas/tools/remove_user_manager_user.json +14 -0
- package/schemas/tools/remove_user_ssh_key.json +14 -0
- package/schemas/tools/remove_vlan_interface.json +14 -0
- package/schemas/tools/remove_vxlan_tunnel.json +14 -0
- package/schemas/tools/remove_wireguard_interface.json +14 -0
- package/schemas/tools/remove_wireguard_peer.json +15 -0
- package/schemas/tools/remove_wireless_access_list_entry.json +14 -0
- package/schemas/tools/remove_wireless_interface.json +14 -0
- package/schemas/tools/remove_wireless_security_profile.json +14 -0
- package/schemas/tools/reset_configuration.json +31 -0
- package/schemas/tools/reset_radius_counters.json +7 -0
- package/schemas/tools/resolve_dns.json +19 -0
- package/schemas/tools/restore_backup.json +17 -0
- package/schemas/tools/rollback_safe_mode.json +7 -0
- package/schemas/tools/run_script.json +14 -0
- package/schemas/tools/safe_mode_status.json +7 -0
- package/schemas/tools/scan_wireless_networks.json +21 -0
- package/schemas/tools/search_logs.json +27 -0
- package/schemas/tools/set_bfd_configuration_enabled.json +19 -0
- package/schemas/tools/set_bgp_connection_enabled.json +19 -0
- package/schemas/tools/set_dns_servers.json +54 -0
- package/schemas/tools/set_igmp_proxy_interface_enabled.json +19 -0
- package/schemas/tools/set_ip_service.json +33 -0
- package/schemas/tools/set_l2tp_server.json +41 -0
- package/schemas/tools/set_leds_settings.json +18 -0
- package/schemas/tools/set_note.json +16 -0
- package/schemas/tools/set_ntp_client.json +16 -0
- package/schemas/tools/set_ntp_server.json +25 -0
- package/schemas/tools/set_ovpn_server.json +57 -0
- package/schemas/tools/set_port.json +45 -0
- package/schemas/tools/set_pptp_server.json +29 -0
- package/schemas/tools/set_radius_incoming.json +18 -0
- package/schemas/tools/set_routing_filter_rule_enabled.json +19 -0
- package/schemas/tools/set_routing_id_enabled.json +20 -0
- package/schemas/tools/set_routing_rule_enabled.json +20 -0
- package/schemas/tools/set_routing_table_enabled.json +20 -0
- package/schemas/tools/set_rpki_session_enabled.json +19 -0
- package/schemas/tools/set_sstp_server.json +37 -0
- package/schemas/tools/set_system_clock.json +20 -0
- package/schemas/tools/set_system_identity.json +15 -0
- package/schemas/tools/set_user_manager_settings.json +20 -0
- package/schemas/tools/set_user_ssh_keys.json +18 -0
- package/schemas/tools/set_watchdog.json +32 -0
- package/schemas/tools/set_wireless_security_profile.json +18 -0
- package/schemas/tools/shutdown_system.json +15 -0
- package/schemas/tools/sign_certificate.json +23 -0
- package/schemas/tools/test_dns_query.json +22 -0
- package/schemas/tools/traceroute.json +27 -0
- package/schemas/tools/update_bfd_configuration.json +38 -0
- package/schemas/tools/update_bgp_connection.json +64 -0
- package/schemas/tools/update_bridge.json +41 -0
- package/schemas/tools/update_dns_static.json +64 -0
- package/schemas/tools/update_filter_rule.json +71 -0
- package/schemas/tools/update_igmp_proxy_interface.json +32 -0
- package/schemas/tools/update_igmp_proxy_settings.json +19 -0
- package/schemas/tools/update_ip_pool.json +27 -0
- package/schemas/tools/update_ipsec_peer.json +44 -0
- package/schemas/tools/update_ipsec_profile.json +41 -0
- package/schemas/tools/update_ipsec_proposal.json +30 -0
- package/schemas/tools/update_nat_rule.json +59 -0
- package/schemas/tools/update_ospf_instance.json +36 -0
- package/schemas/tools/update_ppp_profile.json +61 -0
- package/schemas/tools/update_ppp_secret.json +50 -0
- package/schemas/tools/update_queue_tree.json +61 -0
- package/schemas/tools/update_queue_type.json +59 -0
- package/schemas/tools/update_radius_server.json +55 -0
- package/schemas/tools/update_rip_instance.json +36 -0
- package/schemas/tools/update_route.json +57 -0
- package/schemas/tools/update_routing_filter_rule.json +27 -0
- package/schemas/tools/update_routing_id.json +29 -0
- package/schemas/tools/update_routing_rule.json +45 -0
- package/schemas/tools/update_routing_settings.json +27 -0
- package/schemas/tools/update_routing_table.json +25 -0
- package/schemas/tools/update_rpki_session.json +38 -0
- package/schemas/tools/update_simple_queue.json +66 -0
- package/schemas/tools/update_user.json +32 -0
- package/schemas/tools/update_user_group.json +29 -0
- package/schemas/tools/update_user_manager_user.json +38 -0
- package/schemas/tools/update_vlan_interface.json +52 -0
- package/schemas/tools/update_wireguard_interface.json +36 -0
- package/schemas/tools/update_wireguard_peer.json +38 -0
- package/schemas/tools/update_wireless_interface.json +26 -0
- package/schemas/tools/upload_file.json +18 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Ali Torki
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="assets/logo.svg" alt="@usex/mikrotik-mcp" width="440" />
|
|
3
|
+
<p><strong>A Bun-native MCP server that turns one or more MikroTik routers into 466 tools your AI can drive.</strong><br/>
|
|
4
|
+
Firewall · routing · DHCP/DNS · wireless · QoS · and a complete VPN suite — over SSH, with transactional Safe Mode.</p>
|
|
5
|
+
|
|
6
|
+
<p>
|
|
7
|
+
<a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-7C3AED.svg"></a>
|
|
8
|
+
<img alt="Runtime: Bun" src="https://img.shields.io/badge/runtime-Bun%20%E2%89%A5%201.3-06B6D4.svg">
|
|
9
|
+
<img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-strict-6366F1.svg">
|
|
10
|
+
<img alt="MCP" src="https://img.shields.io/badge/MCP-466%20tools-1F2937.svg">
|
|
11
|
+
<a href="docs/"><img alt="Docs" src="https://img.shields.io/badge/docs-reference-7C3AED.svg"></a>
|
|
12
|
+
</p>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
`@usex/mikrotik-mcp` exposes **MikroTik RouterOS** as **466 [Model Context Protocol](https://modelcontextprotocol.io)
|
|
18
|
+
tools across 51 modules**, so an AI client (Claude Desktop, Claude Code, any MCP
|
|
19
|
+
client) can read and configure your router in plain language. It speaks to the
|
|
20
|
+
device over **SSH** — no agent, no API package to install on RouterOS — runs on
|
|
21
|
+
**[Bun](https://bun.sh)**, and validates every tool call against a Zod schema.
|
|
22
|
+
|
|
23
|
+
Every tool is **risk-annotated** (read / write / destructive) so clients can gate
|
|
24
|
+
what runs, and risky changes can be wrapped in **Safe Mode** — RouterOS holds them
|
|
25
|
+
in memory and auto-reverts if your session drops, so you can't lock yourself out.
|
|
26
|
+
|
|
27
|
+
```jsonc
|
|
28
|
+
// claude_desktop_config.json
|
|
29
|
+
{
|
|
30
|
+
"mcpServers": {
|
|
31
|
+
"mikrotik": {
|
|
32
|
+
"command": "mikrotik-mcp",
|
|
33
|
+
"env": {
|
|
34
|
+
"MIKROTIK_HOST": "192.168.88.1",
|
|
35
|
+
"MIKROTIK_USERNAME": "admin",
|
|
36
|
+
"MIKROTIK_PASSWORD": "your-password"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
> *"Show me the firewall input chain, then block SSH from the WAN under safe mode."*
|
|
44
|
+
> *"Build an IKEv2 site-to-site tunnel to 203.0.113.5 for 192.168.20.0/24."*
|
|
45
|
+
> *"Why can't VLAN 50 reach the internet?"*
|
|
46
|
+
|
|
47
|
+
## Why it's different
|
|
48
|
+
|
|
49
|
+
- 🧰 **Breadth** — 466 tools covering the whole device: L2 (bridge, VLAN, wireless,
|
|
50
|
+
PoE), L3 (addressing, routing, DHCP, DNS), security (firewall, NAT, address-lists,
|
|
51
|
+
certificates), QoS (queues), and system ops (users, logs, backups, scheduler).
|
|
52
|
+
- 🔐 **A complete VPN suite** — WireGuard, IPsec (IKEv1/IKEv2), L2TP, PPTP, SSTP,
|
|
53
|
+
OpenVPN, plus GRE/IPIP/EoIP/VXLAN tunnels. With a `choose-vpn-solution` prompt
|
|
54
|
+
that picks the right one for you. See the **[VPN guide](docs/vpn-guide.md)**.
|
|
55
|
+
- 🛟 **Safe Mode** — a real transactional window (`enable_safe_mode` →
|
|
56
|
+
changes → `commit_safe_mode`/`rollback_safe_mode`) backed by a persistent SSH
|
|
57
|
+
session. Auto-reverts on disconnect.
|
|
58
|
+
- 🚦 **Risk-annotated tools** — `readOnlyHint` / `destructiveHint` let clients
|
|
59
|
+
auto-approve reads and prompt on writes.
|
|
60
|
+
- 🧱 **Injection-safe by construction** — a command builder quotes/escapes every
|
|
61
|
+
value, so a hostname like `LAN; /system reset` can never split into a second
|
|
62
|
+
command.
|
|
63
|
+
- 🖧 **Multiple devices** — define named routers and the AI targets one per call
|
|
64
|
+
(a validated `device` argument). Configure **both ends of a tunnel** from one
|
|
65
|
+
conversation. See **[docs/multi-device.md](docs/multi-device.md)**.
|
|
66
|
+
- 🤖 **Guided prompts** — 9 built-in workflows (harden, diagnose, guest Wi-Fi, VPNs,
|
|
67
|
+
cross-device tunnels, backup & document) that turn an intent into tool calls.
|
|
68
|
+
|
|
69
|
+
## Quickstart
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# 1. Install (requires Bun ≥ 1.3 — https://bun.sh)
|
|
73
|
+
bun add -g @usex/mikrotik-mcp
|
|
74
|
+
|
|
75
|
+
# 2. Point it at your router and verify SSH connectivity
|
|
76
|
+
MIKROTIK_HOST=192.168.88.1 MIKROTIK_USERNAME=admin MIKROTIK_PASSWORD=•••• \
|
|
77
|
+
mikrotik-mcp auth-check
|
|
78
|
+
|
|
79
|
+
# 3. List the catalog (name · risk · title)
|
|
80
|
+
mikrotik-mcp tools
|
|
81
|
+
|
|
82
|
+
# 4. Run it (stdio by default — wire it into your MCP client)
|
|
83
|
+
mikrotik-mcp serve
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Try it without an AI client** — open the official [MCP Inspector](docs/inspector.md)
|
|
87
|
+
against the server (from source):
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
bun run inspect # opens the Inspector UI to browse/run all 466 tools
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Prefer SSH keys over a password?** Point the server at a key file instead — and
|
|
94
|
+
add a passphrase if the key is encrypted:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
MIKROTIK_HOST=192.168.88.1 MIKROTIK_USERNAME=admin \
|
|
98
|
+
MIKROTIK_KEY_FILENAME=~/.ssh/id_ed25519 \
|
|
99
|
+
MIKROTIK_KEY_PASSPHRASE=•••• \
|
|
100
|
+
mikrotik-mcp auth-check # prints "Auth mode: SSH key"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
The key (file via `--key-filename` or inline PEM via `--private-key`) takes
|
|
104
|
+
precedence over a password. Full configuration reference:
|
|
105
|
+
**[docs/configuration.md](docs/configuration.md)**.
|
|
106
|
+
|
|
107
|
+
### From source
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
git clone https://github.com/ali-master/mikrotik-mcp && cd mikrotik-mcp
|
|
111
|
+
bun install
|
|
112
|
+
bun run start # serve from source
|
|
113
|
+
bun run build # bundle to dist/
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## The tool catalog
|
|
117
|
+
|
|
118
|
+
**466 tools across 51 modules.** Full, always-current reference (parameters +
|
|
119
|
+
risk per tool) is generated from source: **[docs/tools-reference.md](docs/tools-reference.md)**.
|
|
120
|
+
|
|
121
|
+
| Group | Tools | Modules |
|
|
122
|
+
|-------|------:|---------|
|
|
123
|
+
| **Interfaces** | 41 | interfaces, VLAN, bridge, wireless, PoE |
|
|
124
|
+
| **Addressing & Routing** | 46 | IP addresses, IP pools, routing, DHCP, DNS |
|
|
125
|
+
| **Dynamic Routing** | 99 | router-id, settings, tables, rules, next-hops, filters, BFD, BGP, OSPF, RIP, PIM-SM, IGMP proxy, GMP, RPKI |
|
|
126
|
+
| **Security** | 34 | firewall filter, NAT, address-lists, certificates, IP services |
|
|
127
|
+
| **VPN & Tunneling** | 96 | WireGuard, IPsec, PPP, L2TP, PPTP, SSTP, OpenVPN, GRE/IPIP/EoIP/VXLAN |
|
|
128
|
+
| **QoS** | 19 | queue types, queue trees, simple queues |
|
|
129
|
+
| **System & Ops** | 102 | system, network tools, scheduler/scripts, users, logs, backup, Safe Mode |
|
|
130
|
+
|
|
131
|
+
## VPN & tunneling — expert coverage
|
|
132
|
+
|
|
133
|
+
Every MikroTik VPN technology, modeled the way RouterOS actually layers them (the
|
|
134
|
+
PPP-based VPNs share one `/ppp` backend for users and addressing):
|
|
135
|
+
|
|
136
|
+
| Need | Use | Build it with |
|
|
137
|
+
|------|-----|---------------|
|
|
138
|
+
| MikroTik ↔ MikroTik, modern clients | **WireGuard** | `create_wireguard_interface`, `add_wireguard_peer`, `generate_wireguard_client_config` |
|
|
139
|
+
| Interop site-to-site / native IKEv2 | **IPsec** | `create_ipsec_{profile,peer,identity,proposal,policy}`, `get_ipsec_active_peers` |
|
|
140
|
+
| Built-in OS VPN clients | **L2TP/IPsec** | `set_l2tp_server`, `create_ppp_secret`, `create_ppp_profile` |
|
|
141
|
+
| Through restrictive firewalls | **SSTP** (TLS) | `set_sstp_server`, `create_sstp_client` |
|
|
142
|
+
| Cross-platform OpenVPN | **OpenVPN** | `set_ovpn_server`, `create_ovpn_client` |
|
|
143
|
+
| Route / L2-bridge between sites | **GRE/IPIP/EoIP/VXLAN** | `create_gre_tunnel`, `create_eoip_tunnel`, `create_vxlan_tunnel` |
|
|
144
|
+
|
|
145
|
+
Not sure which? Invoke the **`choose-vpn-solution`** prompt and the server
|
|
146
|
+
recommends one and outlines the build. Details: **[docs/vpn-guide.md](docs/vpn-guide.md)**.
|
|
147
|
+
|
|
148
|
+
## Manage multiple devices
|
|
149
|
+
|
|
150
|
+
Give each router a name and the AI can drive them all from one conversation —
|
|
151
|
+
exactly what you need to **set up a tunnel between two MikroTiks and test it from
|
|
152
|
+
both ends**. Point the server at a JSON file (or `MIKROTIK_DEVICES`):
|
|
153
|
+
|
|
154
|
+
```jsonc
|
|
155
|
+
// devices.json
|
|
156
|
+
{
|
|
157
|
+
"defaultDevice": "site-a",
|
|
158
|
+
"devices": {
|
|
159
|
+
"site-a": { "host": "203.0.113.10", "username": "admin", "keyFilename": "/keys/site-a" },
|
|
160
|
+
"site-b": { "host": "198.51.100.20", "username": "admin", "password": "••••" }
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
mikrotik-mcp serve --config ./devices.json
|
|
167
|
+
mikrotik-mcp devices # site-a (default) · site-b
|
|
168
|
+
mikrotik-mcp auth-check # probes every device
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
When more than one device is configured, **every tool gains an optional `device`
|
|
172
|
+
argument** (a validated enum of your names); omit it to use the default. The AI
|
|
173
|
+
discovers names with `list_mikrotik_devices`, and **Safe Mode is per-device** so
|
|
174
|
+
each router commits independently. The **`setup-tunnel-between-sites`** prompt
|
|
175
|
+
drives the whole both-ends flow. Full guide: **[docs/multi-device.md](docs/multi-device.md)**.
|
|
176
|
+
|
|
177
|
+
```jsonc
|
|
178
|
+
// the AI calls a tool against a specific router:
|
|
179
|
+
// create_wireguard_interface { "device": "site-a", "name": "wg-to-b", "listen_port": 13231 }
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Built-in prompts
|
|
183
|
+
|
|
184
|
+
MCP **prompts** are one-click guided workflows. This server ships 9 — authored as
|
|
185
|
+
Markdown in [`prompts/`](prompts/), so you can edit or add your own without
|
|
186
|
+
touching code:
|
|
187
|
+
|
|
188
|
+
`harden-router` · `diagnose-connectivity` · `setup-guest-wifi` ·
|
|
189
|
+
`choose-vpn-solution` · `setup-wireguard-vpn` · `setup-ipsec-site-to-site` ·
|
|
190
|
+
`setup-l2tp-ipsec-roadwarrior` · `setup-tunnel-between-sites` · `backup-and-document`
|
|
191
|
+
|
|
192
|
+
See **[docs/prompts.md](docs/prompts.md)**.
|
|
193
|
+
|
|
194
|
+
## Transports
|
|
195
|
+
|
|
196
|
+
| Transport | When | Run |
|
|
197
|
+
|-----------|------|-----|
|
|
198
|
+
| **stdio** (default) | Claude Desktop, local MCP clients | `mikrotik-mcp serve` |
|
|
199
|
+
| **streamable-http** | Remote / shared, behind a proxy | `mikrotik-mcp serve --transport streamable-http --mcp-port 8000` |
|
|
200
|
+
| **sse** | Legacy HTTP clients | `mikrotik-mcp serve --transport sse` |
|
|
201
|
+
|
|
202
|
+
HTTP transports expose `POST /mcp` and a `GET /health` check, with DNS-rebinding
|
|
203
|
+
protection that reconciles with your bind host automatically. See
|
|
204
|
+
**[docs/transports.md](docs/transports.md)**.
|
|
205
|
+
|
|
206
|
+
## Safe Mode
|
|
207
|
+
|
|
208
|
+
```text
|
|
209
|
+
enable_safe_mode → (make changes) → commit_safe_mode # persist
|
|
210
|
+
→ rollback_safe_mode # discard
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
While active, every change is held in memory; if the SSH session drops (e.g. a
|
|
214
|
+
firewall rule that locks you out), RouterOS reverts everything automatically.
|
|
215
|
+
Commands issued during the window are routed through the same persistent session.
|
|
216
|
+
See **[docs/safe-mode.md](docs/safe-mode.md)**.
|
|
217
|
+
|
|
218
|
+
## Configuration
|
|
219
|
+
|
|
220
|
+
Connection and transport settings come from `MIKROTIK_*` env vars or matching CLI
|
|
221
|
+
flags (highest precedence last: defaults → env → flags).
|
|
222
|
+
|
|
223
|
+
| Variable | Flag | Default | Purpose |
|
|
224
|
+
|----------|------|---------|---------|
|
|
225
|
+
| `MIKROTIK_HOST` | `--host` | `127.0.0.1` | RouterOS host |
|
|
226
|
+
| `MIKROTIK_USERNAME` | `--username` | `admin` | SSH user |
|
|
227
|
+
| `MIKROTIK_PORT` | `--port` | `22` | SSH port |
|
|
228
|
+
| `MIKROTIK_PASSWORD` | `--password` | — | SSH password _(or use a key →)_ |
|
|
229
|
+
| `MIKROTIK_KEY_FILENAME` | `--key-filename` | — | SSH private-key file path |
|
|
230
|
+
| `MIKROTIK_PRIVATE_KEY` | `--private-key` | — | Inline private key (PEM) |
|
|
231
|
+
| `MIKROTIK_KEY_PASSPHRASE` | `--key-passphrase` | — | Passphrase for an encrypted key |
|
|
232
|
+
| `MIKROTIK_CONFIG_FILE` | `--config` | — | JSON file of named devices ([multi-device](docs/multi-device.md)) |
|
|
233
|
+
| `MIKROTIK_DEVICES` | `--devices` | — | Inline JSON of named devices |
|
|
234
|
+
| `MIKROTIK_MCP__TRANSPORT` | `--transport` | `stdio` | `stdio` / `streamable-http` / `sse` |
|
|
235
|
+
| `MIKROTIK_MCP__PORT` | `--mcp-port` | `8000` | HTTP bind port |
|
|
236
|
+
|
|
237
|
+
Full table (incl. HTTP host, allow-lists, timeouts, `MIKROTIK_LOG_LEVEL`):
|
|
238
|
+
**[docs/configuration.md](docs/configuration.md)**.
|
|
239
|
+
|
|
240
|
+
## Schemas
|
|
241
|
+
|
|
242
|
+
`schemas/` ships machine-readable JSON Schemas, **generated from the TypeScript
|
|
243
|
+
source** (`bun run gen:schemas`) so they can never drift:
|
|
244
|
+
|
|
245
|
+
- `schemas/tool-catalog.json` — all 466 tools with risk, description, and input schema
|
|
246
|
+
- `schemas/tools/<name>.json` — per-tool input schema
|
|
247
|
+
- `schemas/config.schema.json` — the runtime configuration
|
|
248
|
+
|
|
249
|
+
## Documentation
|
|
250
|
+
|
|
251
|
+
| Doc | |
|
|
252
|
+
|-----|---|
|
|
253
|
+
| [Getting started](docs/getting-started.md) | Install, verify, first run |
|
|
254
|
+
| [Configuration](docs/configuration.md) | Every env var & flag |
|
|
255
|
+
| [Multiple devices](docs/multi-device.md) | Manage several routers; per-call targeting |
|
|
256
|
+
| [Connecting clients](docs/connecting-clients.md) | Claude Desktop, stdio, HTTP |
|
|
257
|
+
| [Transports](docs/transports.md) | stdio / HTTP / SSE, DNS-rebinding |
|
|
258
|
+
| [Safe Mode](docs/safe-mode.md) | Transactional changes |
|
|
259
|
+
| **[VPN guide](docs/vpn-guide.md)** | Every tunnel type + how to build it |
|
|
260
|
+
| [Prompts](docs/prompts.md) | The 9 guided workflows |
|
|
261
|
+
| [Architecture](docs/architecture.md) | How it's built |
|
|
262
|
+
| [Security](docs/security.md) | Credentials, risk gating |
|
|
263
|
+
| [Tool reference](docs/tools-reference.md) | All 466 tools |
|
|
264
|
+
| [MCP Inspector](docs/inspector.md) | Test tools/prompts in the UI or CLI |
|
|
265
|
+
| [Development](docs/development.md) · [Docker](docs/docker.md) | Build, test, deploy |
|
|
266
|
+
|
|
267
|
+
## Development
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
bun run test:types # tsc --noEmit
|
|
271
|
+
bun test # unit tests
|
|
272
|
+
bun run gen # regenerate schemas/ + docs/tools-reference.md from source
|
|
273
|
+
bun run build # bundle to dist/
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
See **[docs/development.md](docs/development.md)** and [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
277
|
+
|
|
278
|
+
## Security
|
|
279
|
+
|
|
280
|
+
Talks to RouterOS over SSH using credentials you supply; nothing is sent anywhere
|
|
281
|
+
else. Tool values are quoted/escaped to prevent console-command injection.
|
|
282
|
+
Destructive and dangerous tools are annotated so clients can require confirmation,
|
|
283
|
+
and a plaintext-password-in-a-container warning nudges you toward key files or
|
|
284
|
+
secrets. Details: **[docs/security.md](docs/security.md)**. Only point this at
|
|
285
|
+
devices you're authorized to manage.
|
|
286
|
+
|
|
287
|
+
## License
|
|
288
|
+
|
|
289
|
+
[MIT](LICENSE). Reuse freely. No warranty.
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
<div align="center">
|
|
294
|
+
<img src="assets/logo-icon.svg" width="56" alt="" /><br/>
|
|
295
|
+
Made with ❤️ by <a href="https://github.com/ali-master">Ali Torki</a>
|
|
296
|
+
</div>
|