High-performance MCP server for MikroTik RouterOS — TypeScript, dynamic API discovery, structured outputs, WireGuard/IPsec VPN, backup & export
MikroTik server has solid parameter schemas and acceptable descriptions, but falls short of production-grade quality in several dimensions. All 6 tools have properly typed input schemas with descriptions and appropriate constraints (enums, min/max). Descriptions are present and mostly adequate (80-150 chars), though they could be more prescriptive about when to use each tool vs. alternatives. Naming follows verb_noun convention (list_, create_, add_, export_). No critical security flaws detected, sensitive credentials are environment-injected, not parameterized. However, the server lacks output schema documentation (tools are registered but return structures are not formally declared in the visible code). Error handling is minimal, no guidance on recovery steps or error categories. Pagination is present in list tools but not consistently applied. The most significant gap: no output/return type documentation visible in the tool definitions, making it unclear to LLMs what fields to expect from each tool's response.
Add a static DHCP lease to assign a fixed IP address to a MAC address
Create a backup file of the RouterOS configuration (system backup, not export). The backup file is saved on the router's filesystem.
Export the entire RouterOS configuration as a text script (export format, not binary backup). Returns the full configuration text with line statistics.
List all firewall address list entries on the RouterOS device with optional filtering by list name. Returns address, list name, creation info, and timeout. Useful for viewing IP address groups used in firewall rules.
List all DHCP leases on the RouterOS device with optional filtering and pagination
Output schemas not documented. No visible return type declarations for any tool. LLMs cannot plan follow-up calls or extract chaining IDs (e.g., server_id from list_dhcp_servers to use in add_static_lease) without knowing the response structure.
Error handling lacks recovery guidance. When a backup creation fails or a DHCP lease conflicts, tools provide no actionable next steps. Descriptions do not indicate which errors are retryable vs. user-fixable.
Tool descriptions are generic and lack dependency hints. 'List all DHCP leases' does not explain when to call this tool vs. list_dhcp_servers, or what status filtering enables. No guidance on prerequisites or typical workflows.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2025-06-18+ | v2 |
| 2026-03-09 | D | 59 | - | v1 |
List all DHCP servers configured on the RouterOS device with pagination support
MAC address parameter in add_static_lease lacks format specification. Description says '(e.g., "00:11:22:33:44:55")' but does not validate format or enforce pattern. LLMs may pass malformed MACs.
Pagination defaults differ across tools. limit defaults to 50, offset to 0, acceptable, but no tools return total_count or next_cursor, making it unclear to LLMs whether more results exist or how to fetch them.