Skip to main content
Glama
Foninhoiuri

MikroTik MCP for n8n

by Foninhoiuri
README.md
# MikroTik MCP for n8n

Fork do [mikrotik-mcp](https://github.com/jeff-nasseri/mikrotik-mcp) configurado para rodar como container Docker com transporte **SSE**, pronto para integração com **n8n**.

## O que muda neste fork

- **Transporte SSE por padrão** — o container já sobe em modo SSE (HTTP), sem precisar configurar
- **Docker Compose pronto** — aponte o Portainer para este repo e deploy
- **Log configurável** — variável `LOG_LEVEL` para debug sem rebuild
- **Documentação em PT-BR** — instruções completas em [README-N8N.md](README-N8N.md)

## Arquitetura

```
┌─────────────────┐     HTTP/SSE      ┌─────────────────────┐     SSH      ┌──────────────┐
│    n8n           │ ──────────────►   │  mikrotik-mcp:8000  │ ──────────►  │  MikroTik    │
│  (AI Agent)      │   porta 3000     │  (Docker Container) │  porta 22   │  Router      │
└─────────────────┘                   └─────────────────────┘              └──────────────┘
```

## Quick Start

### 1. Deploy via Portainer (recomendado)

1. **Stacks → Add Stack**
2. **Repository**: `https://github.com/Foninhoiuri/mcp-mikrotik-for-n8n.git`
3. **Compose path**: `docker-compose.yml`
4. Ajuste as variáveis de ambiente (IP, usuário, senha do MikroTik)
5. **Deploy the stack**

### 2. Deploy manual

```bash
git clone https://github.com/Foninhoiuri/mcp-mikrotik-for-n8n.git
cd mcp-mikrotik-for-n8n

# Edite o docker-compose.yml com suas credenciais
docker compose up -d
```

### 3. Conectar no n8n

1. No n8n, vá em **Settings → MCP Servers**
2. Transporte: **SSE**
3. URL: `http://IP_DO_SEU_SERVIDOR:3000/sse`

As ferramentas do MikroTik aparecem automaticamente no AI Agent.

## Variáveis de Ambiente

| Variável | Padrão | Descrição |
|----------|--------|-----------|
| `MIKROTIK_HOST` | `192.168.88.1` | IP do roteador MikroTik |
| `MIKROTIK_USERNAME` | `admin` | Usuário SSH |
| `MIKROTIK_PASSWORD` | *(vazio)* | Senha SSH |
| `MIKROTIK_PORT` | `22` | Porta SSH |
| `MIKROTIK_MCP__TRANSPORT` | `sse` | Transporte: `sse`, `streamable-http`, `stdio` |
| `MIKROTIK_MCP__ALLOWED_HOSTS` | *(vazio)* | Use `*` para rede local |
| `LOG_LEVEL` | `INFO` | Nível de log: `DEBUG`, `INFO`, `WARNING`, `ERROR` |
| `N8N_NETWORK_NAME` | `n8n_default` | Nome da rede Docker do seu n8n para comunicação interna |

## Ferramentas disponíveis

Todas as 173+ tools do projeto original, incluindo:

- 🔥 **Firewall** — regras de filter e NAT
- 🌐 **DNS** — registros estáticos e configurações
- 📡 **DHCP** — leases e configuração de servidor
- 🔒 **WireGuard** — peers e interfaces VPN
- 🖧 **Interfaces** — VLANs, bridges, ethernet
- 📊 **Queues** — controle de banda
- 🗂️ **Backup** — export e backup do sistema
- 👥 **Usuários** — gerenciamento de contas
- 📋 **Logs** — consulta de logs do sistema
- 🛣️ **Rotas** — tabela de roteamento

## Documentação completa

📚 Veja [README-N8N.md](README-N8N.md) para instruções detalhadas incluindo:
- Deploy via Portainer
- Configuração multi-device (vários MikroTiks)
- Troubleshooting

## Créditos

Baseado no projeto [mikrotik-mcp](https://github.com/jeff-nasseri/mikrotik-mcp) por [Jeff Nasseri](https://github.com/jeff-nasseri).

## Licença

MIT License — veja [LICENSE](LICENSE).

TDQS

C2.4/5.0

Scored across 174 tools

Disambiguation3/5

Most tools are clearly grouped by resource (DNS, firewall, NAT, queues, users), but several clusters overlap: the six log-reading tools (get_logs, get_logs_by_severity, get_logs_by_topic, search_logs, get_system_events, get_security_logs) serve nearly the same purpose, and add_route/add_default_route/add_blackhole_route plus create_dhcp_pool/create_ip_pool create boundary confusion. Descriptions reduce but don't eliminate the ambiguity.

Naming Consistency3/5

The dominant verb_noun pattern (get_/list_/create_/update_/remove_/enable_/disable_) is readable, but it is not consistent: add_ vs create_ (add_ip_address vs create_filter_rule), set_ vs update_ (set_dns_servers vs update_dns_static), and a few oddities like safe_mode_status and remove_user_ssh_key break the pattern.

Tool Count1/5

174 tools is far beyond the 50+ threshold for an extreme count. Even for a comprehensive router-management server, the surface is bloated and will overwhelm an agent's tool-selection context.

Completeness3/5

Coverage is deep in many areas (firewall, NAT, queues, users, routes, logs), but several lifecycle gaps remain: DHCP networks and pools are create-only, IP addresses have no update, and DNS regexp entries cannot be listed or removed. The broad scope also omits common router domains like ARP, mangle rules, bridges, and system identity/resource management.

Maintenance

ActivitySlowing
ResponsivenessNo issues