@usex/mikrotik-mcp 4.1.0 → 4.2.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/dist/cli.js CHANGED
@@ -106,7 +106,7 @@ import {
106
106
  updateAaaEntity,
107
107
  updateSummaryLine,
108
108
  writeBackup
109
- } from "./shared/cli-2dtt405d.js";
109
+ } from "./shared/cli-365rqpy1.js";
110
110
 
111
111
  // src/cli.ts
112
112
  import { existsSync as existsSync2 } from "fs";
package/dist/index.js CHANGED
@@ -29,7 +29,7 @@ import {
29
29
  selectToolModules,
30
30
  setConfig,
31
31
  updateSummaryLine
32
- } from "./shared/library-pqnndx9v.js";
32
+ } from "./shared/library-ndn9hj45.js";
33
33
  // src/server.ts
34
34
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
35
35
  import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
@@ -4,7 +4,7 @@ import {
4
4
  allToolModules,
5
5
  moduleCatalog,
6
6
  selectToolModules
7
- } from "./cli-2dtt405d.js";
7
+ } from "./cli-365rqpy1.js";
8
8
  export {
9
9
  selectToolModules,
10
10
  moduleCatalog,
@@ -8364,7 +8364,7 @@ var cache = null;
8364
8364
  async function gateway() {
8365
8365
  if (cache)
8366
8366
  return cache;
8367
- const { moduleCatalog } = await import("./cli-kq9jry12.js");
8367
+ const { moduleCatalog } = await import("./cli-10a2apr1.js");
8368
8368
  const forIndex = [];
8369
8369
  const byName = new Map;
8370
8370
  for (const mod of moduleCatalog) {
@@ -10158,23 +10158,26 @@ Management access may be partially restricted \u2014 review immediately.`;
10158
10158
 
10159
10159
  // src/tools/firewall-filter.ts
10160
10160
  import { z as z28 } from "zod";
10161
- var isDigits = (s) => /^\d+$/.test(s);
10162
- async function resolveFilterRuleId(ruleId, ctx) {
10163
- if (/^\d+$/.test(ruleId)) {
10164
- const id = `*${ruleId}`;
10165
- const byId = await executeMikrotikCommand(`/ip firewall filter print count-only where .id=${id}`, ctx);
10166
- if (byId.trim() !== "0")
10167
- return id;
10168
- const idsRaw = await executeMikrotikCommand(`:foreach i in=[/ip firewall filter find] do={:put $i}`, ctx);
10169
- if (isEmpty(idsRaw))
10170
- return null;
10171
- const ids = idsRaw.trim().split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
10172
- const pos = Number.parseInt(ruleId, 10);
10173
- return pos >= 0 && pos < ids.length ? ids[pos] : null;
10174
- }
10175
- const count = await executeMikrotikCommand(`/ip firewall filter print count-only where .id=${ruleId}`, ctx);
10176
- return count.trim() !== "0" ? ruleId : null;
10161
+
10162
+ // src/tools/_resolve-rule-id.ts
10163
+ function ruleResolver(scope) {
10164
+ return async function resolveRuleId(ruleId, ctx) {
10165
+ if (/^\d+$/.test(ruleId)) {
10166
+ const idsRaw = await executeMikrotikCommand(`:foreach i in=[${scope} find] do={:put $i}`, ctx);
10167
+ if (isEmpty(idsRaw))
10168
+ return null;
10169
+ const ids = idsRaw.trim().split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
10170
+ const pos = Number.parseInt(ruleId, 10);
10171
+ return pos >= 0 && pos < ids.length ? ids[pos] : null;
10172
+ }
10173
+ const count = await executeMikrotikCommand(`${scope} print count-only where .id=${ruleId}`, ctx);
10174
+ return count.trim() !== "0" ? ruleId : null;
10175
+ };
10177
10176
  }
10177
+
10178
+ // src/tools/firewall-filter.ts
10179
+ var isDigits = (s) => /^\d+$/.test(s);
10180
+ var resolveFilterRuleId = ruleResolver("/ip firewall filter");
10178
10181
  async function updateFilterRule(a, ctx) {
10179
10182
  ctx.info(`Updating firewall filter rule: rule_id=${a.rule_id}`);
10180
10183
  const updates = [];
@@ -10561,28 +10564,6 @@ ${results.join(`
10561
10564
 
10562
10565
  // src/tools/firewall-nat.ts
10563
10566
  import { z as z29 } from "zod";
10564
-
10565
- // src/tools/_resolve-rule-id.ts
10566
- function ruleResolver(scope) {
10567
- return async function resolveRuleId(ruleId, ctx) {
10568
- if (/^\d+$/.test(ruleId)) {
10569
- const id = `*${ruleId}`;
10570
- const byId = await executeMikrotikCommand(`${scope} print count-only where .id=${id}`, ctx);
10571
- if (byId.trim() !== "0")
10572
- return id;
10573
- const idsRaw = await executeMikrotikCommand(`:foreach i in=[${scope} find] do={:put $i}`, ctx);
10574
- if (isEmpty(idsRaw))
10575
- return null;
10576
- const ids = idsRaw.trim().split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
10577
- const pos = Number.parseInt(ruleId, 10);
10578
- return pos >= 0 && pos < ids.length ? ids[pos] : null;
10579
- }
10580
- const count = await executeMikrotikCommand(`${scope} print count-only where .id=${ruleId}`, ctx);
10581
- return count.trim() !== "0" ? ruleId : null;
10582
- };
10583
- }
10584
-
10585
- // src/tools/firewall-nat.ts
10586
10567
  var isDigits2 = (s) => /^\d+$/.test(s);
10587
10568
  var resolveNatRuleId = ruleResolver("/ip firewall nat");
10588
10569
  async function updateNatRule(a, ctx) {
@@ -8294,7 +8294,7 @@ var cache = null;
8294
8294
  async function gateway() {
8295
8295
  if (cache)
8296
8296
  return cache;
8297
- const { moduleCatalog } = await import("./library-0d02nsc7.js");
8297
+ const { moduleCatalog } = await import("./library-wbht6e2m.js");
8298
8298
  const forIndex = [];
8299
8299
  const byName = new Map;
8300
8300
  for (const mod of moduleCatalog) {
@@ -10088,23 +10088,26 @@ Management access may be partially restricted \u2014 review immediately.`;
10088
10088
 
10089
10089
  // src/tools/firewall-filter.ts
10090
10090
  import { z as z28 } from "zod";
10091
- var isDigits = (s) => /^\d+$/.test(s);
10092
- async function resolveFilterRuleId(ruleId, ctx) {
10093
- if (/^\d+$/.test(ruleId)) {
10094
- const id = `*${ruleId}`;
10095
- const byId = await executeMikrotikCommand(`/ip firewall filter print count-only where .id=${id}`, ctx);
10096
- if (byId.trim() !== "0")
10097
- return id;
10098
- const idsRaw = await executeMikrotikCommand(`:foreach i in=[/ip firewall filter find] do={:put $i}`, ctx);
10099
- if (isEmpty(idsRaw))
10100
- return null;
10101
- const ids = idsRaw.trim().split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
10102
- const pos = Number.parseInt(ruleId, 10);
10103
- return pos >= 0 && pos < ids.length ? ids[pos] : null;
10104
- }
10105
- const count = await executeMikrotikCommand(`/ip firewall filter print count-only where .id=${ruleId}`, ctx);
10106
- return count.trim() !== "0" ? ruleId : null;
10091
+
10092
+ // src/tools/_resolve-rule-id.ts
10093
+ function ruleResolver(scope) {
10094
+ return async function resolveRuleId(ruleId, ctx) {
10095
+ if (/^\d+$/.test(ruleId)) {
10096
+ const idsRaw = await executeMikrotikCommand(`:foreach i in=[${scope} find] do={:put $i}`, ctx);
10097
+ if (isEmpty(idsRaw))
10098
+ return null;
10099
+ const ids = idsRaw.trim().split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
10100
+ const pos = Number.parseInt(ruleId, 10);
10101
+ return pos >= 0 && pos < ids.length ? ids[pos] : null;
10102
+ }
10103
+ const count = await executeMikrotikCommand(`${scope} print count-only where .id=${ruleId}`, ctx);
10104
+ return count.trim() !== "0" ? ruleId : null;
10105
+ };
10107
10106
  }
10107
+
10108
+ // src/tools/firewall-filter.ts
10109
+ var isDigits = (s) => /^\d+$/.test(s);
10110
+ var resolveFilterRuleId = ruleResolver("/ip firewall filter");
10108
10111
  async function updateFilterRule(a, ctx) {
10109
10112
  ctx.info(`Updating firewall filter rule: rule_id=${a.rule_id}`);
10110
10113
  const updates = [];
@@ -10491,28 +10494,6 @@ ${results.join(`
10491
10494
 
10492
10495
  // src/tools/firewall-nat.ts
10493
10496
  import { z as z29 } from "zod";
10494
-
10495
- // src/tools/_resolve-rule-id.ts
10496
- function ruleResolver(scope) {
10497
- return async function resolveRuleId(ruleId, ctx) {
10498
- if (/^\d+$/.test(ruleId)) {
10499
- const id = `*${ruleId}`;
10500
- const byId = await executeMikrotikCommand(`${scope} print count-only where .id=${id}`, ctx);
10501
- if (byId.trim() !== "0")
10502
- return id;
10503
- const idsRaw = await executeMikrotikCommand(`:foreach i in=[${scope} find] do={:put $i}`, ctx);
10504
- if (isEmpty(idsRaw))
10505
- return null;
10506
- const ids = idsRaw.trim().split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
10507
- const pos = Number.parseInt(ruleId, 10);
10508
- return pos >= 0 && pos < ids.length ? ids[pos] : null;
10509
- }
10510
- const count = await executeMikrotikCommand(`${scope} print count-only where .id=${ruleId}`, ctx);
10511
- return count.trim() !== "0" ? ruleId : null;
10512
- };
10513
- }
10514
-
10515
- // src/tools/firewall-nat.ts
10516
10497
  var isDigits2 = (s) => /^\d+$/.test(s);
10517
10498
  var resolveNatRuleId = ruleResolver("/ip firewall nat");
10518
10499
  async function updateNatRule(a, ctx) {
@@ -4,7 +4,7 @@ import {
4
4
  allToolModules,
5
5
  moduleCatalog,
6
6
  selectToolModules
7
- } from "./library-pqnndx9v.js";
7
+ } from "./library-ndn9hj45.js";
8
8
  export {
9
9
  selectToolModules,
10
10
  moduleCatalog,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usex/mikrotik-mcp",
3
- "version": "4.1.0",
3
+ "version": "4.2.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",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "4.1.0",
3
+ "version": "4.2.0",
4
4
  "generated": "by scripts/gen-schemas.ts — do not edit by hand",
5
5
  "toolCount": 794,
6
6
  "tools": [