@usex/mikrotik-mcp 3.8.0 → 3.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usex/mikrotik-mcp",
3
- "version": "3.8.0",
3
+ "version": "3.9.1",
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",
package/schemas/README.md CHANGED
@@ -7,7 +7,7 @@ edit by hand — regenerate instead.
7
7
  | File | Contents |
8
8
  | -------------------- | ------------------------------------------------------------------------------------------ |
9
9
  | `config.schema.json` | The runtime configuration object (env vars / CLI flags). |
10
- | `tool-catalog.json` | Every one of the 706 tools: `name`, `risk`, `title`, `description`, and input JSON Schema. |
10
+ | `tool-catalog.json` | Every one of the 707 tools: `name`, `risk`, `title`, `description`, and input JSON Schema. |
11
11
  | `tools/<name>.json` | The input JSON Schema for a single tool. |
12
12
 
13
13
  `risk` is derived from the MCP tool annotations:
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "3.7.0",
3
+ "version": "3.8.0",
4
4
  "generated": "by scripts/gen-schemas.ts — do not edit by hand",
5
- "toolCount": 706,
5
+ "toolCount": 707,
6
6
  "tools": [
7
7
  {
8
8
  "name": "list_interfaces",
@@ -11721,7 +11721,7 @@
11721
11721
  "idempotentHint": true,
11722
11722
  "openWorldHint": false
11723
11723
  },
11724
- "description": "Lists WireGuard tunnel interfaces (`/interface wireguard print`). Returns each interface's name, listen-port, public-key, MTU, and running/disabled status. Supports filtering by name substring (name_filter), disabled-only, or running-only. For the peer table use list_wireguard_peers. Use the name from this output with get_wireguard_interface or update_wireguard_interface.",
11724
+ "description": "`list_wireguard_interfaces` — READ / list / show / inspect all WireGuard tunnel interfaces (`/interface wireguard print`). The go-to tool to read the current WireGuard state on a device. Returns each interface's name, listen-port, public-key, MTU, and running/disabled status. Filter by name substring (name_filter), disabled-only, or running-only. For one interface's full detail use get_wireguard_interface; for the peer table use list_wireguard_peers; for interfaces AND peers in one call use get_wireguard_status.",
11725
11725
  "inputSchema": {
11726
11726
  "$schema": "https://json-schema.org/draft/2020-12/schema",
11727
11727
  "type": "object",
@@ -11751,7 +11751,7 @@
11751
11751
  "idempotentHint": true,
11752
11752
  "openWorldHint": false
11753
11753
  },
11754
- "description": "Retrieves full detail of a single WireGuard tunnel interface (`/interface wireguard print detail`) looked up by name. Returns listen-port, private-key, public-key, MTU, running state, and comment. For the peer table use get_wireguard_peer. Use list_wireguard_interfaces to discover available interface names.",
11754
+ "description": "`get_wireguard_interface` — READ / get / show the full detail of ONE WireGuard tunnel interface (`/interface wireguard print detail`) looked up by name. Returns listen-port, private-key, public-key, MTU, running state, and comment. To list all interfaces use list_wireguard_interfaces; for that interface's peers use list_wireguard_peers; for interfaces AND peers in one call use get_wireguard_status.",
11755
11755
  "inputSchema": {
11756
11756
  "$schema": "https://json-schema.org/draft/2020-12/schema",
11757
11757
  "type": "object",
@@ -11764,6 +11764,28 @@
11764
11764
  "additionalProperties": false
11765
11765
  }
11766
11766
  },
11767
+ {
11768
+ "name": "get_wireguard_status",
11769
+ "title": "Get WireGuard Status (Interfaces + Peers)",
11770
+ "risk": "read",
11771
+ "annotations": {
11772
+ "readOnlyHint": true,
11773
+ "idempotentHint": true,
11774
+ "openWorldHint": false
11775
+ },
11776
+ "description": "`get_wireguard_status` — READ the current WireGuard state on a device in ONE call: ALL tunnel interfaces AND ALL peers together. Use this FIRST to inspect / show / check WireGuard before changing anything (e.g. to read public keys, see which side initiates, or confirm the tunnel is up). Interfaces report name, listen-port, public-key, MTU and running state; peers report .id, interface, public-key, allowed-address, endpoint/current-endpoint, last-handshake time and rx/tx bytes. Combines list_wireguard_interfaces + list_wireguard_peers; optionally filter both to one interface with interface_filter.",
11777
+ "inputSchema": {
11778
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
11779
+ "type": "object",
11780
+ "properties": {
11781
+ "interface_filter": {
11782
+ "description": "Limit to one interface name, e.g. 'wg-mesh'",
11783
+ "type": "string"
11784
+ }
11785
+ },
11786
+ "additionalProperties": false
11787
+ }
11788
+ },
11767
11789
  {
11768
11790
  "name": "update_wireguard_interface",
11769
11791
  "title": "Update WireGuard Interface",
@@ -11934,7 +11956,7 @@
11934
11956
  "idempotentHint": true,
11935
11957
  "openWorldHint": false
11936
11958
  },
11937
- "description": "Lists all WireGuard peer entries (`/interface wireguard peers print`). Returns each peer's .id, interface, public-key, allowed-address, endpoint, last-handshake time, and rx/tx byte counters. Filter by interface name (interface_filter) or disabled-only. For the interface table use list_wireguard_interfaces. Use the .id from this output with get_wireguard_peer, update_wireguard_peer, remove_wireguard_peer, enable_wireguard_peer, or disable_wireguard_peer.",
11959
+ "description": "`list_wireguard_peers` — READ / list / show / inspect all WireGuard peers (`/interface wireguard peers print`). Use this to read which peers are configured and whether the tunnel is up (handshake). Returns each peer's .id, interface, public-key, allowed-address, endpoint/current-endpoint, last-handshake time, and rx/tx byte counters. Filter by interface name (interface_filter) or disabled-only. For the interface table use list_wireguard_interfaces; for one peer's full detail use get_wireguard_peer; for interfaces AND peers in one call use get_wireguard_status. Use the .id from this output with update_wireguard_peer, remove_wireguard_peer, enable_wireguard_peer, or disable_wireguard_peer.",
11938
11960
  "inputSchema": {
11939
11961
  "$schema": "https://json-schema.org/draft/2020-12/schema",
11940
11962
  "type": "object",
@@ -11960,7 +11982,7 @@
11960
11982
  "idempotentHint": true,
11961
11983
  "openWorldHint": false
11962
11984
  },
11963
- "description": "Retrieves full detail of a single WireGuard peer (`/interface wireguard peers print detail`) by its .id. Returns public-key, allowed-address, endpoint, preshared-key presence, last-handshake time, and rx/tx bytes. For the interface table use get_wireguard_interface. Use list_wireguard_peers to obtain peer .id values.\n\nNotes:\n peer_id: the .id from list_wireguard_peers, format \"*N\" or \"N\" e.g. \"*2\"",
11985
+ "description": "`get_wireguard_peer` — READ / get / show the full detail of ONE WireGuard peer (`/interface wireguard peers print detail`) by its .id. Returns public-key, allowed-address, endpoint/current-endpoint, preshared-key presence, last-handshake time, and rx/tx bytes. To list all peers use list_wireguard_peers; for interfaces AND peers in one call use get_wireguard_status.\n\nNotes:\n peer_id: the .id from list_wireguard_peers, format \"*N\" or \"N\" e.g. \"*2\"",
11964
11986
  "inputSchema": {
11965
11987
  "$schema": "https://json-schema.org/draft/2020-12/schema",
11966
11988
  "type": "object",
@@ -0,0 +1,12 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "get_wireguard_status",
4
+ "type": "object",
5
+ "properties": {
6
+ "interface_filter": {
7
+ "description": "Limit to one interface name, e.g. 'wg-mesh'",
8
+ "type": "string"
9
+ }
10
+ },
11
+ "additionalProperties": false
12
+ }