Skip to content
Agentmart
Submit a tool

Mikrotik MCP

MCP server for MikroTik routers: firewall, NAT, routing, DHCP, DNS, WireGuard and more via SSH.

Connector by wiresage · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 305
Write a review

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/wiresage-mikrotik-mcp

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.

We use your email only for this newsletter. Privacy

About

MCP server for MikroTik routers: firewall, NAT, routing, DHCP, DNS, WireGuard and more via SSH.

Use cases: cloud-management

No 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 and install config. Checked Oct 25, 2026.

Tools
92 read · 86 write · 28 delete · 6 not yet classified
Secrets
3 (API keys, tokens or passwords)
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 212

Read from the source code; the running server may list different tools.

Read 92 · Look things up without changing anything.

  • check_route_path
  • check_wireless_support
  • export_section
  • get_active_users
  • get_address_list_entry
  • get_dhcp_server
  • get_dns_cache
  • get_dns_cache_statistics
  • get_dns_settings
  • get_dns_static
  • get_filter_rule
  • get_interface
Show 80 more tools
  • get_ip_address
  • get_ip_pool
  • get_ipsec_active_peers
  • get_ipsec_installed_sa
  • get_ipv6_address
  • get_ipv6_filter_rule
  • get_log_statistics
  • get_logs
  • get_logs_by_severity
  • get_logs_by_topic
  • get_nat_rule
  • get_poe_monitor
  • get_poe_settings
  • get_queue_tree
  • get_queue_type
  • get_route
  • get_route_cache
  • get_route_statistics
  • get_routing_table
  • get_security_logs
  • get_simple_queue
  • get_system_clock
  • get_system_events
  • get_system_health
  • get_system_package_update
  • get_system_resource
  • get_system_routerboard
  • get_user
  • get_user_group
  • get_vlan_interface
  • get_wireguard_interface
  • get_wireguard_peer
  • get_wireless_interface
  • get_wireless_registration_table
  • get_wireless_security_profile
  • list_address_list_entries
  • list_arp_entries
  • list_backups
  • list_devices
  • list_dhcp_leases
  • list_dhcp_servers
  • list_dhcpv6_bindings
  • list_dns_static
  • list_filter_rules
  • list_interfaces
  • list_ip_addresses
  • list_ip_pool_used
  • list_ip_pools
  • list_ip_services
  • list_ipsec_peers
  • list_ipsec_policies
  • list_ipsec_profiles
  • list_ipsec_proposals
  • list_ipv6_addresses
  • list_ipv6_filter_rules
  • list_ipv6_neighbors
  • list_nat_rules
  • list_netwatch
  • list_poe
  • list_queue_trees
  • list_queue_types
  • list_routes
  • list_schedulers
  • list_scripts
  • list_simple_queues
  • list_system_packages
  • list_user_groups
  • list_user_ssh_keys
  • list_users
  • list_vlan_interfaces
  • list_wireguard_interfaces
  • list_wireguard_peers
  • list_wireless_access_list
  • list_wireless_interfaces
  • list_wireless_security_profiles
  • monitor_logs
  • safe_mode_status
  • scan_wireless_networks
  • search_logs
  • test_dns_query

Write 86 · Create, change, send or run things.

  • add_blackhole_route
  • add_default_route
  • add_dns_regexp
  • add_dns_static
  • add_ip_address
  • add_ipv6_address
  • add_route
  • add_user
  • add_user_group
  • add_wireguard_peer
  • backup_info
  • commit_safe_mode
Show 74 more tools
  • create_address_list_entry
  • create_backup
  • create_basic_firewall_setup
  • create_dhcp_network
  • create_dhcp_pool
  • create_dhcp_server
  • create_export
  • create_filter_rule
  • create_ip_pool
  • create_ipv6_filter_rule
  • create_nat_rule
  • create_queue_tree
  • create_queue_type
  • create_simple_queue
  • create_vlan_interface
  • create_wireguard_interface
  • create_wireless_access_list
  • create_wireless_interface
  • create_wireless_security_profile
  • disable_address_list_entry
  • disable_dns_static
  • disable_filter_rule
  • disable_interface
  • disable_ipv6_filter_rule
  • disable_nat_rule
  • disable_queue_tree
  • disable_route
  • disable_simple_queue
  • disable_user
  • disable_wireguard_interface
  • disable_wireguard_peer
  • disable_wireless_interface
  • download_file
  • enable_address_list_entry
  • enable_dns_static
  • enable_filter_rule
  • enable_interface
  • enable_ipv6_filter_rule
  • enable_nat_rule
  • enable_queue_tree
  • enable_route
  • enable_safe_mode
  • enable_simple_queue
  • enable_user
  • enable_wireguard_interface
  • enable_wireguard_peer
  • enable_wireless_interface
  • import_configuration
  • move_filter_rule
  • move_ipv6_filter_rule
  • move_nat_rule
  • restore_backup
  • set_dns_servers
  • set_user_ssh_keys
  • set_wireless_passphrase
  • set_wireless_security_profile
  • update_address_list_entry
  • update_dhcp_network
  • update_dns_static
  • update_filter_rule
  • update_ip_pool
  • update_ipv6_filter_rule
  • update_nat_rule
  • update_queue_tree
  • update_queue_type
  • update_route
  • update_simple_queue
  • update_user
  • update_user_group
  • update_vlan_interface
  • update_wireguard_interface
  • update_wireguard_peer
  • update_wireless_interface
  • upload_file

Delete 28 · Delete, drop, revoke or wipe things.

  • clear_logs
  • flush_dns_cache
  • flush_route_cache
  • remove_address_list_entry
  • remove_dhcp_network
  • remove_dhcp_server
  • remove_dns_static
  • remove_file
  • remove_filter_rule
  • remove_ip_address
  • remove_ip_pool
  • remove_ipv6_address
Show 16 more tools
  • remove_ipv6_filter_rule
  • remove_nat_rule
  • remove_queue_tree
  • remove_queue_type
  • remove_route
  • remove_simple_queue
  • remove_user
  • remove_user_group
  • remove_user_ssh_key
  • remove_vlan_interface
  • remove_wireguard_interface
  • remove_wireguard_peer
  • remove_wireless_access_list_entry
  • remove_wireless_interface
  • remove_wireless_security_profile
  • rollback_safe_mode

Not yet classified 6 · We could not tell from the name and description.

  • disconnect_user
  • expand_ip_pool
  • export_dns_config
  • export_logs
  • export_user_config
  • generate_wireguard_client_config

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • MIKROTIK_INVENTORY
  • MIKROTIK_KEY_FILENAME
  • MIKROTIK_PASSWORD

Other settings (environment variables or headers).

  • MIKROTIK_HOST
  • MIKROTIK_INVENTORY_FILE
  • MIKROTIK_PORT
  • MIKROTIK_READ_ONLY
  • MIKROTIK_SENSITIVE_HIDING
  • MIKROTIK_USERNAME

Files it touches

  • Any path the agent passes to its tools

Tools (212)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_blackhole_route

    Adds a blackhole route. Notes: dst_address: CIDR e.g. "10.0.0.0/8" distance: 1-255

  • add_default_route

    Adds a default route.

  • add_dns_regexp

    Adds a DNS regexp entry.

  • add_dns_static

    Adds a static DNS entry. Notes: regexp: a regular expression the name must match. A regexp entry has no name, so ``name`` is ignored when ``regexp`` is given (RouterOS refuses both: "only name or regexp allowed").

  • add_ip_address

    Adds an IP address to an interface on the MikroTik device.

  • add_ipv6_address

    Adds an IPv6 address to an interface on the MikroTik device. Notes: address: IPv6 address with prefix length, e.g. "2001:db8::1/64" or "fe80::1/64". When `from_pool` is used, supply the host part only, e.g. "::1/64". advertise: include this prefix in Router Advertisements (default no). eui_64: derive the host part of the address from the interface MAC. from_pool: name of an IPv6 pool to take the prefix from. no_dad: skip Duplicate Address Detection.

  • add_route

    Adds a route to the routing table. Notes: dst_address: CIDR e.g. "0.0.0.0/0", "192.168.1.0/24" routing_table: name of a table from /routing table, e.g. "via_ISP2"; defaults to "main". RouterOS 6 called this the routing mark. check_gateway: "ping" or "arp" distance: 1-255 (lower = higher priority)

  • add_user

    Adds a user to MikroTik device.

  • add_user_group

    Adds a user group.

  • add_wireguard_peer

    Adds a WireGuard peer (with public key and allowed addresses) to an interface on the MikroTik device. Notes: allowed_address: CIDR, comma-separated for multiple e.g. "10.0.0.2/32" or "10.0.0.0/24,192.168.0.0/24" endpoint_address: remote host IP or hostname e.g. "203.0.113.1" persistent_keepalive: seconds as string e.g. "25"

  • backup_info

    Gets detailed information about a backup file on the MikroTik device.

  • check_route_path

    Checks the route MikroTik would use to reach a destination.

  • check_wireless_support

    Checks if the device supports wireless and reports the RouterOS version and wireless interface type.

  • clear_logs

    Explains why MikroTik's in-memory log cannot be cleared on demand.

  • commit_safe_mode

    Commits all pending Safe Mode changes to persistent storage and exits Safe Mode.

Show 197 more tools
  • create_address_list_entry

    Adds an entry to an IPv4 or IPv6 firewall address list. Notes: address: an address or prefix; a hostname is also accepted and RouterOS adds a dynamic child entry per resolved address. timeout: RouterOS duration e.g. "1h". An entry with a timeout is dynamic, so it does not survive a reboot. list_name is matched exactly, including any leading or trailing spaces.

  • create_backup

    Creates a system backup on the MikroTik device.

  • create_basic_firewall_setup

    Creates a basic firewall setup with common security rules on the MikroTik device.

  • create_dhcp_network

    Creates a DHCP network configuration (gateway, DNS, domain, etc.) on the MikroTik device.

  • create_dhcp_pool

    Creates a DHCP address pool with the given IP ranges on the MikroTik device. Notes: ranges: hyphen-separated range(s) e.g. "192.168.1.1-192.168.1.100" Multiple ranges comma-separated: "10.0.0.1-10.0.0.50,10.0.0.100-10.0.0.120"

  • create_dhcp_server

    Creates a DHCP server bound to the specified interface on the MikroTik device. Notes: lease_time: duration e.g. "1d", "12h", "30m", "1h30m"

  • create_export

    Creates a configuration export file (rsc/json/xml) on the MikroTik device.

  • create_filter_rule

    Creates a firewall filter rule in the specified chain on the MikroTik device. Notes: connection_state: comma-separated e.g. "established,related,new,invalid" limit: RouterOS rate/burst string e.g. "10,5:packet" or "10/1s:packet" tcp_flags: RouterOS flag expression e.g. "syn,!ack" place_before: rule number or ID (*N) to insert before e.g. "0" or "*3" in_interface_list/out_interface_list: name of an /interface list (e.g. "LAN", "WAN") rather than a single interface

  • create_ip_pool

    Creates an IP pool with the given address ranges on the MikroTik device. Notes: ranges: hyphen-separated range(s) e.g. "192.168.1.1-192.168.1.100" Multiple ranges comma-separated: "10.0.0.1-10.0.0.50,10.0.0.100-10.0.0.120"

  • create_ipv6_filter_rule

    Creates an IPv6 firewall filter rule on the MikroTik device. Notes: protocol: IPv6 uses "icmpv6", not the IPv4 spelling "icmp". jump_target: only used with action="jump".

  • create_nat_rule

    Creates a NAT rule (srcnat or dstnat) on the MikroTik device. Notes: to_addresses: single IP or range e.g. "10.0.0.1" or "10.0.0.1-10.0.0.10" to_ports: single port or range e.g. "8080" or "8080-8090" place_before: rule number or ID (*N) to insert before e.g. "0" or "*3"

  • create_queue_tree

    Creates a hierarchical queue tree entry attached to a parent interface or queue. Notes: max_limit / limit_at / burst_limit / burst_threshold: bandwidth e.g. "10M", "512k", "1G" burst_time: duration e.g. "8s" parent: interface name e.g. "ether1" or parent queue name priority: 1 (highest) – 8 (lowest)

  • create_queue_type

    Creates a queue type (qdisc). kind selects the discipline (cake, fq-codel, sfq, red, pcq, pfifo, bfifo); remaining params are per-discipline options. Notes: pcq_rate: bandwidth per flow e.g. "1M", "512k" pcq_classifier: comma-separated classifiers e.g. "src-address,dst-address" cake_rtt: round-trip time e.g. "50ms", "100ms" fq_codel_target / fq_codel_interval: time e.g. "5ms", "100ms"

  • create_simple_queue

    Creates a simple queue to rate-limit a target address or interface. Notes: target: IP/CIDR or interface e.g. "192.168.1.0/24" or "ether1" max_limit / limit_at / burst_limit / burst_threshold: upload/download bandwidth as "UL/DL" e.g. "10M/10M", or single value e.g. "10M" burst_time: duration e.g. "8s" priority: 1 (highest) – 8 (lowest)

  • create_vlan_interface

    Creates a VLAN interface on the MikroTik device with the given VLAN ID and parent interface.

  • create_wireguard_interface

    Creates a WireGuard interface on the MikroTik device.

  • create_wireless_access_list

    Legacy function - different in RouterOS v7.x

  • create_wireless_interface

    Creates a wireless interface on the MikroTik device (auto-detects RouterOS v6/v7 syntax).

  • create_wireless_security_profile

    Legacy function - not supported in RouterOS v7.x

  • disable_address_list_entry

    Disables an address list entry.

  • disable_dns_static

    Disables a static DNS entry.

  • disable_filter_rule

    Disables a firewall filter rule.

  • disable_interface

    Disables an interface on the MikroTik device. Notes: name: exact interface name e.g. "ether1", "bridge", "pppoe-out1"

  • disable_ipv6_filter_rule

    Disables an IPv6 firewall filter rule.

  • disable_nat_rule

    Disables a NAT rule.

  • disable_queue_tree

    Disables a queue tree.

  • disable_route

    Disables a route. Notes: route_id: "*N" or "N" from list output e.g. "*3"

  • disable_simple_queue

    Disables a simple queue.

  • disable_user

    Disables a user.

  • disable_wireguard_interface

    Disables a WireGuard interface.

  • disable_wireguard_peer

    Disables a WireGuard peer. Notes: peer_id: "*N" or "N" from list output e.g. "*2"

  • disable_wireless_interface

    Disables a wireless interface.

  • disconnect_user

    Disconnects an active user session.

  • download_file

    Downloads a backup or export file from the MikroTik device as base64-encoded content.

  • enable_address_list_entry

    Enables an address list entry.

  • enable_dns_static

    Enables a static DNS entry.

  • enable_filter_rule

    Enables a firewall filter rule.

  • enable_interface

    Enables an interface on the MikroTik device. Notes: name: exact interface name e.g. "ether1", "bridge", "pppoe-out1"

  • enable_ipv6_filter_rule

    Enables an IPv6 firewall filter rule.

  • enable_nat_rule

    Enables a NAT rule.

  • enable_queue_tree

    Enables a queue tree.

  • enable_route

    Enables a route. Notes: route_id: "*N" or "N" from list output e.g. "*3"

  • enable_safe_mode

    Activates MikroTik Safe Mode; changes are held in memory and auto-reverted on disconnect until committed.

  • enable_simple_queue

    Enables a simple queue.

  • enable_user

    Enables a user.

  • enable_wireguard_interface

    Enables a WireGuard interface.

  • enable_wireguard_peer

    Enables a WireGuard peer. Notes: peer_id: "*N" or "N" from list output e.g. "*2"

  • enable_wireless_interface

    Enables a wireless interface.

  • expand_ip_pool

    Expands an existing IP pool by appending additional address ranges. Notes: additional_ranges: hyphen-separated range(s) e.g. "192.168.1.101-192.168.1.150" Multiple ranges comma-separated: "10.0.0.51-10.0.0.60,10.0.0.70-10.0.0.80"

  • export_dns_config

    Exports DNS configuration to a file.

  • export_logs

    Exports logs to a .txt file on the MikroTik device with optional topic and time filters.

  • export_section

    Returns a RouterOS configuration section as an export script. Notes: section: RouterOS path without leading slash e.g. "ip address", "interface vlan", "ip firewall filter", "ip firewall nat", "queue simple" hide_sensitive: keep secrets out of the output (False appends show-sensitive)

  • export_user_config

    Exports user configuration to a file.

  • flush_dns_cache

    Flushes the DNS cache.

  • flush_route_cache

    Flushes the route cache.

  • generate_wireguard_client_config

    Generates a wg0.conf client config string from the given keys and server endpoint. Does not communicate with the router.

  • get_active_users

    Gets currently active/logged-in users.

  • get_address_list_entry

    Gets one address list entry by list name and address.

  • get_dhcp_server

    Gets detailed information about a specific DHCP server.

  • get_dns_cache

    Gets the current DNS cache.

  • get_dns_cache_statistics

    Gets DNS cache statistics.

  • get_dns_settings

    Gets current DNS configuration.

  • get_dns_static

    Gets details of a specific static DNS entry.

  • get_filter_rule

    Gets detailed information about a specific firewall filter rule. Notes: rule_id: positional number from list output (e.g. "12") or internal ID (e.g. "*1A")

  • get_interface

    Gets detailed information about a specific interface by name. Notes: name: exact interface name e.g. "ether1", "bridge", "pppoe-out1", "wg0"

  • get_ip_address

    Gets detailed information about a specific IP address by ID or address value.

  • get_ip_pool

    Gets detailed information about a specific IP pool including used address count.

  • get_ipsec_active_peers

    Lists the IPsec peers with a live IKE session, with uptime and counters. Shows the parent (phase 1) side: `state`, `uptime`, `last-seen` and the byte counters. A peer can sit here `established` while its child SAs carry nothing — use `get_ipsec_installed_sa` to tell the difference. Notes: Both filters are exact matches.

  • get_ipsec_installed_sa

    Lists the installed IPsec security associations (child/phase 2 SAs). The Flags legend is the point of this view. On RouterOS 7 it reads: S - SEEN-TRAFFIC the SA has carried packets H - HW-AEAD the cipher is running in hardware E - ESP `S` is the only field that separates an SA carrying traffic from one that is merely installed. A remote end reporting the connection as up, or its own byte counters growing, does not contradict a missing `S`: those count what the far side sent, not what arrived. Two things this does NOT tell you, both easy to get wrong: - **A missing `S` c…

  • get_ipv6_address

    Gets detailed information about a specific IPv6 address by ID or address value. Notes: address_id: a RouterOS internal id (e.g. "*1") or the address value (e.g. "2001:db8::1/64").

  • get_ipv6_filter_rule

    Gets detailed information about a specific IPv6 firewall filter rule. Notes: rule_id: a RouterOS internal id ("*1") or a print position ("0").

  • get_log_statistics

    Gets log entry counts by topic and severity from the MikroTik device.

  • get_logs

    Gets logs from the MikroTik device with optional topic, time, and message filters. Notes: topics: comma-separated, entry matches any of them e.g. "system,dhcp" time_filter: RouterOS duration e.g. "30s", "5m", "1h", "2d" message_filter: RouterOS regex matched against the message (case-sensitive) limit: keep only the newest N entries

  • get_logs_by_severity

    Gets logs filtered by severity level (debug/info/warning/error/critical).

  • get_logs_by_topic

    Gets logs for a specific topic/facility (system, dhcp, interface, firewall, etc.).

  • get_nat_rule

    Gets detailed information about a specific NAT rule. Notes: rule_id: use the ID from list output e.g. "*1" or "0"

  • get_poe_monitor

    Reads real-time Power-over-Ethernet (PoE) monitor data for one or more ethernet interfaces — PoE-out status, voltage, current, and power. Runs ``/interface ethernet poe monitor <interfaces> once``. Notes: interfaces: comma-separated ethernet interface name(s), e.g. "ether1" or "ether9-ap,ether10-ap,ether11-ap,ether12-ap"

  • get_poe_settings

    Gets the detailed PoE-out settings of a specific ethernet interface (PoE-out mode, priority, voltage, low/high thresholds, …). Runs ``/interface ethernet poe print detail where name=<name>``. Notes: name: exact ethernet interface name, e.g. "ether1"

  • get_queue_tree

    Gets detailed information about a specific queue tree.

  • get_queue_type

    Gets detailed information about a specific queue type.

  • get_route

    Gets detailed information about a specific route. Notes: route_id: "*N" or "N" from list output e.g. "*3"

  • get_route_cache

    Gets the route cache.

  • get_route_statistics

    Gets routing table statistics.

  • get_routing_table

    Gets a specific routing table.

  • get_security_logs

    Gets security-related log entries (logins, failures, blocked connections, etc.).

  • get_simple_queue

    Gets detailed information about a specific simple queue.

  • get_system_clock

    Reports the device clock, time zone and DST setting. Notes: Log timestamps are only as trustworthy as this. A device without a working time source dates its own evidence wrongly, which matters when correlating an incident across sites.

  • get_system_events

    Gets system-related log events (login, reboot, config-change, etc.).

  • get_system_health

    Reports the board sensors: voltage, temperature, fan and PSU state. Notes: Many boards carry no sensors at all and legitimately report nothing. An empty answer here means "this model does not measure it", not "the reading failed".

  • get_system_package_update

    Reports the installed RouterOS version against the latest on its channel. Notes: This reads the stored result of the last check; it does not contact MikroTik. `latest-version` can therefore be stale or empty on a device that has never checked or cannot reach the update server.

  • get_system_resource

    Reports uptime, RouterOS version, board name, architecture, CPU and memory. Notes: `free-memory` against `total-memory` and `cpu-load` are the two numbers worth reading before blaming the network for a slow device. On the low-power boards a single packet-sniffing tool can saturate the CPU on its own.

  • get_system_routerboard

    Reports the model, serial number and bootloader firmware revision. Notes: `current-firmware` against `upgrade-firmware` is the RouterBOOT bootloader, which is upgraded separately from RouterOS and is easy to leave behind after a package upgrade.

  • get_user

    Gets detailed information about a specific user.

  • get_user_group

    Gets detailed information about a specific user group.

  • get_vlan_interface

    Gets detailed information about a specific VLAN interface.

  • get_wireguard_interface

    Gets detailed information about a specific WireGuard interface.

  • get_wireguard_peer

    Gets detailed information about a specific WireGuard peer by ID. Notes: peer_id: "*N" or "N" from list output e.g. "*2"

  • get_wireless_interface

    Gets detailed information about a specific wireless interface.

  • get_wireless_registration_table

    Gets the wireless registration table (connected clients) from the MikroTik device.

  • get_wireless_security_profile

    Legacy function - not supported in RouterOS v7.x

  • import_configuration

    Imports and executes a RouterOS configuration script (.rsc file) on the device.

  • list_address_list_entries

    Lists IPv4 or IPv6 firewall address list entries. Notes: list_filter: exact list name, including any trailing space. address_filter/comment_filter: partial match. static_only excludes the dynamic children a hostname entry creates.

  • list_arp_entries

    Lists detailed IPv4 ARP entries. Notes: Address and MAC filters are substring matches. Interface and status filters are exact matches.

  • list_backups

    Lists backup files on the MikroTik device.

  • list_devices

    Lists the MikroTik devices this server manages. Use this to discover which devices are available and what their titles are. Every other tool takes an optional `device` argument that must be one of the titles returned here. When only one device is configured, `device` may be omitted and that device is used automatically. Credentials are never returned.

  • list_dhcp_leases

    Lists detailed IPv4 DHCP leases, optionally filtering active lease fields. Notes: Address and identity filters are substring matches. Server, status, and lease time filters are exact matches against RouterOS `lease-time`.

  • list_dhcp_servers

    Lists DHCP servers on the MikroTik device.

  • list_dhcpv6_bindings

    Lists detailed DHCPv6 bindings. Notes: Address and DUID filters are substring matches. IAID, server, status, and lease time filters are exact matches; lease time maps to `life-time`.

  • list_dns_static

    Lists static DNS entries.

  • list_filter_rules

    Lists firewall filter rules on the MikroTik device.

  • list_interfaces

    Lists all interfaces on the MikroTik device (ethernet, bridge, WireGuard, PPPoE, VLAN, WiFi, SFP, LTE, loopback, and any other type). Notes: type_filter: RouterOS interface type e.g. "ether", "bridge", "vlan", "wg", "pppoe-out", "wifi", "lte", "loopback" name_filter: partial name match e.g. "ether" matches ether1, ether2 …

  • list_ip_addresses

    Lists IP addresses on the MikroTik device.

  • list_ip_pool_used

    Lists currently used (allocated) addresses from IP pools.

  • list_ip_pools

    Lists IP pools on the MikroTik device.

  • list_ip_services

    Lists the management services with their port and address restriction. Notes: `name_filter` is a substring match (`winbox`, `ssh`, `api`, `www`, `www-ssl`, `ftp`, `telnet`). `enabled_only=True` hides the disabled ones, which is the list that actually describes exposure. An empty `address` means unrestricted. Read that together with how the device is reached: unrestricted on a router whose WAN holds a public address means the service is published to the internet, whether or not the port was changed from its default. `ftp` deserves its own look: RouterOS also s…

  • list_ipsec_peers

    Lists the configured IPsec peers. Notes: Filters are substring matches. Secrets live on `/ip ipsec identity` and are not exposed by any tool in this server.

  • list_ipsec_policies

    Lists the IPsec policies, with their phase 2 state. The Flags legend distinguishes configured policies from the ones a peer generated at runtime (`D` dynamic), and `ph2-state` says whether the child SA is established. A policy whose selectors do not match the far end's is the usual cause of a tunnel that comes up and passes nothing. Notes: `peer_filter` is a substring match on the peer name; the address filters are substring matches on the policy selectors, which are the encapsulated subnets, not the tunnel endpoints.

  • list_ipsec_profiles

    Lists the IPsec profiles (phase 1 proposal: DH group, hash, lifetime, DPD). Notes: `lifetime` here is phase 1. It must be LONGER than the phase 2 lifetime on `/ip ipsec proposal`, so the child SA rekeys inside a live parent SA; equal lifetimes tear the tunnel down on every rekey. `dpd-interval` multiplied by `dpd-maximum-failures` is how many seconds of silence the peer tolerates.

  • list_ipsec_proposals

    Lists the IPsec proposals (phase 2: encryption, auth, PFS, lifetime). Notes: Compare `lifetime` against the phase 1 lifetime on `/ip ipsec profile`, and against whatever the far end proposes — a cloud provider's own SA lifetime counts as a third value in that comparison.

  • list_ipv6_addresses

    Lists IPv6 addresses on the MikroTik device. Notes: address_filter: partial match on the address, e.g. "2001:db8" or "fe80". global_only: show only global (routable) addresses. link_local_only: show only link-local (fe80::/10) addresses.

  • list_ipv6_filter_rules

    Lists IPv6 firewall filter rules on the MikroTik device. Notes: protocol_filter: IPv6 uses "icmpv6", not the IPv4 spelling "icmp". src_address_filter/dst_address_filter: partial match on the address, e.g. "2001:db8" matches every rule whose address starts with it.

  • list_ipv6_neighbors

    Lists detailed IPv6 neighbor-discovery entries. Notes: Address and MAC filters are substring matches. Interface and status filters are exact matches.

  • list_nat_rules

    Lists NAT rules on the MikroTik device.

  • list_netwatch

    Lists the netwatch probes with their live status and measurements. Configuration first, then a LIVE STATE block with `status`, `since` — the timestamp of the last transition — and, on an ICMP probe, the last test's numbers: `rtt-avg`, `loss-percent`, `failed-tests`. Match the two blocks by `host`, or by the `.id` the live one carries. Notes: `host_filter` and `comment_filter` are substring matches; `status_filter` and `type_filter` are exact. Pass `status_filter="down"` to list only what is currently failing. `include_source=False` (the default) omits `up-script`, `down-…

  • list_poe

    Lists the Power-over-Ethernet (PoE) configuration of PoE-capable ethernet interfaces (PoE-out mode, priority). Runs ``/interface ethernet poe print``. Notes: interface_filter: partial name match, e.g. "ether" matches ether1, ether2 …

  • list_queue_trees

    Lists queue trees on the MikroTik device.

  • list_queue_types

    Lists queue types on the MikroTik device.

  • list_routes

    Lists routes in MikroTik routing table.

  • list_schedulers

    Lists the scheduled tasks with their interval, next run and run count. Notes: `name_filter` is a substring match. Read `next-run` together with `interval`: a scheduler whose `run-count` is not advancing is firing into a script that errors out, which RouterOS does not surface here — it shows up in the log under the `script` topic. `include_source=False` (the default) omits `on-event`, because a scheduler can carry commands inline, and those routinely hold a bot token or a password inside a URL. Redaction only recognises labelled secrets, so withholding the fiel…

  • list_scripts

    Lists the stored scripts: owner, policy, run count and last start. Notes: `include_source=False` (the default) omits the script body, because bodies routinely hold credentials in clear text. Set it to True only when you intend to read the code; the output is redacted either way, but redaction is pattern-based and is not a guarantee. `policy` is what the script may do when it runs, which can exceed what the user who scheduled it may do interactively.

  • list_simple_queues

    Lists simple queues on the MikroTik device.

  • list_system_packages

    Lists the installed RouterOS packages and which are disabled.

  • list_user_groups

    Lists user groups on MikroTik device.

  • list_user_ssh_keys

    Lists SSH keys for a specific user.

  • list_users

    Lists users on MikroTik device.

  • list_vlan_interfaces

    Lists VLAN interfaces on the MikroTik device.

  • list_wireguard_interfaces

    Lists WireGuard interfaces on the MikroTik device.

  • list_wireguard_peers

    Lists WireGuard peers on the MikroTik device.

  • list_wireless_access_list

    Legacy function - different in RouterOS v7.x

  • list_wireless_interfaces

    Lists wireless interfaces on the MikroTik device.

  • list_wireless_security_profiles

    Legacy function - not supported in RouterOS v7.x

  • monitor_logs

    Watches for new log entries for a limited duration (max 60s) and returns them. Notes: duration: seconds to wait for new entries, capped at 60

  • move_filter_rule

    Moves a firewall filter rule to a different position in the chain. Notes: rule_id: positional number from list output (e.g. "12") or internal ID (e.g. "*1A") destination: 0-based target position index

  • move_ipv6_filter_rule

    Moves an IPv6 firewall filter rule to a different position in the chain. Notes: rule_id: a RouterOS internal id ("*1") or a print position ("0"). destination: 0-based target position index

  • move_nat_rule

    Moves a NAT rule to a different position in the chain. Notes: rule_id: use the ID from list output e.g. "*1" or "0" destination: 0-based target position index

  • remove_address_list_entry

    Removes an address list entry by list name and address. Notes: Removing a hostname entry also clears the dynamic entries RouterOS derived from it.

  • remove_dhcp_network

    Removes a DHCP network configuration from the MikroTik device.

  • remove_dhcp_server

    Removes a DHCP server from the MikroTik device.

  • remove_dns_static

    Removes a static DNS entry.

  • remove_file

    Removes a file from the MikroTik device filesystem.

  • remove_filter_rule

    Removes a firewall filter rule from the MikroTik device. Notes: rule_id: positional number from list output (e.g. "12") or internal ID (e.g. "*1A")

  • remove_ip_address

    Removes an IP address from the MikroTik device by ID or address value.

  • remove_ip_pool

    Removes an IP pool from the MikroTik device (fails if pool is in use).

  • remove_ipv6_address

    Removes an IPv6 address from the MikroTik device by ID or address value. Notes: address_id: a RouterOS internal id (e.g. "*1") or the address value (e.g. "2001:db8::1/64").

  • remove_ipv6_filter_rule

    Removes an IPv6 firewall filter rule from the MikroTik device. Notes: rule_id: a RouterOS internal id ("*1") or a print position ("0").

  • remove_nat_rule

    Removes a NAT rule from the MikroTik device. Notes: rule_id: use the ID from list output e.g. "*1" or "0"

  • remove_queue_tree

    Removes a queue tree from the MikroTik device.

  • remove_queue_type

    Removes a queue type from the MikroTik device.

  • remove_route

    Removes a route. Notes: route_id: "*N" or "N" from list output e.g. "*3"

  • remove_simple_queue

    Removes a simple queue from the MikroTik device.

  • remove_user

    Removes a user.

  • remove_user_group

    Removes a user group.

  • remove_user_ssh_key

    Removes an SSH key.

  • remove_vlan_interface

    Removes a VLAN interface from the MikroTik device.

  • remove_wireguard_interface

    Removes a WireGuard interface from the MikroTik device.

  • remove_wireguard_peer

    Removes a WireGuard peer from the MikroTik device. Notes: peer_id: "*N" or "N" from list output e.g. "*2"

  • remove_wireless_access_list_entry

    Legacy function - different in RouterOS v7.x

  • remove_wireless_interface

    Removes a wireless interface from the MikroTik device.

  • remove_wireless_security_profile

    Legacy function - not supported in RouterOS v7.x

  • restore_backup

    Restores a system backup on the MikroTik device; triggers a reboot.

  • rollback_safe_mode

    Discards all pending Safe Mode changes by closing the SSH session, triggering automatic rollback.

  • safe_mode_status

    Returns whether MikroTik Safe Mode is currently active.

  • scan_wireless_networks

    Scans for nearby wireless networks using the specified interface.

  • search_logs

    Searches log messages for a literal term. Notes: search_term: treated literally (regex specials are escaped) case_sensitive: RouterOS matching is case-sensitive; by default the search emulates case-insensitivity with character classes

  • set_dns_servers

    Sets DNS server configuration.

  • set_user_ssh_keys

    Sets SSH keys for a specific user.

  • set_wireless_passphrase

    Sets the WiFi passphrase directly on a RouterOS v7 wireless interface (/interface wifi or wifiwave2). Notes: authentication_types: comma-separated RouterOS auth types, e.g. "wpa2-psk,wpa3-psk"; unset keeps the current setting.

  • set_wireless_security_profile

    Legacy function - not supported in RouterOS v7.x

  • test_dns_query

    Tests a DNS query. Notes: type: accepted values are A/ipv4, AAAA/ipv6, any, any6

  • update_address_list_entry

    Updates an address list entry, located by its current list name and address. Notes: Pass "" to clear comment or timeout. A change is confirmed on the device before success is reported.

  • update_dhcp_network

    Updates fields on an existing DHCP network entry on the MikroTik device. Notes: Pass an empty list for dns_servers/wins_servers/ntp_servers/dhcp_option (or "" for domain) to clear that field.

  • update_dns_static

    Updates a static DNS entry.

  • update_filter_rule

    Updates an existing firewall filter rule on the MikroTik device. Notes: rule_id: positional number from list output (e.g. "12") or internal ID (e.g. "*1A") connection_state: comma-separated e.g. "established,related" limit: RouterOS rate string e.g. "10,5:packet" tcp_flags: RouterOS flag expression e.g. "syn,!ack" Pass "" to clear an optional field (e.g. src_address="").

  • update_ip_pool

    Updates an existing IP pool's name, ranges, or next-pool reference. Notes: ranges: hyphen-separated range(s) e.g. "192.168.1.1-192.168.1.100" Multiple ranges comma-separated: "10.0.0.1-10.0.0.50,10.0.0.100-10.0.0.120" Pass "" for next_pool to clear it.

  • update_ipv6_filter_rule

    Updates an existing IPv6 firewall filter rule on the MikroTik device. Notes: rule_id: a RouterOS internal id ("*1") or a print position ("0"). Pass "" to clear an optional field (e.g. src_address="").

  • update_nat_rule

    Updates an existing NAT rule on the MikroTik device. Notes: rule_id: use the ID from list output e.g. "*1" or "0" to_addresses: single IP or range e.g. "10.0.0.1" or "10.0.0.1-10.0.0.10" to_ports: single port or range e.g. "8080" or "8080-8090" Pass "" to clear an optional field.

  • update_queue_tree

    Updates an existing queue tree entry (bandwidth limits, parent, priority, etc.). Notes: max_limit / limit_at / burst_limit / burst_threshold: bandwidth e.g. "10M", "512k" burst_time: duration e.g. "8s" priority: 1 (highest) – 8 (lowest)

  • update_queue_type

    Updates an existing queue type's discipline-specific settings.

  • update_route

    Updates a route. Notes: route_id: "*N" or "N" from list output e.g. "*3" dst_address: CIDR e.g. "192.168.1.0/24" check_gateway: "ping" or "arp" distance: 1-255 routing_table: name of a table from /routing table; "" moves the route back to "main", since every RouterOS 7 route belongs to a table. Pass "" to vrf_interface or pref_src to clear them.

  • update_simple_queue

    Updates an existing simple queue's rate limits, target, or scheduling settings. Notes: target: IP/CIDR or interface e.g. "192.168.1.0/24" or "ether1" max_limit / limit_at / burst_limit / burst_threshold: upload/download bandwidth as "UL/DL" e.g. "10M/10M", or single value e.g. "10M" burst_time: duration e.g. "8s" priority: 1 (highest) – 8 (lowest)

  • update_user

    Updates a user.

  • update_user_group

    Updates a user group.

  • update_vlan_interface

    Updates an existing VLAN interface's settings on the MikroTik device.

  • update_wireguard_interface

    Updates an existing WireGuard interface's settings on the MikroTik device.

  • update_wireguard_peer

    Updates an existing WireGuard peer's allowed addresses, endpoint, keepalive, or enabled state. Notes: peer_id: "*N" or "N" from list output e.g. "*2" allowed_address: CIDR, comma-separated e.g. "10.0.0.2/32" or "10.0.0.0/24,192.168.0.0/24" persistent_keepalive: seconds as string e.g. "25" Pass "" for endpoint_address or preshared_key to clear them.

  • update_wireless_interface

    Updates an existing wireless interface's settings (name, SSID, enabled state, etc.).

  • upload_file

    Uploads a base64-encoded file to the MikroTik device (for restore operations).

Compare and alternatives

    Featured in

    Signals

    Stars
    305
    Forks
    74
    Open issues
    9
    Contributors
    16
    Weekly downloads
    2,287
    Last commit
    Oct 23, 2026 (5 days ago)
    Last release
    Oct 23, 2026 (5 days ago)
    Last package publish
    Oct 23, 2026 (5 days ago)

    From GitHub (fetched Oct 24, 2026) and the package registry.

    Details

    Registry name
    io.github.wiresage/mikrotik-mcp
    Version
    0.26.1.0
    Auth
    API key
    Packages
    pypi mcp-server-mikrotik
    License
    MIT
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026
    Cite this page

    Mikrotik MCP. Agent Mart. https://agentmart.dev/connectors/wiresage-mikrotik-mcp (last updated 2026-10-24)