# mikrotik-mcp

Connect an AI assistant to MikroTik routers and issue RouterOS commands in natural language. Useful for changing network settings from a chat.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 305
- Author: wiresage
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/wiresage/mikrotik-mcp
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/mcp/mikrotik-mcp

## What it does

mikrotik-mcp connects an AI assistant to MikroTik routers over SSH. You can ask it to configure VLANs, change firewall rules, or adjust DNS settings. Its listed areas also include NAT, routing, DHCP, and WireGuard.

For Claude Code, configure the environment variables and launch the server with `uvx mcp-server-mikrotik`. The setup uses the router host, username, password, port, and key filename; `MIKROTIK_INVENTORY` is available for managing multiple devices. The assistant needs valid router access settings to run commands, so check those values before connecting.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `MIKROTIK_HOST`, `MIKROTIK_USERNAME`, `MIKROTIK_PASSWORD`, `MIKROTIK_PORT`, `MIKROTIK_KEY_FILENAME`, `MIKROTIK_READ_ONLY`, `MIKROTIK_SENSITIVE_HIDING`, `MIKROTIK_INVENTORY_FILE`, `MIKROTIK_INVENTORY` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env MIKROTIK_HOST=<MIKROTIK_HOST> --env MIKROTIK_USERNAME=<MIKROTIK_USERNAME> --env MIKROTIK_PASSWORD=<MIKROTIK_PASSWORD> --env MIKROTIK_PORT=<MIKROTIK_PORT> --env MIKROTIK_KEY_FILENAME=<MIKROTIK_KEY_FILENAME> --transport stdio mikrotik-mcp -- uvx mcp-server-mikrotik
```
Replace <…> with your own values. 4 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-server-mikrotik <command>

### Codex

**Platform CLI**
```bash
codex mcp add mikrotik-mcp --env MIKROTIK_HOST=<MIKROTIK_HOST> --env MIKROTIK_USERNAME=<MIKROTIK_USERNAME> --env MIKROTIK_PASSWORD=<MIKROTIK_PASSWORD> --env MIKROTIK_PORT=<MIKROTIK_PORT> --env MIKROTIK_KEY_FILENAME=<MIKROTIK_KEY_FILENAME> -- uvx mcp-server-mikrotik
```
Replace <…> with your own values. 4 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-server-mikrotik <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mikrotik-mcp": {
            "command": "uvx",
            "args": [
                "mcp-server-mikrotik"
            ],
            "env": {
                "MIKROTIK_HOST": "<MIKROTIK_HOST>",
                "MIKROTIK_USERNAME": "<MIKROTIK_USERNAME>",
                "MIKROTIK_PASSWORD": "<MIKROTIK_PASSWORD>",
                "MIKROTIK_PORT": "<MIKROTIK_PORT>",
                "MIKROTIK_KEY_FILENAME": "<MIKROTIK_KEY_FILENAME>"
            }
        }
    }
}
```
Replace <…> with your own values. 4 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-server-mikrotik <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "mikrotik-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "mcp-server-mikrotik"
            ],
            "env": {
                "MIKROTIK_HOST": "<MIKROTIK_HOST>",
                "MIKROTIK_USERNAME": "<MIKROTIK_USERNAME>",
                "MIKROTIK_PASSWORD": "<MIKROTIK_PASSWORD>",
                "MIKROTIK_PORT": "<MIKROTIK_PORT>",
                "MIKROTIK_KEY_FILENAME": "<MIKROTIK_KEY_FILENAME>"
            }
        }
    }
}
```
Replace <…> with your own values. 4 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-server-mikrotik <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e MIKROTIK_HOST=<MIKROTIK_HOST> -e MIKROTIK_USERNAME=<MIKROTIK_USERNAME> -e MIKROTIK_PASSWORD=<MIKROTIK_PASSWORD> -e MIKROTIK_PORT=<MIKROTIK_PORT> -e MIKROTIK_KEY_FILENAME=<MIKROTIK_KEY_FILENAME> mikrotik-mcp uvx mcp-server-mikrotik
```
Replace <…> with your own values. 4 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-server-mikrotik <command>

## When to use it
- configure VLANs on a MikroTik router
- change firewall rules
- adjust DNS settings
- manage NAT and routing
- set up DHCP or WireGuard

## Example prompts
- Configure VLANs on the MikroTik router and check the current rules.
- Add a firewall rule for the traffic I described.
- Review the DNS settings and change them as requested.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89408
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [Front-End Checklist](https://affpapa.org/en/nevibecode/mcp/front-end-checklist.md) — MCP server · ★ 74559
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
