Files
openclaw/skills/mikrotik-api/SKILL.md
2026-02-24 19:20:54 +00:00

58 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: mikrotik-api
description: Управление MikroTik RouterOS через API (TCP 8728/8729): логин, print/getall, выборка через query, безопасная проверка статуса, интерфейсов, адресов, маршрутов и других разделов. Использовать, когда нужно читать/менять конфиг RouterOS программно, проверять состояние роутера или готовить автоматизацию под RouterOS API.
---
# MikroTik API
Используй этот скилл для работы с RouterOS API на уровне «команда/атрибуты/ответы».
## Быстрый старт
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host 192.168.88.1 --user admin --password 'secret' \
cmd /system/resource/print
```
С `.proplist`:
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host 192.168.88.1 --user admin --password 'secret' \
print /interface/print --proplist name,type,running,disabled
```
С query:
```bash
python3 {baseDir}/scripts/routeros_api.py \
--host 192.168.88.1 --user admin --password 'secret' \
print /ip/route/print --query '?dst-address=0.0.0.0/0' --query '?active=true'
```
## Правила работы
- Сначала проверяй доступность API-сервиса (`8728`/`8729`).
- По умолчанию используй чтение (`print`, `getall`) и минимальный `.proplist`.
- Для долгих задач учитывай ответы `!trap`, `!done`, `!re`.
- Для параллельных запросов используй `.tag`.
- Не отправляй опасные команды (`reboot`, `reset`, массовые remove/set`) без явного подтверждения пользователя.
## Что делает скрипт
`routeros_api.py`:
- логин post-v6.43 (`/login`, `=name=`, `=password=`),
- отправка произвольной команды `cmd`,
- упрощённый режим `print` с query и `.proplist`,
- JSON-вывод по reply-фреймам (`!re`, `!done`, `!trap`, `!fatal`).
## Ограничения
- Сейчас реализован plaintext API (8728). Для TLS/API-SSL нужен отдельный режим.
- Скрипт не делает бесконечный `listen`-цикл; он рассчитан на запрос-ответ.
## Ссылки
- Основные заметки по протоколу: `references/routeros-api-notes.md`