mikrotik-mcp
An open-source MCP server that bridges AI assistants with MikroTik RouterOS devices. It enables agents to manage network infrastructure via natural language, supporting tasks such as configuring firewalls, NAT, routing, DHCP, DNS, and WireGuard through SSH connections.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
Checks and signals
Each line is separate evidence, not a trust score.
- Popularity 313 GitHub stars
What you can do with it
- Manage VLANs on MikroTik routers
- Configure firewall rules via natural language
- Handle DNS settings and DHCP configurations
- Manage WireGuard interfaces and routing
Source and maintenance
- Last repository push
- Latest release
- v0.26.2
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
mcp-server-mikrotik 0.26.2.0
{
"version": "0.26.2.0",
"transport": "stdio",
"identifier": "mcp-server-mikrotik",
"registryType": "pypi",
"environmentVariables": [
{
"name": "MIKROTIK_HOST",
"format": "string",
"description": "IP address or hostname of the MikroTik router (single-device mode; default: 127.0.0.1). Not needed when an inventory is configured."
},
{
"name": "MIKROTIK_USERNAME",
"format": "string",
"description": "SSH username for the MikroTik router (single-device mode; default: admin)"
},
{
"name": "MIKROTIK_PASSWORD",
"format": "string",
"description": "SSH password for the MikroTik router (single-device mode)"
},
{
"name": "MIKROTIK_PORT",
"format": "string",
"description": "SSH port of the MikroTik router (single-device mode; default: 22)"
},
{
"name": "MIKROTIK_KEY_FILENAME",
"format": "string",
"description": "Path to SSH private key file for key-based authentication (single-device mode)"
},
{
"name": "MIKROTIK_READ_ONLY",
"format": "boolean",
"description": "When true, expose only tools that do not modify RouterOS or its file store. Use a read-only RouterOS account as defence in depth."
},
{
"name": "MIKROTIK_SENSITIVE_HIDING",
"format": "boolean",
"description": "When true, redact recognized credentials and private key material from tool results, MCP notifications, and logs, and omit tools that return opaque sensitive payloads."
},
{
"name": "MIKROTIK_INVENTORY_FILE",
"format": "string",
"description": "Path to a YAML file listing multiple MikroTik devices (title, host, port, username, password, key_filename, tags, region). See docs/reference/inventory."
},
{
"name": "MIKROTIK_INVENTORY",
"format": "string",
"description": "Inline multi-device inventory as a YAML (or JSON) list; takes precedence over MIKROTIK_INVENTORY_FILE and the single-device variables. Holds credentials."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · repository · passed · metadata changed · updated
- · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"mikrotik-mcp": {
"command": "uvx",
"args": [
"mcp-server-mikrotik==0.26.2.0"
],
"env": {
"MIKROTIK_HOST": "<YOUR_MIKROTIK_HOST>",
"MIKROTIK_USERNAME": "<YOUR_MIKROTIK_USERNAME>",
"MIKROTIK_PASSWORD": "<YOUR_MIKROTIK_PASSWORD>",
"MIKROTIK_PORT": "<YOUR_MIKROTIK_PORT>",
"MIKROTIK_KEY_FILENAME": "<YOUR_MIKROTIK_KEY_FILENAME>",
"MIKROTIK_READ_ONLY": "<YOUR_MIKROTIK_READ_ONLY>",
"MIKROTIK_SENSITIVE_HIDING": "<YOUR_MIKROTIK_SENSITIVE_HIDING>",
"MIKROTIK_INVENTORY_FILE": "<YOUR_MIKROTIK_INVENTORY_FILE>",
"MIKROTIK_INVENTORY": "<YOUR_MIKROTIK_INVENTORY>"
}
}
}
}Cline
{
"mcpServers": {
"mikrotik-mcp": {
"command": "uvx",
"args": [
"mcp-server-mikrotik==0.26.2.0"
],
"env": {
"MIKROTIK_HOST": "<YOUR_MIKROTIK_HOST>",
"MIKROTIK_USERNAME": "<YOUR_MIKROTIK_USERNAME>",
"MIKROTIK_PASSWORD": "<YOUR_MIKROTIK_PASSWORD>",
"MIKROTIK_PORT": "<YOUR_MIKROTIK_PORT>",
"MIKROTIK_KEY_FILENAME": "<YOUR_MIKROTIK_KEY_FILENAME>",
"MIKROTIK_READ_ONLY": "<YOUR_MIKROTIK_READ_ONLY>",
"MIKROTIK_SENSITIVE_HIDING": "<YOUR_MIKROTIK_SENSITIVE_HIDING>",
"MIKROTIK_INVENTORY_FILE": "<YOUR_MIKROTIK_INVENTORY_FILE>",
"MIKROTIK_INVENTORY": "<YOUR_MIKROTIK_INVENTORY>"
}
}
}
}VS Code
{
"servers": {
"mikrotik-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-mikrotik==0.26.2.0"
],
"env": {
"MIKROTIK_HOST": "<YOUR_MIKROTIK_HOST>",
"MIKROTIK_USERNAME": "<YOUR_MIKROTIK_USERNAME>",
"MIKROTIK_PASSWORD": "<YOUR_MIKROTIK_PASSWORD>",
"MIKROTIK_PORT": "<YOUR_MIKROTIK_PORT>",
"MIKROTIK_KEY_FILENAME": "<YOUR_MIKROTIK_KEY_FILENAME>",
"MIKROTIK_READ_ONLY": "<YOUR_MIKROTIK_READ_ONLY>",
"MIKROTIK_SENSITIVE_HIDING": "<YOUR_MIKROTIK_SENSITIVE_HIDING>",
"MIKROTIK_INVENTORY_FILE": "<YOUR_MIKROTIK_INVENTORY_FILE>",
"MIKROTIK_INVENTORY": "<YOUR_MIKROTIK_INVENTORY>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"mikrotik-mcp": {
"command": "uvx",
"args": [
"mcp-server-mikrotik==0.26.2.0"
],
"env": {
"MIKROTIK_HOST": "<YOUR_MIKROTIK_HOST>",
"MIKROTIK_USERNAME": "<YOUR_MIKROTIK_USERNAME>",
"MIKROTIK_PASSWORD": "<YOUR_MIKROTIK_PASSWORD>",
"MIKROTIK_PORT": "<YOUR_MIKROTIK_PORT>",
"MIKROTIK_KEY_FILENAME": "<YOUR_MIKROTIK_KEY_FILENAME>",
"MIKROTIK_READ_ONLY": "<YOUR_MIKROTIK_READ_ONLY>",
"MIKROTIK_SENSITIVE_HIDING": "<YOUR_MIKROTIK_SENSITIVE_HIDING>",
"MIKROTIK_INVENTORY_FILE": "<YOUR_MIKROTIK_INVENTORY_FILE>",
"MIKROTIK_INVENTORY": "<YOUR_MIKROTIK_INVENTORY>"
}
}
}
}Let your agent find its tools
Find servers like mikrotik-mcp from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.