Public MCP server and lightweight web dashboard for managing multiple MikroTik RouterOS devices with transport fallback and guarded write workflows.
26 tools with consistent verb-noun naming (get_, list_, describe_, run_, plan_, apply_, ping, export_). All tools have descriptions (avg ~80 chars, baseline 194). Input schemas present for all tools with proper type definitions. However, descriptions are uniformly terse (10-50 chars), below the 50-200 char LLM-optimized range. Output schemas are not documented, responses are JSON strings without field-level documentation. Error handling is minimal; no recovery guidance or actionable error messages visible. Parameter descriptions are present but sparse. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The apply_script_change tool is high-risk (WRITE) but lacks confirmation/dry-run pattern. Overall: solid naming and basic structure, but descriptions and output documentation fall short of production grade.
List firewall address lists on a MikroTik RouterOS device.
Apply a change inside a RouterOS Safe Mode session: the config is snapshotted first, and the router itself reverts the change if the session drops or the post-apply health check fails.
List bridge ports on a MikroTik RouterOS device.
List bridge interfaces on a MikroTik RouterOS device.
Get detailed configuration information for a specific MikroTik RouterOS device.
List DHCP leases on a MikroTik RouterOS device.
List DHCP servers on a MikroTik RouterOS device.
Output schemas not documented. All tools return JSON strings without field-level documentation. LLMs cannot plan downstream tool calls or extract specific fields without trial-and-error.
Descriptions uniformly terse (10-50 chars, baseline 50-200). Lack context for LLM tool selection. E.g., 'List network interfaces on a MikroTik RouterOS device' does not explain when to call it vs describe_device, or what fields are returned.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Unified diff between two config snapshots of a device.
Get DNS settings from a MikroTik RouterOS device.
Export configuration from a MikroTik RouterOS device.
List firewall filter rules on a MikroTik RouterOS device.
Get server configuration including device count, device names, default config candidates, and log level.
List network interfaces on a MikroTik RouterOS device.
List IP addresses configured on a MikroTik RouterOS device.
List all configured MikroTik RouterOS devices with their configuration details.
List config snapshots taken before Safe Mode writes, newest first.
Get logs from a MikroTik RouterOS device.
List NAT rules on a MikroTik RouterOS device.
List IP neighbors on a MikroTik RouterOS device.
Ping an address from a MikroTik RouterOS device.
Plan a script change on a MikroTik RouterOS device and get an approval code.
List IP routes on a MikroTik RouterOS device.
Run a read-only RouterOS API print command on a device.
Get system resource information from a MikroTik RouterOS device.
List WireGuard interfaces on a MikroTik RouterOS device.
List WireGuard peers on a MikroTik RouterOS device.
apply_script_change is a high-risk WRITE tool with no dry-run, confirmation, or rollback guidance in the description. LLMs may invoke it without understanding consequences.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe read-only tools from destructive ones without parsing descriptions.
Error handling not visible in source. No recovery guidance, actionable error messages, or categorization (retryable vs fatal). LLMs will not know how to respond to failures.