@usex/mikrotik-mcp 1.0.0 → 2.1.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 +23 -8
- package/dist/cli.js +8571 -2330
- package/dist/index.d.ts +42 -2
- package/dist/index.js +7798 -2226
- package/dist/ui/dashboard.html +19 -0
- package/dist/ui/firewall.html +20 -0
- package/dist/ui/interfaces.html +20 -0
- package/dist/ui/observability.html +27 -0
- package/dist/ui/records.html +20 -0
- package/package.json +63 -50
- package/schemas/README.md +1 -1
- package/schemas/config.schema.json +112 -21
- package/schemas/tool-catalog.json +11783 -5555
- package/schemas/tools/add_dot1x_client.json +42 -0
- package/schemas/tools/add_dot1x_server.json +60 -0
- package/schemas/tools/add_graphing_interface.json +23 -0
- package/schemas/tools/add_graphing_queue.json +22 -0
- package/schemas/tools/add_graphing_resource.json +14 -0
- package/schemas/tools/add_ipv6_address.json +43 -0
- package/schemas/tools/add_ipv6_address_list_entry.json +32 -0
- package/schemas/tools/add_ipv6_default_route.json +34 -0
- package/schemas/tools/add_ipv6_dhcp_binding.json +42 -0
- package/schemas/tools/add_ipv6_dhcp_client.json +69 -0
- package/schemas/tools/add_ipv6_dhcp_option.json +29 -0
- package/schemas/tools/add_ipv6_dhcp_relay.json +35 -0
- package/schemas/tools/add_ipv6_nd.json +68 -0
- package/schemas/tools/add_ipv6_nd_prefix.json +35 -0
- package/schemas/tools/add_ipv6_route.json +64 -0
- package/schemas/tools/add_romon_port.json +34 -0
- package/schemas/tools/add_switch_port_isolation.json +23 -0
- package/schemas/tools/add_switch_rule.json +96 -0
- package/schemas/tools/add_traffic_generator_port.json +23 -0
- package/schemas/tools/add_traffic_generator_stream.json +39 -0
- package/schemas/tools/add_traffic_monitor.json +54 -0
- package/schemas/tools/create_ipv6_dhcp_server.json +60 -0
- package/schemas/tools/create_ipv6_filter_rule.json +103 -0
- package/schemas/tools/create_ipv6_mangle_rule.json +110 -0
- package/schemas/tools/create_ipv6_nat_rule.json +88 -0
- package/schemas/tools/create_ipv6_pool.json +29 -0
- package/schemas/tools/create_ipv6_raw_rule.json +78 -0
- package/schemas/tools/delete_s3_backup.json +15 -0
- package/schemas/tools/disable_ipv6_address_list_entry.json +15 -0
- package/schemas/tools/disable_ipv6_dhcp_relay.json +14 -0
- package/schemas/tools/disable_ipv6_filter_rule.json +14 -0
- package/schemas/tools/disable_ipv6_mangle_rule.json +14 -0
- package/schemas/tools/disable_ipv6_nat_rule.json +14 -0
- package/schemas/tools/disable_ipv6_raw_rule.json +14 -0
- package/schemas/tools/disable_ipv6_route.json +14 -0
- package/schemas/tools/disable_switch_rule.json +14 -0
- package/schemas/tools/disable_traffic_monitor.json +14 -0
- package/schemas/tools/download_backup_from_s3.json +25 -0
- package/schemas/tools/enable_ipv6_address_list_entry.json +15 -0
- package/schemas/tools/enable_ipv6_dhcp_relay.json +14 -0
- package/schemas/tools/enable_ipv6_filter_rule.json +14 -0
- package/schemas/tools/enable_ipv6_mangle_rule.json +14 -0
- package/schemas/tools/enable_ipv6_nat_rule.json +14 -0
- package/schemas/tools/enable_ipv6_raw_rule.json +14 -0
- package/schemas/tools/enable_ipv6_route.json +14 -0
- package/schemas/tools/enable_switch_rule.json +14 -0
- package/schemas/tools/enable_traffic_monitor.json +14 -0
- package/schemas/tools/flood_ping.json +37 -0
- package/schemas/tools/get_bandwidth_server.json +7 -0
- package/schemas/tools/get_dot1x_client.json +15 -0
- package/schemas/tools/get_dot1x_server.json +15 -0
- package/schemas/tools/get_ipv6_address.json +15 -0
- package/schemas/tools/get_ipv6_address_list_entry.json +15 -0
- package/schemas/tools/get_ipv6_dhcp_client.json +15 -0
- package/schemas/tools/get_ipv6_dhcp_relay.json +14 -0
- package/schemas/tools/get_ipv6_dhcp_server.json +14 -0
- package/schemas/tools/get_ipv6_filter_rule.json +15 -0
- package/schemas/tools/get_ipv6_mangle_rule.json +15 -0
- package/schemas/tools/get_ipv6_nat_rule.json +15 -0
- package/schemas/tools/get_ipv6_nd.json +15 -0
- package/schemas/tools/get_ipv6_neighbor.json +15 -0
- package/schemas/tools/get_ipv6_pool.json +14 -0
- package/schemas/tools/get_ipv6_raw_rule.json +15 -0
- package/schemas/tools/get_ipv6_route.json +15 -0
- package/schemas/tools/get_ipv6_settings.json +7 -0
- package/schemas/tools/get_mac_ping.json +7 -0
- package/schemas/tools/get_mac_server.json +7 -0
- package/schemas/tools/get_mac_winbox.json +7 -0
- package/schemas/tools/get_queue_interface.json +15 -0
- package/schemas/tools/get_romon.json +7 -0
- package/schemas/tools/get_sms_settings.json +7 -0
- package/schemas/tools/get_sniffer_settings.json +7 -0
- package/schemas/tools/get_switch.json +15 -0
- package/schemas/tools/get_switch_port.json +15 -0
- package/schemas/tools/get_switch_port_isolation.json +15 -0
- package/schemas/tools/get_switch_rule.json +15 -0
- package/schemas/tools/get_traffic_monitor.json +14 -0
- package/schemas/tools/ip_scan.json +26 -0
- package/schemas/tools/list_bandwidth_server_sessions.json +12 -0
- package/schemas/tools/list_dot1x_clients.json +22 -0
- package/schemas/tools/list_dot1x_servers.json +18 -0
- package/schemas/tools/list_graphing.json +20 -0
- package/schemas/tools/list_ipv6_address_lists.json +24 -0
- package/schemas/tools/list_ipv6_addresses.json +31 -0
- package/schemas/tools/list_ipv6_dhcp_bindings.json +21 -0
- package/schemas/tools/list_ipv6_dhcp_clients.json +27 -0
- package/schemas/tools/list_ipv6_dhcp_options.json +11 -0
- package/schemas/tools/list_ipv6_dhcp_relays.json +21 -0
- package/schemas/tools/list_ipv6_dhcp_servers.json +26 -0
- package/schemas/tools/list_ipv6_filter_rules.json +43 -0
- package/schemas/tools/list_ipv6_mangle_rules.json +37 -0
- package/schemas/tools/list_ipv6_nat_rules.json +37 -0
- package/schemas/tools/list_ipv6_nd.json +18 -0
- package/schemas/tools/list_ipv6_nd_prefixes.json +21 -0
- package/schemas/tools/list_ipv6_neighbors.json +29 -0
- package/schemas/tools/list_ipv6_pool_used.json +12 -0
- package/schemas/tools/list_ipv6_pools.json +14 -0
- package/schemas/tools/list_ipv6_raw_rules.json +37 -0
- package/schemas/tools/list_ipv6_routes.json +34 -0
- package/schemas/tools/list_mac_server_sessions.json +11 -0
- package/schemas/tools/list_queue_interfaces.json +16 -0
- package/schemas/tools/list_romon_ports.json +11 -0
- package/schemas/tools/list_s3_backups.json +22 -0
- package/schemas/tools/list_sms_inbox.json +12 -0
- package/schemas/tools/list_sniffer_connections.json +7 -0
- package/schemas/tools/list_sniffer_hosts.json +11 -0
- package/schemas/tools/list_sniffer_packets.json +15 -0
- package/schemas/tools/list_sniffer_protocols.json +7 -0
- package/schemas/tools/list_switch_port_isolation.json +12 -0
- package/schemas/tools/list_switch_ports.json +16 -0
- package/schemas/tools/list_switch_rules.json +21 -0
- package/schemas/tools/list_switches.json +16 -0
- package/schemas/tools/list_traffic_generator_ports.json +11 -0
- package/schemas/tools/list_traffic_generator_streams.json +14 -0
- package/schemas/tools/list_traffic_monitors.json +21 -0
- package/schemas/tools/move_ipv6_filter_rule.json +21 -0
- package/schemas/tools/move_ipv6_mangle_rule.json +21 -0
- package/schemas/tools/move_ipv6_nat_rule.json +21 -0
- package/schemas/tools/move_ipv6_raw_rule.json +21 -0
- package/schemas/tools/profile_cpu.json +22 -0
- package/schemas/tools/release_ipv6_dhcp_client.json +14 -0
- package/schemas/tools/remove_dot1x_client.json +15 -0
- package/schemas/tools/remove_dot1x_server.json +15 -0
- package/schemas/tools/remove_graphing.json +24 -0
- package/schemas/tools/remove_ipv6_address.json +14 -0
- package/schemas/tools/remove_ipv6_address_list_entry.json +15 -0
- package/schemas/tools/remove_ipv6_dhcp_binding.json +15 -0
- package/schemas/tools/remove_ipv6_dhcp_client.json +14 -0
- package/schemas/tools/remove_ipv6_dhcp_option.json +14 -0
- package/schemas/tools/remove_ipv6_dhcp_relay.json +14 -0
- package/schemas/tools/remove_ipv6_dhcp_server.json +14 -0
- package/schemas/tools/remove_ipv6_filter_rule.json +14 -0
- package/schemas/tools/remove_ipv6_mangle_rule.json +14 -0
- package/schemas/tools/remove_ipv6_nat_rule.json +14 -0
- package/schemas/tools/remove_ipv6_nd.json +15 -0
- package/schemas/tools/remove_ipv6_nd_prefix.json +15 -0
- package/schemas/tools/remove_ipv6_neighbor.json +15 -0
- package/schemas/tools/remove_ipv6_pool.json +14 -0
- package/schemas/tools/remove_ipv6_raw_rule.json +14 -0
- package/schemas/tools/remove_ipv6_route.json +15 -0
- package/schemas/tools/remove_romon_port.json +15 -0
- package/schemas/tools/remove_switch_port_isolation.json +15 -0
- package/schemas/tools/remove_switch_rule.json +14 -0
- package/schemas/tools/remove_traffic_generator_port.json +15 -0
- package/schemas/tools/remove_traffic_generator_stream.json +15 -0
- package/schemas/tools/remove_traffic_monitor.json +14 -0
- package/schemas/tools/renew_ipv6_dhcp_client.json +14 -0
- package/schemas/tools/s3_backup_info.json +15 -0
- package/schemas/tools/s3_backup_status.json +7 -0
- package/schemas/tools/save_sniffer.json +15 -0
- package/schemas/tools/send_sms.json +34 -0
- package/schemas/tools/show_firewall_filter.json +7 -0
- package/schemas/tools/show_interfaces.json +7 -0
- package/schemas/tools/show_system_dashboard.json +7 -0
- package/schemas/tools/speed_test.json +47 -0
- package/schemas/tools/start_sniffer.json +7 -0
- package/schemas/tools/start_traffic_generator.json +14 -0
- package/schemas/tools/stop_sniffer.json +7 -0
- package/schemas/tools/stop_traffic_generator.json +7 -0
- package/schemas/tools/update_bandwidth_server.json +24 -0
- package/schemas/tools/update_dot1x_client.json +36 -0
- package/schemas/tools/update_dot1x_server.json +54 -0
- package/schemas/tools/update_ipv6_filter_rule.json +77 -0
- package/schemas/tools/update_ipv6_mangle_rule.json +80 -0
- package/schemas/tools/update_ipv6_nat_rule.json +65 -0
- package/schemas/tools/update_ipv6_nd.json +64 -0
- package/schemas/tools/update_ipv6_pool.json +28 -0
- package/schemas/tools/update_ipv6_raw_rule.json +59 -0
- package/schemas/tools/update_ipv6_settings.json +35 -0
- package/schemas/tools/update_mac_ping.json +15 -0
- package/schemas/tools/update_mac_server.json +15 -0
- package/schemas/tools/update_mac_winbox.json +15 -0
- package/schemas/tools/update_queue_interface.json +20 -0
- package/schemas/tools/update_romon.json +19 -0
- package/schemas/tools/update_sms_settings.json +30 -0
- package/schemas/tools/update_sniffer_settings.json +39 -0
- package/schemas/tools/update_switch.json +34 -0
- package/schemas/tools/update_switch_port.json +39 -0
- package/schemas/tools/update_switch_port_isolation.json +22 -0
- package/schemas/tools/update_switch_rule.json +83 -0
- package/schemas/tools/update_traffic_monitor.json +46 -0
- package/schemas/tools/upload_backup_to_s3.json +25 -0
- package/schemas/tools/wake_on_lan.json +19 -0
package/dist/index.d.ts
CHANGED
|
@@ -35,12 +35,40 @@ declare function executeMikrotikCommand(command: string, ctx: ToolContext): Prom
|
|
|
35
35
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
36
36
|
import { ToolAnnotations } from "@modelcontextprotocol/sdk/types.js";
|
|
37
37
|
import { ZodRawShape } from "zod";
|
|
38
|
+
/** Links a tool to an MCP App view resource. */
|
|
39
|
+
interface UiLink {
|
|
40
|
+
/** `ui://…` resource URI of the HTML view the host should render. */
|
|
41
|
+
resourceUri: string;
|
|
42
|
+
/**
|
|
43
|
+
* Where the tool may be invoked from. `"model"` lets the LLM call it;
|
|
44
|
+
* `"app"` lets the rendered view call it (e.g. polling/refresh helpers).
|
|
45
|
+
* Defaults to model-visible when omitted.
|
|
46
|
+
*/
|
|
47
|
+
visibility?: ("model" | "app")[];
|
|
48
|
+
}
|
|
38
49
|
/** Options threaded into every tool registration. */
|
|
39
50
|
interface RegisterOptions {
|
|
40
51
|
sendLog?: SendLog;
|
|
41
52
|
/** Configured device names; when more than one, a `device` selector is injected. */
|
|
42
53
|
deviceNames?: string[];
|
|
54
|
+
/**
|
|
55
|
+
* Read-only mode: register only tools annotated `readOnlyHint`. Used to
|
|
56
|
+
* withhold every write/destructive tool from a publicly-exposed surface (e.g.
|
|
57
|
+
* a ChatGPT Apps connector) until authentication is in place.
|
|
58
|
+
*/
|
|
59
|
+
readOnly?: boolean;
|
|
43
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* A handler may return plain text (the common case — wrapped as the model-facing
|
|
63
|
+
* result) or a structured payload. `structuredContent` is the data an MCP App
|
|
64
|
+
* view renders; `text` remains the fallback shown to the model and to text-only
|
|
65
|
+
* hosts, so UI is always additive.
|
|
66
|
+
*/
|
|
67
|
+
interface ToolResult {
|
|
68
|
+
text: string;
|
|
69
|
+
structuredContent?: Record<string, unknown>;
|
|
70
|
+
}
|
|
71
|
+
type HandlerOutput = string | ToolResult;
|
|
44
72
|
interface ToolDef<Shape extends ZodRawShape> {
|
|
45
73
|
/** Stable tool id exposed to MCP clients. */
|
|
46
74
|
name: string;
|
|
@@ -52,8 +80,14 @@ interface ToolDef<Shape extends ZodRawShape> {
|
|
|
52
80
|
annotations: ToolAnnotations;
|
|
53
81
|
/** Zod raw shape describing the tool's parameters. */
|
|
54
82
|
inputSchema?: Shape;
|
|
55
|
-
/**
|
|
56
|
-
|
|
83
|
+
/**
|
|
84
|
+
* Optional MCP App view: links this tool to a `ui://…` HTML resource the host
|
|
85
|
+
* renders inline. When set, the tool should return `structuredContent` for the
|
|
86
|
+
* view (it still returns `text` for non-UI hosts).
|
|
87
|
+
*/
|
|
88
|
+
ui?: UiLink;
|
|
89
|
+
/** Handler returning the result shown to the model (text, or text + structured data). */
|
|
90
|
+
handler: (args: any, ctx: ToolContext) => Promise<HandlerOutput> | HandlerOutput;
|
|
57
91
|
}
|
|
58
92
|
interface RegisterableTool {
|
|
59
93
|
name: string;
|
|
@@ -61,6 +95,8 @@ interface RegisterableTool {
|
|
|
61
95
|
annotations: ToolAnnotations;
|
|
62
96
|
inputSchema?: ZodRawShape;
|
|
63
97
|
description: string;
|
|
98
|
+
/** Present when the tool renders an MCP App view. */
|
|
99
|
+
ui?: UiLink;
|
|
64
100
|
register: (server: McpServer, opts?: RegisterOptions) => void;
|
|
65
101
|
}
|
|
66
102
|
declare function defineTool<Shape extends ZodRawShape>(def: ToolDef<Shape>): RegisterableTool;
|
|
@@ -86,6 +122,10 @@ interface CreatedServer {
|
|
|
86
122
|
server: McpServer2;
|
|
87
123
|
toolCount: number;
|
|
88
124
|
promptCount: number;
|
|
125
|
+
/** Number of MCP App `ui://` views registered as resources. */
|
|
126
|
+
uiViewCount: number;
|
|
127
|
+
/** True when only read-only tools were registered. */
|
|
128
|
+
readOnly: boolean;
|
|
89
129
|
}
|
|
90
130
|
declare function createServer(opts?: {
|
|
91
131
|
sendLog?: SendLog;
|