Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

MikroMCP

NPM · MIKROMCP

MCP server for MikroTik RouterOS and SwOS: typed tools, dry-run, RBAC, audit logs, and rollback.

Available components

0 this week 89 Trust /100

Last scanned (21 hours ago)

Scores higher than 93% of npm servers

Category Cloud Infrastructure

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 40 of 144 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to AliKarami/MikroMCP). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 1 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability71
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 19175 tokens (~144/item across 133 items; 133 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety97
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 7 of 8 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "ping" implies "send" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 134 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
What we tested

Checks we ran (16)

  • Malware scan
  • Known CVEs
  • Install scripts
  • Dependency health
  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 4 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 1.16.0 → 1.16.1 functional
  • 2 Nov 26 +1
    • Stability: 0.97 → pass security
    • Security disclosure: unverified → pass ▲ functional
  • 1 Nov 26 −1
    • Security disclosure: pass → unverified ▼ functional
    • Stability: pass → 0.97 functional
  • 25 Oct 26 +20
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: unverified → fail ▼ security
    • Malware scan: unverified → pass ▲ security
    • Dependency health: unverified → 0.89 ▲ functional
  • 24 Oct 26 −25
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → unverified ▼ security
    • Malware scan: pass → unverified ▼ security
    • Known CVEs: pass → fail ▼ security
    • Dependency health: 0.88 → unverified ▼ functional
    • Package version: 1.14.1 → 1.16.0 functional
    • Package version: 1.14.1 → 1.15.0 functional
  • 20 Oct 26 0
    • Stability: 0.97 → pass security
  • 19 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/mikromcp@1.16.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo AliKarami/MikroMCP
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/AliKarami/MikroMCP/.github/workflows/release.yml@refs/tags/v1.16.1
Rekor log index 3682638700
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:0ada8df87b4de4de5ea313bd817a31423833a973797d156105195a444d11870b07d628d61c0e28c5b8d42c1c1d03715bf7ec04416cbca21d51e1cf125

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 144 packages
Packages resolved 144
Stale 40
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 133 exposed · ~19,031 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
apply_plan ~100

Execute 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.

NameTypeReqDescription
confirmationTokenstring––
routerIdstring–Router ID; omit to use the default router.
stepsarrayyesOrdered list of write operations to apply in sequence

No output schema declared.

No examples provided.

apply_swos_config ~629

Apply 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 untagged VLAN moved or dropped, a trunk losing tagged VLANs or becoming an access port, a forced VLAN, a port that starts filtering VLANs, the port disabled, renegotiating, isolated from another linked port or moved in or out of a LAG, every linked port dropped from allow_from_ports; only risks the plan introduces) unless acceptLockoutRisk is true. All six endpoints are snapshotted before a real apply, so rollback_change restores the previous state; the result names any endpoint whose snapshot failed, and says so when none was recorded. A document that moves management to another VLAN (allow_from_vlan) and changes a port's VLAN settings or the VLAN table's membership at the same time is refused, because that cannot be written in a safe order (sys.b goes last and cuts the session): apply the VLAN changes first, then the move. `snmp.community` may reference only the secrets bound to the switch (its `secrets` list in routers.yaml); a switch without a list may reference none.

NameTypeReqDescription
acceptLockoutRiskboolean–Apply a plan whose warnings show a linked port being cut off (its VLAN, untagged traffic, link, isolation or LAG changing). Refused unless this is true; a dry run shows the warnings without it.
config–yesThe switch config: a YAML document (as text) or the same structure as an object. `version: 1`, then any of `system`, `ports`, `vlans`, `snmp`; only the settings it names are changed. `snmp.community`…
confirmationTokenstring–Token from a prior APPROVAL_REQUIRED response. Re-submit the identical call with this token to confirm the destructive action.
dryRunboolean–Plan and show every change without writing to the switch.
includeManagementboolean–Allow changes to how the switch is reached: address acquisition, static IP and the allow-from settings. Refused unless this is true.
pruneVlansboolean–When the config has a `vlans` list, remove VLANs the switch has but the list does not.
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

bandwidth_test ~120

Run 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.

NameTypeReqDescription
addressstringyesRemote host running RouterOS btest server
directionstring–Test direction
durationinteger–Test duration in seconds (max 20)
protocolstring–Test protocol
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

bulk_execute ~217

Fan 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.

NameTypeReqDescription
concurrencyinteger–Max simultaneous router calls
confirmationTokenstring–Fleet confirmation token from a prior APPROVAL_REQUIRED response. Required to fan out any write tool.
paramsobjectyesParams to pass to the tool (omit routerId — injected per router)
routerIdsarray–Explicit list of router IDs to target
tagsarray–Target all routers with ALL of these tags (mutually exclusive with routerIds)
toolNamestringyesName of the tool to fan out (must be a single-router tool)

No output schema declared.

No examples provided.

bulk_read ~220

Fan 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.

NameTypeReqDescription
concurrencyinteger–Max simultaneous router calls
paramsobjectyesParams to pass to the tool (omit routerId — injected per router)
routerIdsarray–Explicit list of router IDs to target
tagsarray–Target all routers with ALL of these tags (mutually exclusive with routerIds)
toolNamestringyesName of the read-only single-router tool to fan out (e.g. list_interfaces)

No output schema declared.

No examples provided.

check_router_health ~81

Probe 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.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

create_backup ~218

Create 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.

NameTypeReqDescription
confirmationTokenstring–Token from a prior APPROVAL_REQUIRED response. Re-submit the identical call with this token to confirm the destructive action.
dryRunboolean–Preview the backup without creating it
namestring–Backup file name (without extension)
passwordstring–Literal password to encrypt the backup. It stays in the conversation history; prefer passwordSecret
passwordSecretstring–Encrypt with the server's MIKROMCP_SECRET_<NAME> value, bound to this router by its secrets list in routers.yaml. The value never reaches the conversation
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

delete_file ~116

Delete a file from the router filesystem by name. Idempotent: returns not_found gracefully if the file does not exist.

NameTypeReqDescription
confirmationTokenstring–Token from a prior APPROVAL_REQUIRED response. Re-submit the identical call with this token to confirm the destructive action.
dryRunboolean–Preview deletion without removing the file
namestringyesExact file name on the router (e.g. flash/backup.backup)
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

export_config ~146

Export 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.

NameTypeReqDescription
compactboolean–Export only non-default settings (compact format)
confirmationTokenstring–Token from a prior APPROVAL_REQUIRED response. Re-submit the identical call with this token to confirm the destructive action.
filestring–Save the export to a file on the router (without extension); omit to return inline
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

fetch_url ~171

Send 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.

NameTypeReqDescription
confirmationTokenstring–Token from a prior APPROVAL_REQUIRED response. Re-submit the identical call with this token to confirm the destructive action.
httpDatastring–Request body for POST
methodstring–HTTP method
outputFilestring–Save response body to this router file path instead of returning inline
routerIdstring–Router ID; omit to use the default router.
urlstringyesURL to fetch from the router

No output schema declared.

No examples provided.

get_container_config ~44

Read global container configuration: registry URL, RAM high-water mark, and veth interface.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

get_dns_settings ~48

Read DNS resolver configuration: upstream servers, cache size, cache TTL, and whether remote DNS requests are allowed.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

get_file_content ~73

Read a text file's contents from a MikroTik router. Only suitable for text files — binary files will return garbled content.

NameTypeReqDescription
namestringyesExact file name on the router (e.g. flash/script.rsc)
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

get_log ~164

Read 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.

NameTypeReqDescription
limitinteger–Max results to return.
offsetinteger–Pagination offset.
prefixstring–Substring to match against the log message
routerIdstring–Router ID; omit to use the default router.
sinceMinutesinteger–Only return entries from the last N minutes (1–1440), measured against the router's clock
topicsarray–Filter entries whose topics field contains any of these strings (e.g. ["firewall", "dhcp"])

No output schema declared.

No examples provided.

get_ntp_settings ~38

Retrieve NTP client settings from a MikroTik router.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

get_ovpn_server ~52

Get the OpenVPN server configuration on a MikroTik router. Throws NOT_FOUND if the OpenVPN package is not installed.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

get_snmp_settings ~37

Retrieve SNMP settings from a MikroTik router.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

get_swos_config ~101

Export 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.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

get_swos_endpoint ~113

Fetch 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'.

NameTypeReqDescription
endpointstringyes'.b' endpoint to fetch (see list_swos_endpoints)
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

get_swos_status ~86

Retrieve 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.

NameTypeReqDescription
includearray–Which status endpoints to fetch
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

get_system_clock ~55

Read the current date, time, and timezone from a MikroTik router. Focused single-purpose alternative to the clock section in get_system_status.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

get_system_status ~66

Retrieve system status information from a MikroTik router including resource usage, identity, license, routerboard details, health sensors, and clock.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.
sectionsarray–Which system information sections to include

No output schema declared.

No examples provided.

get_upgrade_status ~56

Read the current RouterOS package upgrade status and routerboard firmware versions. Shows installed version, latest available version, update channel, and firmware upgrade availability.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_address_list_entries ~73

List firewall address list entries on a MikroTik router. Supports filtering by list name and address.

NameTypeReqDescription
addressstring–Filter by address (IP or CIDR)
liststring–Filter by address list name
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_arp_entries ~91

List ARP table entries on a MikroTik router.

NameTypeReqDescription
addressstring–Filter by IP address (substring match)
interfacestring–Filter by interface (substring match)
limitinteger–Max results to return.
macAddressstring–Filter by MAC address (substring match)
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_bgp_peers ~76

List BGP sessions on a MikroTik router (RouterOS 7+). Returns state, remote AS, prefix counts, and uptime.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.
statestring–Filter by session state (e.g. established, active, idle)

No output schema declared.

No examples provided.

list_bridge_ports ~105

List bridge port entries (interface membership, PVID, STP role and status) on a MikroTik router. Supports filtering by bridge and interface, with pagination.

NameTypeReqDescription
bridgestring–Only ports of this bridge
interfacestring–Only the port entry for this interface
limitinteger–Max results to return.
offsetinteger–Pagination offset.
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_bridges ~59

List bridge interfaces and their port members on a MikroTik router.

NameTypeReqDescription
limitinteger–Max results to return.
offsetinteger–Pagination offset.
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_certificates ~75

List certificates on a MikroTik router.

NameTypeReqDescription
expiredboolean–Filter by expiry status; omit to return all
limitinteger–Max results to return.
namestring–Filter by certificate name (substring match)
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_connections ~114

List active connection tracking entries from the router firewall table. Filters are applied client-side. Useful for diagnosing NAT and firewall behavior.

NameTypeReqDescription
dstAddressstring–Filter by destination address (substring match)
limitinteger–Max results to return.
protocolstring–Filter by protocol (exact match, e.g. tcp, udp, icmp)
routerIdstring–Router ID; omit to use the default router.
srcAddressstring–Filter by source address (substring match)

No output schema declared.

No examples provided.

list_container_envs ~64

List container environment variable entries, optionally filtered by container name.

NameTypeReqDescription
limitinteger–Max results to return.
namestring–Filter by container name (exact match)
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_container_mounts ~68

List container volume mount definitions with source path, destination path, and mount name.

NameTypeReqDescription
limitinteger–Max results to return.
namestring–Filter by mount name (exact match)
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_containers ~40

List RouterOS container instances with status, image, and network information.

NameTypeReqDescription
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_dhcp_clients ~101

List DHCP client configurations on a MikroTik router. Shows which interfaces obtain their IP via DHCP, current status, and assigned address.

NameTypeReqDescription
interfacestring–Filter by interface or display name (exact match)
limitinteger–Max results to return.
offsetinteger–Pagination offset.
routerIdstring–Router ID; omit to use the default router.
statusstring–Filter by DHCP client status

No output schema declared.

No examples provided.

list_dhcp_leases ~135

List DHCP leases on a MikroTik router with optional filtering by server, status, lease type (dynamic/static), and MAC address. Supports pagination.

NameTypeReqDescription
leaseTypestring–Filter by lease type (dynamic or static)
limitinteger–Max results to return.
macAddressstring–Filter by MAC address (exact match, case-insensitive)
offsetinteger–Pagination offset.
routerIdstring–Router ID; omit to use the default router.
serverstring–Filter by DHCP server name
statusstring–Filter by lease status

No output schema declared.

No examples provided.

list_dhcp_servers ~70

List DHCP servers on a MikroTik router.

NameTypeReqDescription
interfacestring–Filter by interface name (exact match)
limitinteger–Max results to return.
offsetinteger–Pagination offset.
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_dns_entries ~87

List static DNS entries on a MikroTik router with optional filtering by name and type.

NameTypeReqDescription
limitinteger–Max results to return.
namestring–Filter by hostname (partial match)
offsetinteger–Pagination offset.
routerIdstring–Router ID; omit to use the default router.
typestring–Filter by record type

No output schema declared.

No examples provided.

list_files ~75

List files on a MikroTik router filesystem. Supports filtering by name and type.

NameTypeReqDescription
namestring–Filter by file name (substring match)
routerIdstring–Router ID; omit to use the default router.
typestring–Filter by file type (e.g. script, backup, package)

No output schema declared.

No examples provided.

list_firewall_rules ~128

List firewall rules from the filter or nat table on a MikroTik router. Supports filtering by chain and disabled state, with pagination.

NameTypeReqDescription
chainstring–Filter rules by chain name (e.g. forward, input, srcnat)
disabledstring–Filter by disabled state: true, false, or all
limitinteger–Max results to return.
offsetinteger–Pagination offset.
routerIdstring–Router ID; omit to use the default router.
tablestring–Firewall table to query: filter or nat

No output schema declared.

No examples provided.

list_interface_list_members ~107

List 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.

NameTypeReqDescription
interfacestring–Only memberships of this interface
limitinteger–Max results to return.
liststring–Only members of this interface list
offsetinteger–Pagination offset.
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_interface_lists ~46

List all interface lists defined on the router.

NameTypeReqDescription
limitinteger–Max results to return.
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_interfaces ~131

List network interfaces on a MikroTik router with optional filtering by type and status. Supports pagination and optional traffic counters.

NameTypeReqDescription
includeCountersboolean–Include traffic counters (tx-byte, rx-byte, etc.)
limitinteger–Max results to return.
macAddressstring–Filter by MAC address (case-insensitive exact match on mac-address field)
offsetinteger–Pagination offset.
routerIdstring–Router ID; omit to use the default router.
statusstring–Filter by running status
typestring–Filter by interface type

No output schema declared.

No examples provided.

list_ip_addresses ~110

List IPv4 addresses assigned to interfaces on a MikroTik router, including dynamic ones (DHCP client, PPP). Supports filtering by interface and disabled state, with pagination.

NameTypeReqDescription
disabledstring–Filter by disabled state: true, false, or all
interfacestring–Only addresses on this interface
limitinteger–Max results to return.
offsetinteger–Pagination offset.
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_ip_pools ~78

List IP address pools on a MikroTik router. Supports filtering by name and pagination.

NameTypeReqDescription
limitinteger–Max results to return.
namestring–Filter by pool name (substring match)
offsetinteger–Pagination offset.
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_ip_services ~121

List IP services on a MikroTik router (api, api-ssl, ssh, telnet, www, www-ssl, winbox, ftp) with their port numbers and enabled/disabled status.

NameTypeReqDescription
enabledboolean–When true, return only enabled services; when false, only disabled services
namestring–Filter by service name (api, api-ssl, ssh, telnet, www, www-ssl, winbox, ftp)
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_ipsec_peers ~63

List IPSec peers on a MikroTik router.

NameTypeReqDescription
addressstring–Filter by remote address (substring match)
limitinteger–Max results to return.
routerIdstring–Router ID; omit to use the default router.

No output schema declared.

No examples provided.

list_ipsec_policies ~79

List IPSec policies on a MikroTik router.

NameTypeReqDescription
dstAddressstring–Filter by destination address (substring match)
limitinteger–Max results to return.
routerIdstring–Router ID; omit to use the default router.
srcAddressstring–Filter by source address (substring match)

No output schema declared.

No examples provided.

list_journal ~145

List 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.

NameTypeReqDescription
limitinteger–Max entries to return
routerIdstring–Only entries for this router id
toolstring–Only entries written by this tool

No output schema declared.

No examples provided.

list_log_actions ~78

List RouterOS logging action targets (system/logging/action) with optional type filter.

NameTypeReqDescription
limitinteger–Max results to return.
routerIdstring–Router ID; omit to use the default router.
typestring–Filter by action type (exact match): memory, disk, remote, echo, email

No output schema declared.

No examples provided.

list_log_rules ~89

List RouterOS logging rules (system/logging) with optional topic substring and action exact-match filtering.

NameTypeReqDescription
limitinteger–Max results to return.
logActionstring–Filter by log action target (exact match on action field)
routerIdstring–Router ID; omit to use the default router.
topicsstring–Filter by topics (substring match)

No output schema declared.

No examples provided.

Install

How do I install the MikroMCP MCP server?

MikroMCP runs locally as an npm package, launched with npx -y mikromcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · mikromcp

# add to Claude Code
claude mcp add alikarami-mikromcp -- npx -y mikromcp
Common questions

What is the MikroMCP MCP server?

MikroMCP is an MCP server listed in the public MCP registry as io.github.AliKarami/mikromcp. MCP server for MikroTik RouterOS and SwOS: typed tools, dry-run, RBAC, audit logs, and rollback. This page covers its npm package (mikromcp).

Is the MikroMCP MCP server safe to use?

MikroMCP scores 89 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the MikroMCP MCP server expose?

MikroMCP exposes 133 tools: get_system_status, list_interfaces, list_ip_addresses, manage_ip_address, list_dhcp_leases, and 128 more. Their descriptions and schemas cost roughly 19,031 tokens of context every time the server is loaded.

Is the MikroMCP MCP server still maintained?

MikroMCP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the MikroMCP MCP server under?

MikroMCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

What did VerifyMCP test on the MikroMCP MCP server?

VerifyMCP ran 16 checks on MikroMCP, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.