@usex/mikrotik-mcp 4.6.0 → 4.8.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 +35 -28
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/shared/{cli-hfhmh1qe.js → cli-s2s6hryh.js} +4725 -3226
- package/dist/shared/{cli-6xcbh1kn.js → cli-xfa5x65h.js} +1 -1
- package/dist/shared/{library-8hq0qqwm.js → library-6zh75zhp.js} +1 -1
- package/dist/shared/{library-399v2azd.js → library-wm3vc8kq.js} +4725 -3226
- package/dist/ui/observability.html +4 -4
- package/package.json +1 -1
- package/prompts/security-hardening-sweep.md +132 -0
- package/prompts/setup-eoip-tunnel-between-sites.md +119 -0
- package/prompts/setup-gre-tunnel-between-sites.md +163 -0
- package/prompts/setup-ipip-tunnel-between-sites.md +110 -0
- package/prompts/setup-openvpn-tunnel-between-sites.md +136 -0
- package/prompts/setup-sstp-tunnel-between-sites.md +136 -0
- package/prompts/setup-tunnel-between-sites.md +55 -8
- package/prompts/setup-vxlan-tunnel-between-sites.md +129 -0
- package/prompts/setup-wireguard-tunnel-between-sites.md +183 -0
- package/schemas/README.md +1 -1
- package/schemas/tool-catalog.json +674 -6
- package/schemas/tools/add_firewall_default_deny.json +25 -0
- package/schemas/tools/add_ip_address.json +7 -1
- package/schemas/tools/add_ipv6_address.json +7 -1
- package/schemas/tools/apply_security_hardening_fixes.json +25 -0
- package/schemas/tools/audit_account_hygiene.json +7 -0
- package/schemas/tools/audit_address_list_enforcement.json +7 -0
- package/schemas/tools/audit_certificate_hygiene.json +7 -0
- package/schemas/tools/audit_connection_tracking_helpers.json +7 -0
- package/schemas/tools/audit_dns_resolver_exposure.json +7 -0
- package/schemas/tools/audit_firewall_default_deny.json +7 -0
- package/schemas/tools/audit_ip_service_exposure.json +7 -0
- package/schemas/tools/audit_ipv6_firewall_baseline.json +7 -0
- package/schemas/tools/audit_kernel_ip_hardening.json +7 -0
- package/schemas/tools/audit_management_plane_exposure.json +7 -0
- package/schemas/tools/audit_network_segmentation.json +7 -0
- package/schemas/tools/audit_ssh_hardening.json +7 -0
- package/schemas/tools/bootstrap_ipv6_firewall_baseline.json +25 -0
- package/schemas/tools/enforce_address_list_blocking.json +25 -0
- package/schemas/tools/fix_certificate_crl_policy.json +25 -0
- package/schemas/tools/fix_password_policy.json +25 -0
- package/schemas/tools/harden_connection_tracking_helpers.json +25 -0
- package/schemas/tools/harden_dns_resolver_exposure.json +25 -0
- package/schemas/tools/harden_ip_service_exposure.json +25 -0
- package/schemas/tools/harden_kernel_ip_settings.json +25 -0
- package/schemas/tools/harden_management_plane_exposure.json +25 -0
- package/schemas/tools/harden_ssh_service.json +25 -0
- package/schemas/tools/run_security_hardening_audit.json +29 -0
package/README.md
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
<div align="center">
|
|
2
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
|
|
3
|
+
<p><strong>A Bun-native MCP server that turns one or more MikroTik routers into 819 tools your AI can drive.</strong><br/>
|
|
4
4
|
Firewall · routing · DHCP/DNS · wireless · QoS · and a complete VPN suite — over SSH, with transactional Safe Mode.</p>
|
|
5
5
|
|
|
6
6
|
<p>
|
|
7
7
|
<a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-7C3AED.svg"></a>
|
|
8
8
|
<img alt="Runtime: Bun" src="https://img.shields.io/badge/runtime-Bun%20%E2%89%A5%201.3-06B6D4.svg">
|
|
9
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-
|
|
10
|
+
<img alt="MCP" src="https://img.shields.io/badge/MCP-819%20tools-1F2937.svg">
|
|
11
11
|
<a href="docs/"><img alt="Docs" src="https://img.shields.io/badge/docs-reference-7C3AED.svg"></a>
|
|
12
12
|
</p>
|
|
13
13
|
</div>
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
-
`@usex/mikrotik-mcp` exposes **MikroTik RouterOS** as **
|
|
17
|
+
`@usex/mikrotik-mcp` exposes **MikroTik RouterOS** as **819 [Model Context Protocol](https://modelcontextprotocol.io)
|
|
18
18
|
tools across 111 modules**, so an AI client (Claude Desktop, Claude Code, any MCP
|
|
19
19
|
client) can read and configure your router in plain language. It speaks to the
|
|
20
20
|
device over **SSH** — no agent, no API package to install on RouterOS — runs on
|
|
@@ -46,7 +46,7 @@ in memory and auto-reverts if your session drops, so you can't lock yourself out
|
|
|
46
46
|
|
|
47
47
|
## Why it's different
|
|
48
48
|
|
|
49
|
-
- 🧰 **Breadth** —
|
|
49
|
+
- 🧰 **Breadth** — 819 tools covering the whole device: L2 (bridge, VLAN, wireless,
|
|
50
50
|
PoE), L3 (addressing, routing, DHCP, DNS), security (firewall, NAT, address-lists,
|
|
51
51
|
certificates), QoS (queues), and system ops (users, logs, backups, scheduler).
|
|
52
52
|
- 🔐 **A complete VPN suite** — WireGuard, IPsec (IKEv1/IKEv2), L2TP, PPTP, SSTP,
|
|
@@ -93,7 +93,7 @@ mikrotik-mcp serve
|
|
|
93
93
|
against the server (from source):
|
|
94
94
|
|
|
95
95
|
```bash
|
|
96
|
-
bun run inspect # opens the Inspector UI to browse/run all
|
|
96
|
+
bun run inspect # opens the Inspector UI to browse/run all 819 tools
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
**Prefer SSH keys over a password?** Point the server at a key file instead — and
|
|
@@ -149,7 +149,7 @@ manifest) before packing. Pass `--no-smoke` to skip that last check.
|
|
|
149
149
|
|
|
150
150
|
## The tool catalog
|
|
151
151
|
|
|
152
|
-
**
|
|
152
|
+
**819 tools across 111 modules.** Full, always-current reference (parameters +
|
|
153
153
|
risk per tool) is generated from source: **[docs/tools-reference.md](docs/tools-reference.md)**.
|
|
154
154
|
|
|
155
155
|
| Group | Tools | Modules |
|
|
@@ -343,6 +343,12 @@ On top of the per-scope tools, the server ships higher-level workflows:
|
|
|
343
343
|
- **[Firewall Audit](docs/firewall-audit.md)** — `firewall_audit` finds shadowed,
|
|
344
344
|
overly-broad, missing-default-drop, duplicate and dead rules, risk-scored, with
|
|
345
345
|
one-click fixes in MCP App hosts.
|
|
346
|
+
- **[Security Hardening](docs/security-hardening.md)** — granular audit+remediate
|
|
347
|
+
pairs per risk category (firewall default-deny, address-list enforcement, kernel
|
|
348
|
+
IP, IPv6 baseline, SSH, service exposure, helpers, management plane, accounts,
|
|
349
|
+
CRL, segmentation, DNS) plus an orchestrator. Every audit is read-only; every
|
|
350
|
+
fix defaults to dry-run and snapshots + Safe-Modes before writing, remediating
|
|
351
|
+
by explicit `finding_id`.
|
|
346
352
|
- **[Packet Capture Studio](docs/packet-capture.md)** — stream mirrored packets to
|
|
347
353
|
the host as TZSP, decode them live in the dashboard, and export `.pcap`.
|
|
348
354
|
- **[Discovery](docs/discovery.md)** — `bun run discover` lists MikroTik devices on
|
|
@@ -361,28 +367,29 @@ source** (`bun run gen:schemas`) so they can never drift:
|
|
|
361
367
|
|
|
362
368
|
## Documentation
|
|
363
369
|
|
|
364
|
-
| Doc |
|
|
365
|
-
| ------------------------------------------------------------- |
|
|
366
|
-
| [Getting started](docs/getting-started.md) | Install, verify, first run
|
|
367
|
-
| [Configuration](docs/configuration.md) | Every env var & flag
|
|
368
|
-
| [Multiple devices](docs/multi-device.md) | Manage several routers; per-call targeting
|
|
369
|
-
| [Connecting clients](docs/connecting-clients.md) | Claude Desktop, stdio, HTTP
|
|
370
|
-
| [Transports](docs/transports.md) | stdio / HTTP / SSE, DNS-rebinding
|
|
371
|
-
| **[Observability](docs/observability.md)** | Real-time dashboard: live feed + analytics, SQLite
|
|
372
|
-
| [Safe Mode](docs/safe-mode.md) | Transactional changes
|
|
373
|
-
| **[Change Plan & Dry-Run](docs/change-plan.md)** | Preview commands, apply with the exact diff + auto-rollback
|
|
374
|
-
| **[Config Snapshots](docs/config-snapshots.md)** | `/export` snapshots + time-travel diff
|
|
375
|
-
| **[Firewall Audit](docs/firewall-audit.md)** | Shadowed/broad/dead rules, risk-scored
|
|
376
|
-
| **[
|
|
377
|
-
| **[
|
|
378
|
-
| **[
|
|
379
|
-
| **[
|
|
380
|
-
| [
|
|
381
|
-
| [
|
|
382
|
-
| [
|
|
383
|
-
| [
|
|
384
|
-
| [
|
|
385
|
-
| [
|
|
370
|
+
| Doc | |
|
|
371
|
+
| ------------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
372
|
+
| [Getting started](docs/getting-started.md) | Install, verify, first run |
|
|
373
|
+
| [Configuration](docs/configuration.md) | Every env var & flag |
|
|
374
|
+
| [Multiple devices](docs/multi-device.md) | Manage several routers; per-call targeting |
|
|
375
|
+
| [Connecting clients](docs/connecting-clients.md) | Claude Desktop, stdio, HTTP |
|
|
376
|
+
| [Transports](docs/transports.md) | stdio / HTTP / SSE, DNS-rebinding |
|
|
377
|
+
| **[Observability](docs/observability.md)** | Real-time dashboard: live feed + analytics, SQLite |
|
|
378
|
+
| [Safe Mode](docs/safe-mode.md) | Transactional changes |
|
|
379
|
+
| **[Change Plan & Dry-Run](docs/change-plan.md)** | Preview commands, apply with the exact diff + auto-rollback |
|
|
380
|
+
| **[Config Snapshots](docs/config-snapshots.md)** | `/export` snapshots + time-travel diff |
|
|
381
|
+
| **[Firewall Audit](docs/firewall-audit.md)** | Shadowed/broad/dead rules, risk-scored |
|
|
382
|
+
| **[Security Hardening](docs/security-hardening.md)** | Per-category audit+remediate, fix by finding_id, snapshot + Safe-Mode |
|
|
383
|
+
| **[Packet Capture Studio](docs/packet-capture.md)** | Live TZSP capture + pcap export |
|
|
384
|
+
| **[Discovery](docs/discovery.md)** | `bun run discover`, MNDP neighbours, topology map |
|
|
385
|
+
| **[Config Studio](docs/config-studio.md)** | Edit config in the dashboard with autocomplete |
|
|
386
|
+
| **[VPN guide](docs/vpn-guide.md)** | Every tunnel type + how to build it |
|
|
387
|
+
| [Prompts](docs/prompts.md) | The 9 guided workflows |
|
|
388
|
+
| [Architecture](docs/architecture.md) | How it's built |
|
|
389
|
+
| [Security](docs/security.md) | Credentials, risk gating |
|
|
390
|
+
| [Tool reference](docs/tools-reference.md) | The full generated catalog |
|
|
391
|
+
| [MCP Inspector](docs/inspector.md) | Test tools/prompts in the UI or CLI |
|
|
392
|
+
| [Development](docs/development.md) · [Docker](docs/docker.md) | Build, test, deploy |
|
|
386
393
|
|
|
387
394
|
## Development
|
|
388
395
|
|
package/dist/cli.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
selectToolModules,
|
|
30
30
|
setConfig,
|
|
31
31
|
updateSummaryLine
|
|
32
|
-
} from "./shared/library-
|
|
32
|
+
} from "./shared/library-wm3vc8kq.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";
|