@usex/mikrotik-mcp 3.42.0 → 3.43.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usex/mikrotik-mcp",
3
- "version": "3.42.0",
3
+ "version": "3.43.0",
4
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",
@@ -284,6 +284,34 @@
284
284
  ],
285
285
  "additionalProperties": false
286
286
  },
287
+ "ssh": {
288
+ "default": {
289
+ "keepAlive": true,
290
+ "keepAliveInterval": 10000,
291
+ "idleTimeout": 30000
292
+ },
293
+ "type": "object",
294
+ "properties": {
295
+ "keepAlive": {
296
+ "default": true,
297
+ "type": "boolean"
298
+ },
299
+ "keepAliveInterval": {
300
+ "default": 10000,
301
+ "type": "integer",
302
+ "minimum": 0,
303
+ "maximum": 9007199254740991
304
+ },
305
+ "idleTimeout": {
306
+ "default": 30000,
307
+ "type": "integer",
308
+ "exclusiveMinimum": 0,
309
+ "maximum": 9007199254740991
310
+ }
311
+ },
312
+ "required": ["keepAlive", "keepAliveInterval", "idleTimeout"],
313
+ "additionalProperties": false
314
+ },
287
315
  "readOnly": {
288
316
  "default": false,
289
317
  "type": "boolean"
@@ -333,6 +361,6 @@
333
361
  "type": "string"
334
362
  }
335
363
  },
336
- "required": ["devices", "defaultDevice", "mcp", "dashboard", "readOnly", "tools"],
364
+ "required": ["devices", "defaultDevice", "mcp", "dashboard", "ssh", "readOnly", "tools"],
337
365
  "additionalProperties": false
338
366
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "3.34.0",
3
+ "version": "3.42.0",
4
4
  "generated": "by scripts/gen-schemas.ts — do not edit by hand",
5
5
  "toolCount": 767,
6
6
  "tools": [
@@ -3117,7 +3117,7 @@
3117
3117
  "idempotentHint": true,
3118
3118
  "openWorldHint": false
3119
3119
  },
3120
- "description": "Resolves which nexthop RouterOS would use for a given IPv4 destination (`/ip route check`) — answers \"which gateway will this packet take?\" without sending any traffic. Optionally scoped by `source` address and `routing_mark` for policy-routing table lookups. For listing all known routes use list_routes; for a named-table view use get_routing_table. Returns the resolved nexthop and interface detail.",
3120
+ "description": "Resolves which nexthop RouterOS would use for a given IPv4 destination — answers \"which gateway will this packet take?\" without sending any traffic. Version-aware: uses `/ip route check` on v6, falls back to `/ip route print where dst-address in <dest> active=yes` on v7+ where the check command was removed. Optionally scoped by `routing_table` (v7) / `routing_mark` (v6) for policy-routing table lookups. For listing all known routes use list_routes; for a named-table view use get_routing_table. Returns the resolved nexthop and interface detail.",
3121
3121
  "inputSchema": {
3122
3122
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3123
3123
  "type": "object",
@@ -3125,10 +3125,8 @@
3125
3125
  "destination": {
3126
3126
  "type": "string"
3127
3127
  },
3128
- "source": {
3129
- "type": "string"
3130
- },
3131
- "routing_mark": {
3128
+ "routing_table": {
3129
+ "description": "Policy-routing table name (v7) or routing-mark (v6), e.g. \"VPN\"",
3132
3130
  "type": "string"
3133
3131
  }
3134
3132
  },
@@ -25759,28 +25757,24 @@
25759
25757
  },
25760
25758
  {
25761
25759
  "name": "download_file",
25762
- "title": "Download File as Base64",
25760
+ "title": "Download File from Device",
25763
25761
  "risk": "read",
25764
25762
  "annotations": {
25765
25763
  "readOnlyHint": true,
25766
25764
  "idempotentHint": true,
25767
25765
  "openWorldHint": false
25768
25766
  },
25769
- "description": "Attempts to read a file from the device filesystem via `/file print file=<filename>` and returns the RouterOS API text response base64-encoded as `FILE_CONTENT_BASE64:<data>`. NOTE: this is a simplified implementation. RouterOS has no file-content-read API over SSH; `/file print file=<name>` saves the directory-listing output to a file named `<name>` rather than streaming an existing file's bytes. The returned base64 payload is the RouterOS text response to that command — not the actual file contents. Binary `.backup` files cannot be reliably retrieved this way. Verifies file existence first (`/file print count-only where name=<filename>`); returns a not-found message if absent. To list available files use `list_backups`; for file metadata only use `backup_info`.",
25767
+ "description": "Downloads a file from the device filesystem over SFTP and returns its raw bytes base64-encoded as `FILE_CONTENT_BASE64:<data>`. Works for any file type `.backup`, `.rsc`, `.p12` certificates, keys, etc. Verifies file existence first (`/file print count-only`). The SSH user MUST have the `read` policy (and `sensitive` for `.backup` / certificate files) on RouterOS for SFTP downloads to work. NOT available on MAC-Telnet devices (Layer-2 has no file transfer). To list available files use `list_backups`; for file metadata use `backup_info`; to push a file onto the device use `upload_file`.",
25770
25768
  "inputSchema": {
25771
25769
  "$schema": "https://json-schema.org/draft/2020-12/schema",
25772
25770
  "type": "object",
25773
25771
  "properties": {
25774
25772
  "filename": {
25775
- "type": "string"
25776
- },
25777
- "file_type": {
25778
- "default": "backup",
25779
25773
  "type": "string",
25780
- "enum": ["backup", "export"]
25774
+ "description": "Name of the file on the device, e.g. 'cert.p12' or 'backup.backup'"
25781
25775
  }
25782
25776
  },
25783
- "required": ["filename", "file_type"],
25777
+ "required": ["filename"],
25784
25778
  "additionalProperties": false
25785
25779
  }
25786
25780
  },
@@ -27256,7 +27250,7 @@
27256
27250
  "destructiveHint": true,
27257
27251
  "openWorldHint": false
27258
27252
  },
27259
- "description": "Rehearses a disaster safely: INSIDE SAFE MODE it disables a target (a WAN/tunnel interface, or a route), pings `verify_host` to check the backup path actually carries traffic, then ROLLS BACK Safe Mode auto-reverts, so the change is never committed. Proves your failover works without a real outage. Requires `confirm=true` to run (it briefly disrupts traffic on the target); with confirm=false it just describes the drill. SSH-only (Safe Mode is unavailable on MAC-Telnet). Returns whether connectivity held during the simulated failure.",
27253
+ "description": "Rehearses a disaster: disables a target (a WAN/tunnel interface, or a route), pings `verify_host` to check the backup path actually carries traffic, then RE-ENABLES the target. Prefers Safe Mode (auto-revert on disconnect) but falls back to direct commands when Safe Mode is unavailable. Proves your failover works without a real outage. Requires `confirm=true` to run (it briefly disrupts traffic on the target); with confirm=false it just describes the drill. Returns whether connectivity held during the simulated failure.",
27260
27254
  "inputSchema": {
27261
27255
  "$schema": "https://json-schema.org/draft/2020-12/schema",
27262
27256
  "type": "object",
@@ -6,10 +6,8 @@
6
6
  "destination": {
7
7
  "type": "string"
8
8
  },
9
- "source": {
10
- "type": "string"
11
- },
12
- "routing_mark": {
9
+ "routing_table": {
10
+ "description": "Policy-routing table name (v7) or routing-mark (v6), e.g. \"VPN\"",
13
11
  "type": "string"
14
12
  }
15
13
  },
@@ -4,14 +4,10 @@
4
4
  "type": "object",
5
5
  "properties": {
6
6
  "filename": {
7
- "type": "string"
8
- },
9
- "file_type": {
10
- "default": "backup",
11
7
  "type": "string",
12
- "enum": ["backup", "export"]
8
+ "description": "Name of the file on the device, e.g. 'cert.p12' or 'backup.backup'"
13
9
  }
14
10
  },
15
- "required": ["filename", "file_type"],
11
+ "required": ["filename"],
16
12
  "additionalProperties": false
17
13
  }