
MikroTik MCP: настройка роутера агентом в Claude, Codex и Cursor
Подключает агента к роутерам MikroTik по SSH: интерфейсы, VLAN, адреса, DHCP, DNS, файрвол, NAT, WireGuard, бэкапы и логи. Рискованные правки можно вносить в Safe Mode с автооткатом.
Пакет PyPI mcp-server-mikrotik: инструменты под меню RouterOS 7 для интерфейсов, VLAN, DHCP, DNS, файрвола, NAT, маршрутов и бэкапов, парк роутеров через инвентарь, режим только чтения.
Как подключить
Что сделать до подключения
Python 3.10 или новее и uv с командой uvx
Роутер MikroTik с RouterOS, доступный по SSH; проверялся на RouterOS 7
MIKROTIK_HOSTIP-адрес или имя роутера, по умолчанию 192.168.88.1
MIKROTIK_USERNAMEпользователь SSH на роутере; лучше отдельный с минимальными правами
MIKROTIK_PASSWORDпароль этого пользователя; вместо него можно указать ключ флагом --key-filename
MIKROTIK_READ_ONLYнеобязательно: true — оставить только инструменты, которые ничего не меняют
Конфиг для вашего клиента
Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code
claude mcp add --env 'MIKROTIK_HOST=<IP роутера>' --env 'MIKROTIK_USERNAME=<пользователь SSH>' --env 'MIKROTIK_PASSWORD=<пароль SSH>' --transport stdio mikrotik \
-- uvx mcp-server-mikrotikПроверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.mikrotik]
command = "uvx"
args = ["mcp-server-mikrotik"]
[mcp_servers.mikrotik.env]
MIKROTIK_HOST = "<IP роутера>"
MIKROTIK_USERNAME = "<пользователь SSH>"
MIKROTIK_PASSWORD = "<пароль SSH>"Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"mikrotik": {
"command": "uvx",
"args": ["mcp-server-mikrotik"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_PASSWORD": "<пароль SSH>"
}
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"mikrotik": {
"type": "stdio",
"command": "uvx",
"args": ["mcp-server-mikrotik"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_PASSWORD": "<пароль SSH>"
}
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"mikrotik": {
"command": "uvx",
"args": ["mcp-server-mikrotik"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_PASSWORD": "<пароль SSH>"
}
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"mikrotik": {
"command": "uvx",
"args": ["mcp-server-mikrotik"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_PASSWORD": "<пароль SSH>"
}
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"mikrotik": {
"type": "local",
"command": ["uvx", "mcp-server-mikrotik"],
"environment": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_PASSWORD": "<пароль SSH>"
}
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"mikrotik": {
"command": "uvx",
"args": ["mcp-server-mikrotik"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_PASSWORD": "<пароль SSH>"
}
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"mikrotik": {
"command": "uvx",
"args": ["mcp-server-mikrotik"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_PASSWORD": "<пароль SSH>"
}
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
list_devicesвыводит роутеры из инвентаряget_system_resourceчитает загрузку процессора и памятиlist_interfacesвыводит интерфейсыcreate_vlan_interfaceсоздаёт VLANadd_ip_addressдобавляет IP-адресcreate_dhcp_serverподнимает DHCP-серверlist_dhcp_leasesвыводит аренды DHCPadd_dns_staticдобавляет статическую DNS-записьlist_filter_rulesвыводит правила файрволаcreate_filter_ruleдобавляет правило файрволаcreate_basic_firewall_setupставит пять базовых правил защитыcreate_nat_ruleдобавляет правило NATlist_routesвыводит маршрутыadd_wireguard_peerдобавляет пира WireGuardgenerate_wireguard_client_configсобирает конфиг клиента WireGuardcreate_backupсохраняет бэкапcreate_exportвыгружает конфигурациюget_logsчитает журналenable_safe_modeвключает Safe Moderollback_safe_modeоткатывает изменения Safe ModeСервер на Bun с 983 инструментами в 155 модулях, транзакциями и Safe Mode, несколькими роутерами и веб-панелью на 127.0.0.1:9090 для диагностики и контролируемых изменений.
Как подключить
Что сделать до подключения
Bun 1.4.4 или новее и пакет: bun add -g @usex/mikrotik-mcp
SSH на роутере включён в /ip service; открытый ключ импортирован пользователю в System → Users → SSH Keys
Проверить связь командой mikrotik-mcp auth-check до подключения клиента
MIKROTIK_HOSTIP-адрес роутера
MIKROTIK_USERNAMEпользователь RouterOS для агента
MIKROTIK_KEY_FILENAMEпуть к закрытому ключу SSH; вместо ключа можно задать MIKROTIK_PASSWORD
Конфиг для вашего клиента
Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code
claude mcp add --env 'MIKROTIK_HOST=<IP роутера>' --env 'MIKROTIK_USERNAME=<пользователь SSH>' --env 'MIKROTIK_KEY_FILENAME=<абсолютный путь к закрытому ключу>' --transport stdio mikrotik-mcp \
-- mikrotik-mcp serveПроверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.mikrotik-mcp]
command = "mikrotik-mcp"
args = ["serve"]
[mcp_servers.mikrotik-mcp.env]
MIKROTIK_HOST = "<IP роутера>"
MIKROTIK_USERNAME = "<пользователь SSH>"
MIKROTIK_KEY_FILENAME = "<абсолютный путь к закрытому ключу>"Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"mikrotik-mcp": {
"command": "mikrotik-mcp",
"args": ["serve"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_KEY_FILENAME": "<абсолютный путь к закрытому ключу>"
}
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"mikrotik-mcp": {
"type": "stdio",
"command": "mikrotik-mcp",
"args": ["serve"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_KEY_FILENAME": "<абсолютный путь к закрытому ключу>"
}
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"mikrotik-mcp": {
"command": "mikrotik-mcp",
"args": ["serve"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_KEY_FILENAME": "<абсолютный путь к закрытому ключу>"
}
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"mikrotik-mcp": {
"command": "mikrotik-mcp",
"args": ["serve"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_KEY_FILENAME": "<абсолютный путь к закрытому ключу>"
}
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"mikrotik-mcp": {
"type": "local",
"command": ["mikrotik-mcp", "serve"],
"environment": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_KEY_FILENAME": "<абсолютный путь к закрытому ключу>"
}
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"mikrotik-mcp": {
"command": "mikrotik-mcp",
"args": ["serve"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_KEY_FILENAME": "<абсолютный путь к закрытому ключу>"
}
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"mikrotik-mcp": {
"command": "mikrotik-mcp",
"args": ["serve"],
"env": {
"MIKROTIK_HOST": "<IP роутера>",
"MIKROTIK_USERNAME": "<пользователь SSH>",
"MIKROTIK_KEY_FILENAME": "<абсолютный путь к закрытому ключу>"
}
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
list_filter_rulesвыводит правила файрволаcreate_filter_ruleдобавляет правило файрволаupdate_filter_ruleменяет правилоmove_filter_ruleпереставляет правилоdisable_filter_ruleотключает правилоcreate_basic_firewall_setupставит базовую защитуenable_safe_modeоткрывает сессию Safe Modesafe_mode_statusпоказывает состояние Safe Modecommit_safe_modeприменяет измененияrollback_safe_modeоткатывает измененияПоказано 10 из 983.
Один инструмент mikrotik_terminal: агент шлёт любую команду RouterOS вида /ip/service/print через RouterOS API, без готового набора операций.
Как подключить
Что сделать до подключения
uv; склонировать репозиторий и выполнить uv sync
Роутер с включённым RouterOS API
Конфиг для вашего клиента
Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code
claude mcp add --transport stdio mcp-mikrotik \
-- uv --directory /path/to/mcp-mikrotik run python server.pyПроверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.mcp-mikrotik]
command = "uv"
args = ["--directory", "/path/to/mcp-mikrotik", "run", "python", "server.py"]Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"mcp-mikrotik": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-mikrotik", "run", "python", "server.py"]
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"mcp-mikrotik": {
"type": "stdio",
"command": "uv",
"args": ["--directory", "/path/to/mcp-mikrotik", "run", "python", "server.py"]
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"mcp-mikrotik": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-mikrotik", "run", "python", "server.py"]
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"mcp-mikrotik": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-mikrotik", "run", "python", "server.py"]
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"mcp-mikrotik": {
"type": "local",
"command": [
"uv",
"--directory",
"/path/to/mcp-mikrotik",
"run",
"python",
"server.py"
]
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"mcp-mikrotik": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-mikrotik", "run", "python", "server.py"]
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"mcp-mikrotik": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-mikrotik", "run", "python", "server.py"]
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
mikrotik_terminalвыполняет команду RouterOSЧто попросить агента
Для каких задач
Ограничения
Флаг --read-only у wiresage только убирает инструменты записи из списка: настоящую защиту даёт учётная запись RouterOS с урезанными правами
wiresage не трогает перезагрузку, сброс и выключение, а также BGP, OSPF, контейнеры и хотспот
mikrotik-mcp/mikrotik-mcp — молодой проект с 26 звёздами; Safe Mode и откат на нескольких устройствах имеют практические пределы и не заменяют проверку
У algonacci/mcp-mikrotik 5 звёзд и обновление в мае 2026 года; логин и пароль роутера агент передаёт в каждом вызове, команды выполняются сразу
Если не работает
mikrotik-mcp auth-check пишет Connection FAILED.
После импорта ключа пропал вход по паролю
За обратным прокси запросы к /mcp получают 421 Invalid Host header
Какую реализацию выбрать
| Реализация | Кто делает | Звёзды | Запуск | Ключ | Инструменты | Обновлён |
|---|---|---|---|---|---|---|
| MikroTik MCP | wiresage (Jeff Nasseri и соавторы) | 334 | локально | токен | 20 | 10 ноября 2026 |
| MikroTik MCP (Bun) | Ali Torki (ali-master) | 26 | локально | токен | 983 | 11 ноября 2026 |
| mcp-mikrotik | algonacci | 5 | локально | не нужен | 1 | 24 мая 2026 |