
Mikrotik MCP Server
by jeff-nasseriio.github.jeff-nasseri/mikrotik-mcpv0.24.0.0
MCP server for MikroTik routers: firewall, NAT, routing, DHCP, DNS, WireGuard and more via SSH.
context tax
queued
security
queued
cold start
queued
freshness
Active6d ago
Install Mikrotik MCP server
Install in Claude Code
claude mcp add mikrotik-jeff-nasseri -e MIKROTIK_PASSWORD='<mikrotik-password>' -e MIKROTIK_INVENTORY='<mikrotik-inventory>' -- uvx mcp-server-mikrotikInstall in Cursor
{
"mcpServers": {
"mikrotik-jeff-nasseri": {
"command": "uvx",
"args": [
"mcp-server-mikrotik"
],
"env": {
"MIKROTIK_PASSWORD": "<mikrotik-password>",
"MIKROTIK_INVENTORY": "<mikrotik-inventory>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"mikrotik-jeff-nasseri": {
"command": "uvx",
"args": [
"mcp-server-mikrotik"
],
"env": {
"MIKROTIK_PASSWORD": "<mikrotik-password>",
"MIKROTIK_INVENTORY": "<mikrotik-inventory>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"mikrotik-jeff-nasseri": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-mikrotik"
],
"env": {
"MIKROTIK_PASSWORD": "<mikrotik-password>",
"MIKROTIK_INVENTORY": "<mikrotik-inventory>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"mikrotik-jeff-nasseri": {
"command": "uvx",
"args": [
"mcp-server-mikrotik"
],
"env": {
"MIKROTIK_PASSWORD": "<mikrotik-password>",
"MIKROTIK_INVENTORY": "<mikrotik-inventory>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| MIKROTIK_HOST | — | — | IP address or hostname of the MikroTik router (single-device mode; default: 127.0.0.1). Not needed when an inventory is configured. |
| MIKROTIK_USERNAME | — | — | SSH username for the MikroTik router (single-device mode; default: admin) |
| MIKROTIK_PASSWORD | — | yes | SSH password for the MikroTik router (single-device mode) |
| MIKROTIK_PORT | — | — | SSH port of the MikroTik router (single-device mode; default: 22) |
| MIKROTIK_KEY_FILENAME | — | — | Path to SSH private key file for key-based authentication (single-device mode) |
| MIKROTIK_READ_ONLY | — | — | When true, expose only tools that do not modify RouterOS or its file store. Use a read-only RouterOS account as defence in depth. |
| MIKROTIK_SENSITIVE_HIDING | — | — | When true, redact recognized credentials and private key material from tool results, MCP notifications, and logs, and omit tools that return opaque sensitive payloads. |
| MIKROTIK_INVENTORY_FILE | — | — | Path to a YAML file listing multiple MikroTik devices (title, host, port, username, password, key_filename, tags, region). See docs/reference/inventory. |
| MIKROTIK_INVENTORY | — | yes | Inline multi-device inventory as a YAML (or JSON) list; takes precedence over MIKROTIK_INVENTORY_FILE and the single-device variables. Holds credentials. |
Freshness
Active — last maintenance signal 6d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-10-03 · 6d ago · GitHub
Latest release
2026-10-03 · 6d ago · GitHub · v0.24.0
Package published
no data · npm/PyPI
Registry entry updated
2026-10-03 · 6d ago · official registry · v0.24.0.0
FAQ
›How do I install the Mikrotik MCP server in Claude Code?
Run: claude mcp add mikrotik-jeff-nasseri -e MIKROTIK_PASSWORD='<mikrotik-password>' -e MIKROTIK_INVENTORY='<mikrotik-inventory>' -- uvx mcp-server-mikrotik. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does Mikrotik require an API key?
Yes. It expects MIKROTIK_PASSWORD, MIKROTIK_INVENTORY, of which 2 are secrets.
›Can I use Mikrotik as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is Mikrotik in the official MCP registry?
Yes, as io.github.jeff-nasseri/mikrotik-mcp.