security_audit
Inspect a MikroTik router's configuration in read-only mode for insecure services, firewall gaps, exposed SNMP/DNS, outdated RouterOS, open wireless, and expiring certs; return prioritized findings.
Instructions
Read-only security audit of a device's configuration - gives an LLM caller (or operator) a structured list of findings to review, so it can "look at the security of this router" without an operator manually walking every menu.
Aggregates several independent, defensive checks - see
src/mcp_mikrotik/security.py for the full list and reasoning:
insecure management services (/ip/service: telnet/ftp/www/api
enabled, and whether they're open to any address), whether the
firewall's input chain ends in a drop/reject rule (heuristic),
SNMP community exposure (/snmp/community), an open DNS resolver
(/ip/dns allow-remote-requests), outdated RouterOS
(/system/package/update), open wireless/wifi networks (no
security profile / no passphrase), a count of users with a
write/full policy, and (v1.6) an expired or soon-to-expire
(<=30 days) certificate (/certificate).
Each check reads its own menu(s) and skips itself (contributing no findings) if that menu doesn't exist on this device/RouterOS generation - one missing/unsupported menu never fails the whole audit. NEVER a scanner, NEVER definitive - this is a heuristic, best-effort read meant to prompt a human decision, not to replace one; see README's "Security audit" section for the full disclaimer.
READ-ONLY: does not change anything on the device, and is not gated by MIKROTIK_ALLOW_WRITE.
NO SECRET IS EVER RETURNED: no finding ever includes a password, passphrase, or SNMP community string - see security.py's module docstring for exactly how each check avoids that.
Returns {"findings": [{"severity", "category", "title", "detail", "recommendation"}, ...], "summary": {"high", "medium", "low", "info"}} - findings sorted by severity (high first), summary
always including all four keys (0 for a severity with no findings).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| device_name | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||