MikroMCP
MCP server for MikroTik RouterOS and SwOS: typed tools, dry-run, RBAC, audit logs, and rollback.
Connector by AliKarami · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/alikarami-mikromcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 69 read · 2 write · 62 delete
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 133
Read from the source code; the running server may list different tools.
Read 69 · Look things up without changing anything.
bandwidth_testbulk_readcheck_router_healthget_container_configget_dns_settingsget_file_contentget_logget_ntp_settingsget_ovpn_serverget_snmp_settingsget_swos_configget_swos_endpoint
Show 57 more tools
get_swos_statusget_system_clockget_system_statusget_upgrade_statuslist_address_list_entrieslist_arp_entrieslist_bgp_peerslist_bridge_portslist_bridgeslist_certificateslist_connectionslist_container_envslist_container_mountslist_containerslist_dhcp_clientslist_dhcp_leaseslist_dhcp_serverslist_dns_entrieslist_fileslist_firewall_ruleslist_interface_list_memberslist_interface_listslist_interfaceslist_ip_addresseslist_ip_poolslist_ip_serviceslist_ipsec_peerslist_ipsec_policieslist_journallist_log_actionslist_log_ruleslist_mangle_ruleslist_neighborslist_netwatch_entrieslist_ospf_neighborslist_ovpn_clientslist_packageslist_ppp_profileslist_pppoe_clientslist_queueslist_routerslist_routeslist_routing_ruleslist_routing_tableslist_scheduled_jobslist_scriptslist_swos_endpointslist_user_groupslist_userslist_vrrp_instanceslist_wifi_clientslist_wifi_interfaceslist_wireguard_interfaceslist_wireguard_peerspingtorchtraceroute
Write 2 · Create, change, send or run things.
plan_changessave_swos_backup
Delete 62 · Delete, drop, revoke or wipe things.
apply_planapply_swos_configbulk_executecreate_backupdelete_fileexport_configfetch_urlmanage_address_list_entrymanage_bridgemanage_bridge_portmanage_certificatemanage_container
Show 50 more tools
manage_container_configmanage_container_envmanage_container_mountmanage_dhcp_clientmanage_dhcp_leasemanage_dhcp_servermanage_dns_entrymanage_dns_settingsmanage_firewall_rulemanage_interface_listmanage_interface_list_membermanage_ip_addressmanage_ip_poolmanage_ip_servicemanage_ipsec_peermanage_ipsec_policymanage_log_actionmanage_log_rulemanage_mangle_rulemanage_netwatch_entrymanage_ntp_clientmanage_ovpn_clientmanage_ovpn_servermanage_packagemanage_ppp_profilemanage_pppoe_clientmanage_queuemanage_routemanage_routing_rulemanage_routing_tablemanage_scheduled_jobmanage_scriptmanage_upgrademanage_usermanage_user_groupmanage_vlanmanage_vrrp_instancemanage_wifi_interfacemanage_wireguard_interfacemanage_wireguard_peerrebootrestore_swos_backuprollback_changerun_commandrun_scriptset_swos_passwordset_system_clockupgrade_swos_firmwareupload_filewrite_swos_blob
Secrets and settings it asks for
Other settings (environment variables or headers).
MIKROMCP_CONFIG_PATHMIKROMCP_LOG_LEVELMIKROMCP_STDIO_IDENTITY
Network hosts it talks to 5
docs.mikromcp.com· found in codedownload.mikrotik.com· found in codegithub.com· found in codeglama.ai· found in codemikromcp.com· found in code
Files it touches
- Your home directory (~)
- Any path the agent passes to its tools
Tools (133)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
apply_planApply Plancan change or delete dataExecute write operations in order, stopping on first failure. Each step is snapshotted and journaled individually. Non-admin identities need a confirmationToken (same two-step flow as other destructive tools). Undo individual steps via rollback_change with the returned journal IDs.
apply_swos_configApply SwOS Configcan change or delete dataApply a switch config document (the format get_swos_config exports) to a SwOS switch. Plans every change against the switch first; dryRun defaults to true. Writes only the endpoints that change: the VLAN table grows first (new VLANs and members), then the per-port settings (VLAN, isolation, storm and flood control), port names/negotiation/enabled, LAG and SNMP, then the table shrinks (removed VLANs and members), then system — so no port loses its VLAN mid-apply. Refuses management changes (address, allow-from) unless includeManagement is true, and any plan that would cut a linked port off (its…
bandwidth_testBandwidth Testread-onlyRun a RouterOS bandwidth test from the router to a remote host running a RouterOS btest server. Returns TX and RX throughput in Mbps. Duration capped at 20 seconds. Saturates the link — not auto-retried.
bulk_executeBulk Executecan change or delete dataFan out a single-router tool to many routers in parallel (up to `concurrency`), targeted by routerIds or tag. Write tools need two-step confirmation for every role: call without `confirmationToken` to get a fleet token, then re-call with it. Read-only tools fan out immediately. Writes snapshot+journal each router for rollback. Returns per-router results with succeeded/failed counts. To fan out a read-only tool, prefer bulk_read.
bulk_readBulk Readread-onlyFan out a read-only single-router tool (list_*, get_* and others annotated read-only) to many routers in parallel (up to `concurrency`), targeted by routerIds or tag. Unlike bulk_execute, the server refuses every write tool and the traffic-generating diagnostics (ping, traceroute, torch, bandwidth_test) with BULK_READ_TOOL_NOT_READ_ONLY, and never needs a confirmation token, snapshot or journal — so an MCP client can allow bulk_read without allowing fleet-wide writes. Use bulk_execute for anything else. Returns per-router results with succeeded/failed counts.
check_router_healthCheck Router Healthread-onlyProbe a device: RouterOS routers via system/resource, SwOS switches via sys.b. Returns health status, firmware version, uptime, and (RouterOS only) CPU load and memory info. Unlike other tools, this never throws — unreachable devices are reported as healthy=false.
create_backupCreate Backupcan change or delete dataCreate a binary configuration backup on a MikroTik router. The backup is saved as <name>.backup on the router's filesystem. To encrypt it, prefer passwordSecret (a MIKROMCP_SECRET_<NAME> bound to the router in routers.yaml — the password never reaches the conversation) over a literal password. Dry run checks that the secret resolves.
delete_fileDelete Filecan change or delete dataDelete a file from the router filesystem by name. Idempotent: returns not_found gracefully if the file does not exist.
export_configExport Configcan change or delete dataExport the router configuration as a RouterOS script. When no file is specified, returns the script text inline. When a file is specified, saves it as <file>.rsc on the router's filesystem. Supports compact mode to show only non-default values.
fetch_urlFetch URLcan change or delete dataSend an HTTP/HTTPS request from the router using /tool/fetch. Response body is returned inline (capped at 64 KB with [TRUNCATED] marker). Use outputFile to save to router filesystem instead. Not read-only: POSTs have side effects and outputFile writes to the router.
get_container_configGet Container Configread-onlyRead global container configuration: registry URL, RAM high-water mark, and veth interface.
get_dns_settingsGet DNS Settingsread-onlyRead DNS resolver configuration: upstream servers, cache size, cache TTL, and whether remote DNS requests are allowed.
get_file_contentGet File Contentread-onlyRead a text file's contents from a MikroTik router. Only suitable for text files — binary files will return garbled content.
get_logGet Logread-onlyRead and filter the system log from a MikroTik router. Supports filtering by topic, message prefix, and a time window (last N minutes) measured against the router's own clock. Entries with unparseable timestamps are included conservatively.
get_ntp_settingsGet NTP Settingsread-onlyRetrieve NTP client settings from a MikroTik router.
Show 118 more tools
get_ovpn_serverGet OpenVPN Serverread-onlyGet the OpenVPN server configuration on a MikroTik router. Throws NOT_FOUND if the OpenVPN package is not installed.
get_snmp_settingsGet SNMP Settingsread-onlyRetrieve SNMP settings from a MikroTik router.
get_swos_configGet SwOS Configread-onlyExport a SwOS switch's configuration as one YAML document: system settings (including management access), every port's name, enabled state and VLAN settings, the VLAN table (full SwOS) and SNMP. The SNMP community is never exported. The document is the input format of apply_swos_config, so it doubles as a backup you can read and diff.
get_swos_endpointGet SwOS Endpointread-onlyFetch and decode a single SwOS '.b' endpoint (link.b, sys.b, poe.b, lacp.b, rstp.b, snmp.b, fwd.b, vlan.b, stats.b, sfp.b, host.b, acl.b, ...) as structured data. Unknown keys are preserved under '_raw'.
get_swos_statusGet SwOS Statusread-onlyRetrieve status from a MikroTik SwOS switch (SwOS or SwOS Lite): identity, model, firmware, uptime, per-port link state/speed/duplex, PoE mode/state/power, and SFP modules.
get_system_clockGet System Clockread-onlyRead the current date, time, and timezone from a MikroTik router. Focused single-purpose alternative to the clock section in get_system_status.
get_system_statusGet System Statusread-onlyRetrieve system status information from a MikroTik router including resource usage, identity, license, routerboard details, health sensors, and clock.
get_upgrade_statusGet Upgrade Statusread-onlyRead the current RouterOS package upgrade status and routerboard firmware versions. Shows installed version, latest available version, update channel, and firmware upgrade availability.
list_address_list_entriesList Address List Entriesread-onlyList firewall address list entries on a MikroTik router. Supports filtering by list name and address.
list_arp_entriesList ARP Entriesread-onlyList ARP table entries on a MikroTik router.
list_bgp_peersList BGP Peersread-onlyList BGP sessions on a MikroTik router (RouterOS 7+). Returns state, remote AS, prefix counts, and uptime.
list_bridge_portsList Bridge Portsread-onlyList bridge port entries (interface membership, PVID, STP role and status) on a MikroTik router. Supports filtering by bridge and interface, with pagination.
list_bridgesList Bridgesread-onlyList bridge interfaces and their port members on a MikroTik router.
list_certificatesList Certificatesread-onlyList certificates on a MikroTik router.
list_connectionsList Connectionsread-onlyList active connection tracking entries from the router firewall table. Filters are applied client-side. Useful for diagnosing NAT and firewall behavior.
list_container_envsList Container Envsread-onlyList container environment variable entries, optionally filtered by container name.
list_container_mountsList Container Mountsread-onlyList container volume mount definitions with source path, destination path, and mount name.
list_containersList Containersread-onlyList RouterOS container instances with status, image, and network information.
list_dhcp_clientsList DHCP Clientsread-onlyList DHCP client configurations on a MikroTik router. Shows which interfaces obtain their IP via DHCP, current status, and assigned address.
list_dhcp_leasesList DHCP Leasesread-onlyList DHCP leases on a MikroTik router with optional filtering by server, status, lease type (dynamic/static), and MAC address. Supports pagination.
list_dhcp_serversList DHCP Serversread-onlyList DHCP servers on a MikroTik router.
list_dns_entriesList DNS Entriesread-onlyList static DNS entries on a MikroTik router with optional filtering by name and type.
list_filesList Filesread-onlyList files on a MikroTik router filesystem. Supports filtering by name and type.
list_firewall_rulesList Firewall Rulesread-onlyList firewall rules from the filter or nat table on a MikroTik router. Supports filtering by chain and disabled state, with pagination.
list_interface_list_membersList Interface List Membersread-onlyList interface list memberships (which interface belongs to which list, e.g. WAN/LAN) on a MikroTik router. Supports filtering by list and interface, with pagination.
list_interface_listsList Interface Listsread-onlyList all interface lists defined on the router.
list_interfacesList Interfacesread-onlyList network interfaces on a MikroTik router with optional filtering by type and status. Supports pagination and optional traffic counters.
list_ip_addressesList IP Addressesread-onlyList IPv4 addresses assigned to interfaces on a MikroTik router, including dynamic ones (DHCP client, PPP). Supports filtering by interface and disabled state, with pagination.
list_ip_poolsList IP Poolsread-onlyList IP address pools on a MikroTik router. Supports filtering by name and pagination.
list_ip_servicesList IP Servicesread-onlyList IP services on a MikroTik router (api, api-ssl, ssh, telnet, www, www-ssl, winbox, ftp) with their port numbers and enabled/disabled status.
list_ipsec_peersList IPSec Peersread-onlyList IPSec peers on a MikroTik router.
list_ipsec_policiesList IPSec Policiesread-onlyList IPSec policies on a MikroTik router.
list_journalList Write Journalread-onlyList recent entries from the server's write journal (write-journal.ndjson): every journaled write with its journalId, timestamp, tool, router, parameters (as redacted at write time), snapshot ids and outcome — newest first. Read-only. Use it to recover a lost journalId for rollback_change, or to audit what was written when. Only entries with rollbackable: true can be rolled back — dry runs and writes without snapshots (run_command, plan_changes) cannot.
list_log_actionsList Log Actionsread-onlyList RouterOS logging action targets (system/logging/action) with optional type filter.
list_log_rulesList Log Rulesread-onlyList RouterOS logging rules (system/logging) with optional topic substring and action exact-match filtering.
list_mangle_rulesList Mangle Rulesread-onlyList firewall mangle rules on a MikroTik router in evaluation order. Supports filtering by chain, action, and disabled state.
list_neighborsList Neighborsread-onlyList discovered neighbors (CDP/LLDP/MNDP) on a MikroTik router.
list_netwatch_entriesList Netwatch Entriesread-onlyList Netwatch monitoring entries on a MikroTik router.
list_ospf_neighborsList OSPF Neighborsread-onlyList OSPF neighbors on a MikroTik router (RouterOS 7+). Returns neighbor state, interface, DR/BDR, and uptime.
list_ovpn_clientsList OpenVPN Clientsread-onlyList OpenVPN client interfaces on a MikroTik router. Shows name, remote server, and connection status.
list_packagesList Packagesread-onlyList installed RouterOS packages with version and enabled status.
list_ppp_profilesList PPP Profilesread-onlyList PPP profiles including the built-in default and default-encryption profiles.
list_pppoe_clientsList PPPoE Clientsread-onlyList PPPoE client interfaces on a MikroTik router. Shows name, parent interface, ISP username, and connection status.
list_queuesList Queuesread-onlyList simple queues on a MikroTik router.
list_routersList Routersread-onlyList the routers configured in the registry (routers.yaml): id, host, port, TLS status, tags, ROS version, and which is the default. Read-only reflection of local config — no RouterOS API call, no credentials in the response. rosVersion is what routers.yaml states and may lag a router upgrade — ask get_system_status for the live version. Use it to discover valid routerId values and tags for targeting other tools (including bulk_read and bulk_execute).
list_routesList Static Routesread-onlyList static routes on a MikroTik router with optional filtering by active status and dynamic status. Supports pagination.
list_routing_rulesList Routing Rulesread-onlyList policy routing rules on a MikroTik router in evaluation order. Supports filtering by table and disabled state.
list_routing_tablesList Routing Tablesread-onlyList custom routing tables on a MikroTik router.
list_scheduled_jobsList Scheduled Jobsread-onlyList RouterOS scheduler entries on a MikroTik router with next-run time, interval, and disabled state.
list_scriptsList Scriptsread-onlyList RouterOS scripts on a MikroTik router. Supports optional name filter.
list_swos_endpointsList SwOS Endpointsread-onlyList the SwOS/SwOS Lite '.b' API endpoints supported by this server, with the decoded field names per endpoint. Read-only schema introspection — no device call.
list_user_groupsList User Groupsread-onlyList local user groups on a MikroTik router.
list_usersList Usersread-onlyList local users on a MikroTik router. Passwords are never returned.
list_vrrp_instancesList VRRP Instancesread-onlyList VRRP instances on a MikroTik router.
list_wifi_clientsList WiFi Clientsread-onlyList currently connected WiFi clients (stations) with signal strength and transfer rates.
list_wifi_interfacesList WiFi Interfacesread-onlyList WiFi/wireless interfaces on a MikroTik router. Uses /interface/wifi on ROS 7.x, /interface/wireless on older versions.
list_wireguard_interfacesList WireGuard Interfacesread-onlyList WireGuard interfaces and their status on a MikroTik router.
list_wireguard_peersList WireGuard Peersread-onlyList WireGuard peers with last handshake time and transfer statistics.
manage_address_list_entryManage Address List Entrycan change or delete dataAdd or remove a firewall address list entry. Idempotent by list name + address. Supports dry-run mode.
manage_bridgeManage Bridge Interfacecan change or delete dataCreate or remove a bridge interface on a MikroTik router. Idempotent: create returns already_exists if bridge with same name exists.
manage_bridge_portManage Bridge Portcan change or delete dataAdd or remove an interface from a bridge on a MikroTik router. Idempotent: add returns already_exists if the port assignment already exists.
manage_certificateManage Certificatecan change or delete dataRemove, trust, or untrust a certificate. Idempotent: trust/untrust return early if already in the target state.
manage_containerManage Containercan change or delete dataCreate, start, stop, or remove a RouterOS container. create needs a pre-configured veth interface; start/stop are no-ops when already in the target state; remove throws NOT_FOUND when absent. Supports dry-run.
manage_container_configManage Container Configcan change or delete dataUpdate global container settings. Idempotent: returns no_change if nothing differs.
manage_container_envManage Container Envcan change or delete dataAdd or remove a container environment variable. Idempotent by name+key. add returns already_exists if the entry exists with the same value; throws CONFLICT if the value differs.
manage_container_mountManage Container Mountcan change or delete dataAdd or remove a container volume mount. Idempotent by name: add returns already_exists if the mount exists with matching src/dst; throws CONFLICT if name exists with different paths.
manage_dhcp_clientManage DHCP Clientcan change or delete dataAdd, remove, enable, or disable a DHCP client on an interface. Idempotent by interface name: add returns already_exists if a DHCP client is already configured on the same interface.
manage_dhcp_leaseManage DHCP Leasecan change or delete dataConvert a dynamic DHCP lease to static (make-static) or remove a lease. Idempotent by MAC address.
manage_dhcp_serverManage DHCP Servercan change or delete dataAdd, remove, enable, or disable a DHCP server. Idempotent by name: add returns already_exists if a server with the same name, interface, and address pool already exists.
manage_dns_entryManage DNS Entrycan change or delete dataAdd or remove a static DNS entry, found by name (case-insensitive) and type. add returns already_exists if such a record already has the requested value and disabled state (and ttl/comment, when given), and throws CONFLICT if it differs; add never creates a second record with the same name and type. remove deletes the one matching record; when several share the name (round-robin), pass address/cname/text to pick one.
manage_dns_settingsManage DNS Settingscan change or delete dataUpdate DNS resolver settings (upstream servers, cache size, cache TTL, allow-remote-requests). Idempotent: returns no_change if nothing differs.
manage_firewall_ruleManage Firewall Rulecan change or delete dataAdd, remove, disable, or enable a firewall rule on a MikroTik router. Matches addresses, ports, protocol, interfaces, interface lists, and connection/NAT state; nat rules take toAddresses/toPorts (e.g. a dst-nat port forward). Uses comment as idempotency key for deduplication and identification: a repeated add returns already_exists only when the match, NAT targets, and disabled state agree, otherwise CONFLICT (use enable/disable when only the disabled state differs). Supports dry-run mode.
manage_interface_listManage Interface Listcan change or delete dataAdd or remove an interface list. Idempotent by name. Removing a list that has members is blocked by RouterOS — the error is surfaced as-is.
manage_interface_list_memberManage Interface List Membercan change or delete dataAdd or remove an interface from an interface list. Idempotent by list+interface composite key. add returns already_exists if the membership exists. remove returns not_found gracefully.
manage_ip_addressManage IP Addresscan change or delete dataAdd, update, or remove an IP address on a MikroTik router interface. Performs idempotency checks for add operations and supports dry-run mode for all actions.
manage_ip_poolManage IP Poolcan change or delete dataAdd or remove an IP address pool. Idempotent by name: add returns already_exists if a pool with the same name and ranges already exists.
manage_ip_serviceManage IP Servicecan change or delete dataEnable or disable a RouterOS IP service (api, api-ssl, ssh, telnet, www, www-ssl, winbox, ftp). Port number changes are intentionally not supported to prevent accidental lockout. MikroMCP reaches RouterOS through the REST API on www-ssl (or www for plaintext): disabling the service its connection uses cuts MikroMCP off from the router, including any later call to re-enable it.
manage_ipsec_peerManage IPSec Peercan change or delete dataAdd, remove, enable, or disable an IPSec peer. Idempotent by name: add returns already_exists if a peer with the same name and address already exists.
manage_ipsec_policyManage IPSec Policycan change or delete dataAdd, remove, enable, or disable an IPSec policy. Idempotent by composite key (srcAddress + dstAddress + tunnel).
manage_log_actionManage Log Actioncan change or delete dataAdd or remove a RouterOS logging action target. Idempotent by name. add throws VALIDATION if type is missing; returns already_exists if name found. remove returns not_found gracefully. Supports dry-run.
manage_log_ruleManage Log Rulecan change or delete dataAdd, remove, enable, or disable a RouterOS logging rule. Idempotent by topics+logAction (add → already_exists on match; remove → not_found handled gracefully; enable/disable throw NOT_FOUND when absent). Supports dry-run.
manage_mangle_ruleManage Mangle Rulecan change or delete dataAdd, remove, enable, or disable a firewall mangle rule. ruleAction sets the action; when it is omitted, a new* value implies its own (newRoutingMark → mark-routing), otherwise accept. Each new* value is accepted only under its action. Uses comment as idempotency key: a repeated add returns already_exists only when the chain, match fields, marks, DSCP, MSS, passthrough, and the given or implied action agree, otherwise CONFLICT. Supports dry-run mode.
manage_netwatch_entryManage Netwatch Entrycan change or delete dataAdd, remove, enable, or disable a Netwatch monitoring entry. Idempotent by host+port: add returns already_exists if an entry with the same host and port already exists.
manage_ntp_clientManage NTP Clientcan change or delete dataUpdate NTP client settings on a MikroTik router. Idempotent: returns already_set if no changes are needed.
manage_ovpn_clientManage OpenVPN Clientcan change or delete dataAdd, update, or remove an OpenVPN client interface. Idempotent by name (already_exists on matching name+connectTo; CONFLICT on differing connectTo; no_change when an update differs in nothing). Password is always written when provided since RouterOS does not return it on GET.
manage_ovpn_serverManage OpenVPN Servercan change or delete dataEnable, disable, or configure the OpenVPN server (a per-router singleton). Throws NOT_FOUND if the OpenVPN package is not installed. The set action requires at least one configuration field.
manage_packageManage Packagecan change or delete dataEnable or disable a RouterOS package. Changes take effect only after a router reboot — use the reboot tool to apply. Idempotent: no-op if already in the target state.
manage_ppp_profileManage PPP Profilecan change or delete dataAdd, update, or remove a PPP profile. Idempotent by name. update returns no_change when requested values match. Built-in profiles (default, default-encryption) cannot be removed — RouterOS blocks this and the error is surfaced.
manage_pppoe_clientManage PPPoE Clientcan change or delete dataAdd, update, or remove a PPPoE client interface. Idempotent by name (already_exists on matching name+interface+user; CONFLICT on differing config; no_change when an update differs in nothing). Password is always written when provided since RouterOS does not return it on GET.
manage_queueManage Queuecan change or delete dataAdd, remove, enable, or disable a simple queue. Idempotent by name: add returns already_exists if a queue with the same name and target already exists.
manage_routeManage Static Routecan change or delete dataAdd or remove a static route on a MikroTik router. Performs idempotency checks for add operations and supports dry-run mode for all actions.
manage_routing_ruleManage Routing Rulecan change or delete dataAdd, remove, enable, or disable a policy routing rule. Idempotent by srcAddress+dstAddress+interface+table composite key; a repeated add with an explicit, different ruleAction is a CONFLICT. Supports dry-run mode.
manage_routing_tableManage Routing Tablecan change or delete dataCreate or remove a custom routing table. Idempotent by table name. Supports dry-run mode.
manage_scheduled_jobManage Scheduled Jobcan change or delete dataAdd, update, remove, enable, or disable a RouterOS scheduler entry. onEvent is arbitrary RouterOS script run with the router user's policies, so this tool is destructive. Idempotent by name. add throws CONFLICT if name exists; update throws NOT_FOUND if it does not. Supports dry-run.
manage_scriptManage Scriptcan change or delete dataAdd, update, or remove a RouterOS script. Idempotent by name. add throws CONFLICT if the name already exists; update throws NOT_FOUND if it does not. Supports dry-run.
manage_upgradeManage Upgradecan change or delete dataTrigger a RouterOS package update check or install. 'check' queries the update server for new packages. 'install' downloads and applies the update — the router will reboot automatically. Supports dry-run.
manage_userManage Usercan change or delete dataAdd, remove, enable, disable, or set the password for a local RouterOS user. Idempotent by name: add returns already_exists if a user with the same name and group already exists.
manage_user_groupManage User Groupcan change or delete dataAdd, update, or remove a local RouterOS user group. Idempotent by name: add returns already_exists if a group with the same name and policy already exists.
manage_vlanManage VLAN Interfacecan change or delete dataAdd, remove, enable, or disable a VLAN interface. Idempotent by name: add returns already_exists when a VLAN with matching name, vlan-id, and parent interface exists. Supports dry-run mode.
manage_vrrp_instanceManage VRRP Instancecan change or delete dataAdd, remove, enable, or disable a VRRP instance. Idempotent by name: add returns already_exists if an instance with the same name, interface, and VRID already exists.
manage_wifi_interfaceManage WiFi Interfacecan change or delete dataEnable, disable, or update SSID settings on a WiFi interface. At least one of disabled or ssid must be provided.
manage_wireguard_interfaceManage WireGuard Interfacecan change or delete dataAdd, remove, enable, or disable a WireGuard interface. Idempotent by name. RouterOS generates the private key on create — it is never passed in. The public key is returned after creation.
manage_wireguard_peerManage WireGuard Peercan change or delete dataAdd or remove a WireGuard peer. Add returns already_exists when the public key and explicitly requested endpoint/allowed addresses match; different settings produce CONFLICT without changing the peer. Omitted settings are left unchanged.
pingPingread-onlySend ICMP echo requests from the router to a target address. Returns per-packet RTT and summary statistics. 100% packet loss is a valid result, not an error.
plan_changesPlan ChangesPreview a sequence of write operations: each step runs with dryRun=true against live state, returning affected paths and the predicted action per step. Use apply_plan to execute the same steps for real.
rebootRebootcan change or delete dataTrigger a controlled router reboot with an optional delay. Supports dry-run. Use this tool instead of run_command for reboots — run_command's deny list blocks /system reboot*.
restore_swos_backupRestore SwOS Backupcan change or delete dataRestore a backup.swb file from the server's SwOS folder onto the switch, as the web UI's Restore Backup does. The switch replaces its whole configuration and reboots, so it is unreachable for a while, and its address may change to the one in the backup. By default the current configuration is saved first. dryRun defaults to true.
rollback_changeRollback Changecan change or delete dataRestore device state to before a write, identified by its journal ID. RouterOS: reads the before-snapshot, diffs against live state, and applies the reverse. SwOS: re-POSTs the exact pre-write '.b' blob. Use dryRun=true to preview. Requires MIKROMCP_DATA_DIR (defaults to data/).
run_commandRun Commandcan change or delete dataExecute an arbitrary RouterOS console command via SSH. Guarded by an allow/deny policy (built-in deny list blocks destructive commands; tighten via cmdAllow in routers.yaml or MIKROMCP_CMD_ALLOW). Prefer dedicated tools (reboot, etc.) where available. Output capped at 4000 characters. Journaled for audit like every write (see list_journal), but never snapshotted: arbitrary commands touch unknown config sections, so it cannot be rolled back via rollback_change — prefer a dedicated tool when one exists, and note the manual undo command in your own records.
run_scriptRun Scriptcan change or delete dataExecute a named RouterOS script. Fire-and-forget — the script runs asynchronously and its output is written to the router system log. Use get_log after calling this tool to see results.
save_swos_backupSave SwOS BackupDownload the switch's own configuration backup (backup.swb, the file the web UI's Save Backup produces) into the server's SwOS folder. The file is MikroTik's opaque format: it restores only through restore_swos_backup or the web UI, on the same model. A switch on factory defaults has nothing to save. Writes a file on the server (owner-only), so it is audited like a write.
set_swos_passwordSet SwOS Passwordcan change or delete dataDescription is built at runtime.
set_system_clockSet System Clockcan change or delete dataSet the system date, time, and/or timezone on a MikroTik router. Idempotent: returns already_set if the values already match. Supports dry-run.
torchTorchread-onlyCapture a real-time traffic snapshot on a router interface. RouterOS runs the capture for `duration` seconds; the tool returns the flows of the final update with their TX/RX rates in bits per second and packets per second. Not auto-retried.
tracerouteTracerouteread-onlyTrace the network path from the router to a target address. Returns an ordered hop list with RTT per hop. Timeouts and partial results are valid responses. Not auto-retried.
upgrade_swos_firmwareUpgrade SwOS Firmwarecan change or delete dataUpgrade a SwOS switch's firmware the way the web UI's Upgrade tab does. Resolves the latest stable version for the model from MikroTik's download server (or takes `version`), downloads swos-<board>-<version>.bin over HTTPS into the server's SwOS folder (or uses `file`), checks it, then flashes it; the switch reboots. Refuses release candidates unless allowPrerelease is true. A switch still on its preinstalled backup firmware (a version ending in 'p', which cannot save configuration) counts as needing the upgrade. dryRun defaults to true.
upload_fileUpload Filecan change or delete dataUpload a text file to a router, overwriting any existing file of the same name. Prefers SFTP (encrypted, over SSH) and falls back to plaintext FTP if SFTP is unavailable. Requires SSH (or FTP) access for the router user. RouterOS runs a file named *.auto.rsc as a script when it arrives over FTP. Dry-run tests connectivity only.
write_swos_blobWrite SwOS Blobcan change or delete dataMutate a SwOS '.b' endpoint on a MikroTik switch. The full endpoint blob is read, the given fields are merged in, and the entire blob is written back (the firmware only accepts whole-blob writes); untouched fields are re-sent byte-for-byte, and a field this firmware does not expose is refused rather than injected. dryRun defaults to true — preview first. Every result reports whether the schema has been verified against the switch's firmware. The pre-write blob is snapshotted, so the change can be undone with rollback_change. Returns no_change when the values already match.
Signals
- Stars
- 79
- Forks
- 9
- Open issues
- 0
- Last commit
- Oct 24, 2026 (5 days ago)
- Last release
- Oct 24, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.AliKarami/mikromcp- Version
- 1.16.0
- Auth
- No auth
- Packages
- npm mikromcp
- License
- MIT
- Repository
- github.com/AliKarami/MikroMCP
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
MikroMCP MCP server. Agent Mart. https://agentmart.dev/connectors/alikarami-mikromcp (last updated 2026-10-25)