TypeScript MCP server for MikroTik RouterOS — bridge VLAN filtering, dead-man rollback, dynamic API discovery, structured outputs, WireGuard/IPsec, backup & export
Server has 48 tools total but only 3 are visible in source. Visible tools have good naming (verb_noun pattern) and descriptions (100-200 chars, within baseline). However, schemas are incomplete: mikrotik_list_address_lists has proper input schema with types/descriptions/constraints; mikrotik_create_backup lacks required parameter validation; mikrotik_export_config has empty input schema. No output schemas documented for any tool. Error handling and recovery guidance absent. Server lacks per-tool risk annotations despite claiming toolAnnotations=true.
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.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., backup filename, export text). Violates pattern:tool requirement for documented return types.
45 of 48 tools are inferred from registration calls only (src/server.ts). No visible implementation, parameter schemas, or descriptions in provided source. Cannot verify naming, descriptions, or error handling.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2025-06-18+ | v2 |
mikrotik_export_config has empty input schema ({}). No parameters documented. Violates pattern:tool-description requirement for parameter descriptions.
mikrotik_create_backup 'name' parameter lacks validation constraints (format, length, character restrictions). Description does not specify auto-generation behavior or filename format. Violates pattern:constrained-input.
No error handling or recovery guidance visible. Tools lack actionable error messages (e.g., 'Connection failed. Verify MIKROTIK_HOST and credentials.'). Violates pattern:recovery-guide.